1. Home
  2. Docs
  3. Tutorials
  4. Solving your first problem

Solving your first problem

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.