Executable

HiGHS can run as a stand-alone program with a command-line interface. It solves an optimization problem provided by either an MPS file, or LP file. Note that HiGHS cannot read the lpsolve LP file format.

Running the executable

For convenience, the executable is assumed to be bin/highs. The model given by the MPS file model.mps is solved by the command:

$ bin/highs model.mps

If the model file is not in the folder from which the command was issued, then a path name can be given.

Command line options

HiGHS is controlled by option values. When it is run from the command line, some fundamental option values may be specified directly. Many more may be specified via a file containing HiGHS options settings. Formally, the usage is:

$ bin/highs --help
usage:
      ./bin/highs [options] [file]

options:
      --model_file file          File of model to solve.
      --options_file file        File containing HiGHS options.
      --read_solution_file file  File of solution to read.
      --read_basis_file text     File of initial basis to read. 
      --write_model_file text    File for writing out model.
      --solution_file text       File for writing out solution.
      --write_basis_file text    File for writing out final basis.
      --presolve text            Set presolve option to:
                                   "choose" * default 
                                   "on"
                                   "off"
      --solver text              Set solver option to: 
                                   "choose" * default 
                                   "simplex"
                                   "ipm" 
      --parallel text            Set parallel option to: 
                                   "choose" * default 
                                   "on" 
                                   "off" 
      --run_crossover text       Set run_crossover option to: 
                                   "choose" 
                                   "on" * default 
                                   "off" 
      --time_limit float         Run time limit (seconds - double).
      --random_seed int          Seed to initialize random number 
                                 generation.
      --ranging text             Compute cost, bound, RHS and basic 
                                 solution ranging:
                                   "on" 
                                   "off" * default 
  -v, --version                  Print version.
  -h, --help                     Print help.

The list of options section gives a full list of options, and their default values. In a file containing HiGHS options they are specified as name = value, with one per line, and any line beginning with # treated as a comment. For example, the primal-dual hybrid gradient method for LP (PDLP) is used with all feasibility and optimality tolerances set to 1e-4 if HiGHS reads the following in its options file.

solver = pdlp
kkt_tolerance = 1e-4

Return code values

Consistent with the callable methods in HiGHS, there are three possible return codes

  • -1: An error has occurred in HiGHS
  • 0: HiGHS has run successfully
  • 1: HiGHS has recovered from an unusual event, or has terminated due to reaching a time or iteration limit