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.