The solver can be invoked from Windows PowerShell or a Linux terminal using the following syntax (without the square braces):
octeract-engine [problem_file]
The solver supports direct input in ASL (.nl), MPS (.mps), and LP (.lp) formats. It also works out-of-the-box with Pyomo, AMPL, and JuMP. Example input files are included in the installation folder under /examples. Let’s begin by solving test problem ex2_1_1.nl.
Invoke the solver using the following command:
octeract-engine ex2_1_1.nl
You should see the following output:
-----------------------------------------------------------------------------------------------
Iteration GAP LLB BUB Pool Time Mem
-----------------------------------------------------------------------------------------------
11 5.000e-11 ( 0.00%) -1.700e+01 -1.700e+01 3 0.0s 91.0MB
Objective value at global solution: -1.700e+01
By default, the solver outputs the following information:
- Number of iterations (in this case, 11).
- Absolute and relative optimality gap (here 5∗10−11 and 0.00% respectively).
- Least Lower Bound (LLB). This is the smallest lower bound throughout the branch-and-bound tree.
- Best Upper Bound (BUB). This is the best local optimum that has been located so far.
- Pool. This is the number of nodes in the branching pool.
- Time. This is the real time (not CPU time) spent in branch-and-bound (in seconds).
- Memory. The amount of RAM that the solver is currently taking up.
By default, the solver will automatically write an .octsol solution file to the system’s
LOCAL_TEMP
. This directory can be set explicitly (overridden) using the-d flag
:
octeract-engine ex2_1_1.nl -d MY_SOLUTION_PATH
Detailed solution information can be accessed by inspecting the .octsol solution file in the selected location. Conveniently, all .octsol files are also .json files. Aren’t you lucky.