# Using the AOA Algorithm

AOA module $$\ldots$$

The basis GMP implementation of the AIMMS Outer Approximation (AOA) algorithm can be found in a single AIMMS module, called GMP Outer Approximation, that is provided as part of the AIMMS system. You can install this module using the Install System Module command in the AIMMS Settings menu.

Basic algorithm

The procedure DoOuterApproximation inside the module implements the basic algorithm from the previous section. The procedure DoOuterApproximation has one input argument, namely:

This procedure is called as follows:

generatedMP := GMP::Instance::Generate( SymbolicMP );

GMPOuterApprox::DoOuterApproximation( generatedMP );


Here SymbolicMP is the symbolic mathematical program containing the MINLP model, and generatedMP is an element parameter in the predefined set AllGeneratedMathematicalPrograms. GMPOuterApprox is the prefix of the AOA module. The implementation of this procedure will be discussed in A First and Basic Implementation.

Modifying the algorithm

Because the AIMMS Outer Approximation algorithm is completely implemented using functionality provided the GMP library, you have the complete freedom to modify the math program instances generated by the basic AOA algorithm using the matrix manipulation routines discussed in Matrix Manipulation Procedures. Such problem-specific modifications to the basic algorithm may help you to find a better overall solution to your MINLP model, or to find a good solution faster.