# Solve MINLP problems with AOA¶

In addition to BARON and KNITRO, you can also use the AIMMS Outer Approximation Algorithm (AOA) to solve mixed integer nonlinear programming (MINLP) problems in AIMMS.

You can use the AOA algorithm by adding the system module GMPOuterApproximation to your project. This module uses the functions from The GMP Library. You can install this system module via the Settings menu as Settings > Install System Module and select the GMP Outer Approximation Module to be installed.

Note

The deprecated version of AOA is still available as a system module as seen in the above image (first in list). However, we strongly recommend you use the GMP version, reasons detailed in the next section.

GMP-AOA is not a solver and cannot be called using the normal solve statement. Instead you should use:

! First we must generate the GMP for our MathProgram.
myGMP := GMP::Instance::Generate( myMP ) ;

! The GMP is passed as argument to the main procedure of GMP-AOA.
GMPOuterApprox::DoOuterApproximation( myGMP );


See MainExecution in this example AIMMS project.

## Why GMP-AOA ?¶

There are several reasons why you should use GMP-AOA instead of the legacy AOA:

1. The GMP-AOA algorithm offers more possibilities to customize the algorithm to your needs, for example by using functions from the GMP library.

2. The GMP version can be used in combination with the nonlinear presolver which may reduce the size of the model and tighten the variable bounds which likely help the AOA algorithm to find a better solution or improve its performance. GMP-AOA starts by default by calling the nonlinear presolver.

3. For non-convex problems AOA might sometimes have difficulties in finding a good feasible solution. In that case it might help to combine the AOA with the multi-start algorithm. This is possible with how the GMP-AOA is implemented and has been explained in this white paper. The legacy version of AOA cannot be combined with the nonlinear presolver nor the multi-start algorithm.

Note

In the special case that the MINLP problem contains only convex quadratic and/or second-order cone constraints also linear solvers like CPLEX or GUROBI can be used.

Download a copy or view it on Springer.