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:
MyGMP
, an element parameter with rangeAllGeneratedMathematicalPrograms
.
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.