Represents all the relevant information related to the results of a combination of the row parameters.


CombinationResults constructor


  • parameters: the parameters of the current experiment
  • combination: the value of each row parameters in the row;
  • combinationResults: all the results for all instances in the combination

Constructor of the parameters in which the folder which includes the instances is specified


  • extension: the instances file names must match this extension Can or cannot start with a dot (e.g., "txt" or ".txt")
  • filters: the instances file names must include each element of filters array

Contains all the results associated to a given instance for a combination in a latex table


InstanceResults constructor


  • parameters: parameters of the current experiment;
  • instancePath: path of the instance;
  • instanceResults: all the results for this instance

Contains all the results associated to a given method for a given instance in a row of a latex table


Add to a String which represents the current row of a table the value of a vector of TableValue. If the table starts before this row, print the table header. If the table ends after this row, print the table footer.


  • tableValues: the value to add to the row
  • mustReprintHeader: true if the header must be printed before the row;
  • outputstream: stream in which the row must be printed
  • tableaHeader: header of the table
  • latexRow: the string of the result row which already included the value dedicated to the row parameters
  • rowCount: number of rows currently in the table
  • tableHasMissingValues: true if the current table has missing values
  • tableParam: parameters of the table

Compute all the values for an instance and a combination in a column. There can be several of these values. E.g.: If we have results when combining two parameters in a knapsack problem: 1 - number of knapsacks: 2 and 3; 2 - size of the: 10 and 20.

We get 4 combinations of parameters: (2, 10), (3, 10), (2, 20), (3, 20).

If we create a latex table in which:

  • the number of knapsacks is a row parameter;
  • the size of the knapsacks is not;

for each instance we will obtain two result lines: 2 and 3. For each of these lines we will have 2 values (2, 10) and (2, 20) in the first and (3, 10) and (3, 20) in the second.


  • parameters: the parameters of the experiment;
  • instanceResults: results obtained during this experiment for the instance and the combination considered;
  • column: the column for which we compute the values.

Compute the value in column "column" for an instance using the results of the methods in "methodResults". methodResults only contains 1 entry for each resolution method required to compute the value of the column.


  • column: the column in which the result must be computed
  • methodResults: dictionary of results for the considered instance indexed by method name methodResults[methodName][resultName]: value of entry "resultName" in the result files for method "methodName"

Create a latex table from the results of an autoexperiment.

The lines of the latex table corresponds to the different possible values of the variables contained in rowVariables (obtained from argument tableStructure). The columns of the latex table corresponds to variable columnVariables (idem).


Create a latex table from the results of an autoexperiment.

The lines of the latex table corresponds to the different possible values of the variables contained in rowVariables (obtained from argument tableStructure). The columns of the latex table corresponds to variable columnVariables (idem).


Compute the gap of the two numerical values included in an array (|t[1] - t[2]|/t[1]). Returns nothing if:

  • the size of the array is not 2;
  • both values are not numerical.


  • to avoid dividing by 0, 1E-6 is added to the denominator;
  • to avoid very high gaps, the denominator is set to 0.1 if it is <0.1 and if the gap exceeds 1000.

Get several julia functions.


  • iMethods: Dictionary with an entry "name" (the name of the julia

function) and an optional entry "module" (the module in which the function can be found). To specify several functions, iMethods can be an array of such dictionaries. If the module is not specified, the Main module will be considered in priority. If it is not in the Main module, all the other loaded modules will be considered.


  • vector of Function which correspond to the found functions.

For each row variable, get all its values which appear in the results


  • variables: list of RowVariables
  • results: dictionary in which each entry corresponds to a result


  • array which contains one vector for each variable. The array associated to a variable contains all its possible values

Test if any resolution methods used to compute the value of a column has missing values for an instance.


  • column: the column
  • instanceResults: the result of the considered instance

Test if a file extension is included in a list of extensions


  • path: the path to test;
  • validExtensions: list of the valid extensions.

Compute the mean value of the numerical values contained in an array Returns nothing if there are no numerical value in the array.


Parse a value from a result file into a numerical value:

  • convert the strings which represent integers and floats; and
  • returns nothing for unexpected values.

Convert a vector into numerical values. Unexpected value are ignored (e.g., non numerical values, arrays, strings, ...)


Read the json entry which corresponds to a column and return the corresponding Column.


Find all the instances with a valid extension in a folder


  • folderPath: path of the folder
  • extensions: list of the valid extensions
  • isRecursive: true if instances are sought recursively

Get the path of the instances in the json experiment


  • paths: each path can correspond to an instance file or to a folder. A folder is specified either by a String (its path) or a Dictionary with key "path" (and optionally key "isRecursive"). This argument either contain one folder or an array of folders;
  • extensions: list of valid instance name extensions.

Find the best numerical values in the set of values of a group and set them to bold. Non-numerical values are ignored.


  • group: Column group in which the columns are located
  • groupValues: TableValues in the group

Split all the results according to their combination of parameters


  • parameters: parameters of the experiment;
  • results: all the results saved during the experiment;
  • columns: the columns of the table;
  • rowVariables: the row variables of the table.


  • an array of CombinationResults ordered according to the row of the table (i.e. the ith index of this array corresponds to all the results used to compute the ith line)

Unique name of a column used to identify a column without any ambguity. Required since several columns may have the same displayed name in the latex table.