Command Line Interface

The GBOML parser can be called from the command line by typing the following commands in a terminal window:

gboml <file> <options>

where <file> is the name of the file to be considered and <options> corresponds to one or several optional flags that can be activated.

The options are the following :

  • Print tokens: the tokens output by the lexer can be printed with:

--lex
  • Print the syntax tree: the syntax tree generated by the parser can be printed with:

--parser
  • Print the matrices: the coefficient, right-hand side and objective matrices and vectors can be printed with:

--matrix
  • Linprog: the linprog solver can be used with:

--linprog

The linprog solver for (continuous) linear programming comes with scipy and therefore does not require any installation or license. It is much less powerful than other solver options and is therefore only recommended for testing purposes (e.g., make sure that GBOML was properly installed).

  • Gurobi: Gurobi can be invoked with:

--gurobi
  • CPLEX: CPLEX can be used with:

--cplex
  • CPLEX Benders: CPLEX Benders can be used with:

--cplex_benders
  • Xpress: Xpress can be used with:

--xpress
  • Highs: Highs can be used with:

--highs
  • Clp: Clp can be used with:

--clp

It interfaces with CLP and CBC via CyLP.

  • Cbc: Cbc can be used with:

--cbc

It interfaces with CLP and CBC via a custom made experimental interface (it allows to set model parameters)

  • DSP Dantzig-Wolfe: the DSP implementation (experimental) of the Dantzig-Wolfe algorithm can be invoked with:

--dsp_dw
  • DSP Extensive form: the DSP Extensive Form (i.e., flattened model) algorithm can be used with:

--dsp_de
  • Solver option parameters: solver parameters can be set via a “.opt” file with:

--opt <opt_file>

where <opt_file> is the name of the file containing the solver parameters. If no parameters are provided, the default solver parameters are used.

  • Solver library path: solver library path for DSP, CBC and HiGHS can be set by with:

--solver_lib <path_to_library>

where <path_to_library> is the library path to read. If solver_lib is not set, the default solver on the library PATH is used.

  • CSV: the solution can be printed to a CSV file on a row basis (e.g., one variable per row):

--row_csv
  • Transposed CSV: the solution can be printed to a CSV file on a column basis (e.g., one variable per column):

--col_csv
  • JSON: the solution can be printed to a JSON file with:

--json
  • Detailed: the solution provided by the solver along with auxiliary information (e.g., dual variables, slacks or basis ranges) can be printed to a JSON or CSV file with:

--detailed
  • Multi-processing: the number of processes used for model generation can be controlled via:

--nb_processes <number>

where <number> is an integer, whose default value is 1.

  • Output: the name of the output file can be defined with:

--output <output_filename>

where <output_filename> is the output filename without the extension (CSV or JSON). The default output name is the name of the GBOML file with the date and chosen extension.