2. Command line version for SolutionsUpdate

  1. State of dataset file. Check the statistic data, and initiate the dataset, if needed.

This command returns the current statistics of the dataset, all normally used indicators, avoiding the need to Excel formula manipulation. If the dataset is not initiated, or is required to reset the dataset, all indicators are calculated, and the LBs are initiated with critical path and resource capacity lower bound.

             SolutionUpdate <dataset-file>.csv [reset]

The “reset” keyword is optional, and will clean any existing results in the dataset.


  • SolutionsUpdate.exe DC1.csv
    • Checks the statistics of the dataset DC1.csv
  • SolutionsUpdate.exe DC1.csv reset
    • Initiate the dataset DC1.csv
  1. Update new results. Used to update UBs, LBs or OPT results, to a dataset file.

This command is used to apply a results file to the dataset file. If no better results are found, the statistics of the results file is returned, avoiding the need of Excel formula manipulation, to get the performance of the procedure in the dataset. All normal possible indicators are calculated, for lower bounds and/or upper bounds, depending on the data provided. The results file can have the instances by any order, and identified by ID or by filename. It can be applied UBs without existing solutions, check a solution for its validity, and generate data to update PSPLIB or MMLIB datasets, for the new UBs.

SolutionUpdate <dataset-file>.csv <results-file>.csv [noSolution | checkSolution:<id> | PSPLIB | MMLIB]

The optional keyword “noSolution” allow to update UBs without the solutions. The “checkSolution” keyword allow to check a solution, independent of be a better UB or not, and show the solution to the user. The two keywords with the name of project scheduling libraries, “PSPLIB” and “MMLIB”, can be used to generate data on the new UBs (files for PSPLIB, text to copy/paste for MMLIB), that is ready to update the results in the corresponding websites.


  • SolutionsUpdate DC1.csv DC1DH60s.csv
    • Add the DH results to the DC1.csv dataset file. All instances became closed
  • SolutionsUpdate DC1.csv DC1LB.csv
    • Add the available LBs to the DC1.csv dataset, but since all instances are closed, no more updates are done, and is given the performance of the procedure used to build the DC1LB.csv file
  • SolutionsUpdate J90.csv J90psplibUB.csv noSolutions
    • Update the current UBs on the PSPLIB, but without checking the solutions, since the solutions are not available in the website of PSPLIB
  • SolutionsUpdate J90.csv J90_CV.csv PSPLIB
    • Update the current solutions, with the keyword PSPLIB. The tool will generate a file for each new UB, that is ready to be updated to the PSPLIB website.
  1. Generate instance files. Generate the instance sets files, without irrelevant data.

This command can be used to generate the instance set files. In case of using the three references in the dataset file, the morphology and the resources are in different files, and this is a process that easy create one file per instance. This command can also be used to remove irrelevant resources or activity modes, or any existing dummy activities in the middle of the instance. The name of the instances will be a text prefix, followed by a single number, the ID of the instance.

SolutionUpdate <dataset-file>.csv <filename>

Note that the <filename> does not have extension, so the files generated will be <filename>1.rcp, <filename>2.rcp, …, <filename>K.rcp, with K equal to the number of instances in the dataset. If the instances are multi-mode instances, the extension would be “mm”.


  • SolutionsUpdate J30.csv pat
    • Generate the instances from the set J30 on the PSPLIB, to the Patterson format, and with filenames from pat1.rcp up to pat480.rcp.
  1. Generate subdataset file. Used to create a new dataset, as part of another dataset file.

This command should be used when the research need to focus on part of the dataset. The subdataset can be specified by instance IDs, or by requesting all open/closed instances, and will generate a new dataset file that is compatible with the original dataset. This means that any result file on the subdataset file, can be used to update the original dataset file.

SolutionUpdate <dataset-file>.csv <newdataset-file>.csv {instances}

The {instances} parameter can be an integer number, several integers join by semicolons, interval between two numbers separated by a minus sign, or the “open”/”closed” keywords, meaning that all open/closed instances should be selected.


  • SolutionUpdate DC1.csv DC1test.csv 1;2;3;4
    • Specify instances 1 to 4, from DC1.csv dataset, creating them on DC1test.csv
  • SolutionUpdate DC1.csv DC1test.csv 1-4;10-20
    • Specify instances 1 to 4 and 10 to 20
  • SolutionUpdate DC1.csv DC1test.csv 1-1000:10;3;4
    • Specify instances from 1 to 1000 in steps of 10, and instances 3 and 4
  • SolutionUpdate RG30.csv RG30open.csv open
    • Specify all instances that are open (LB<UB) on dataset RG30.csv