2. How to use the solver for teaching

3. Why this is valuable

This is where Octeract Engine comes in. The Engine is more than a global MINLP solver. It is a teacher.

If your students employ the Engine to solve a MINLP problem, information on what needs to change, in order to improve solving, is on hand.

For example, let’s say your students follow the tutorial on How to use Octeract Engine with AMPL as an exercise. The model looks as follows:

` ````
var x1 := 1;
var x2 := 1;
var x3;
var x4 := 1;
var x5;
minimize Expression: 42*x1 - 0.5*(100*x1*x1 + 100*x2*x2 + 100*x3*x3 + 100*x4*x4 + 100*x5*x5) + 44*x2 + 45*x3 + 47*x4 + 47.5*x5;
subject to Constraint: 20*x1 + 12*x2 + 11*x3 + 7*x4 + 4*x5 <= 40;
subject to x1_lim: 0 <= x1 <= 1;
subject to x2_lim: 0 <= x2 <= 1;
subject to x3_lim: 0 <= x3 <= 1;
subject to x4_lim: 0 <= x4 <= 1;
subject to x5_lim: 0 <= x5 <= 1;
options octeract_options 'num_cores=4';
option solver octeract-engine;
solve;
display x1, x2, x3, x4, x5;
```

After running the problem, the output from the Engine looks like this:

The solving output includes suggestions on how to tweak algorithmic behaviour. These suggested changes are designed to make the problem more solvable while educating the user on what happened during the solving process. In this way, learning happens instantly. The Engine directs the user to where they can find further insight in an online Knowledge Base.

Name: | `VARIABLE_SELECTION_HEURISTIC` |

Type: | string |

Default Value: | MOST_VIOLATED_TERM |

Range: | strategy code names |

Name: | `UB_FREQUENCY` |

Type: | integer |

Default Value: | 4 |

Range: | \([1-{2 \times 10^9}]\) |

This process teaches by guiding the user through solving their problem and understanding more about what goes on behind the scenes. Knowledge is power. Students are empowered to take some guided action when their problems don’t solve straight away.

Octeract Engine’s teaching is not limited to identifying the issues encountered during solving. Rather, students gain a better understanding of how the solver’s algorithms work and the impact they have. These lessons are comprehensive in that they go beyond a single problem to aid students in their optimisation career.

For lecturers, teaching assistants and professors, the Engine helps to answer questions students have regarding their problems not solving. When students embark on a project, it is often the case that there are unexplained issues in solving their problems. The Engine absorbs some of these so less time is spent on trying to figure out which tweaks will help to solve the problem.

blog/blog1000