Solving Robust Optimization Models
Solving robust optimization models
After you have specified all uncertain parameters, random parameters,
chance constraints and adjustable variables that specify your robust
optimization model, your original mathematical program can now be solved
as a robust optimization model. It is also still possible to solve it as
a deterministic model by just calling the SOLVE
statement (see
also The SOLVE Statement).
Generate robust counterpart
To solve a robust optimization model for a MathematicalProgram
MP,
the first step is to generate its robust counterpart. This can be
accomplished by calling the GMP function
GenerateRobustCounterpart
(MP,UncertainParameters,UncertaintyConstraints[,Name])
The function returns an element into the set
AllGeneratedMathematicalPrograms
, i.e., the generated mathematical
program representing the robust counterpart of the given robust
optimization model.
Specifying uncertain data
Through the UncertainParameters and UncertaintyConstraints arguments you can specify the collection of uncertain and random parameters, as well as the uncertainty constraints that you want to take into account when generating the robust counterpart. Together, these completely determine the uncertain data which AIMMS will use to translate the uncertain matrix coefficients, chance constraints and adjustable variables into the generated mathematical program representing the robust counterpart.
Name argument
With the optional Name argument you can explicitly specify a name for
the generated mathematical program. If you do not choose a name, AIMMS
will use the name of the underlying MathematicalProgram
as the name
of the generated mathematical program as well. Please note, that AIMMS
will also use this name as the default name for solving the
deterministic model. Therefore, if you do not want the generated
mathematical program of the deterministic model to be deleted, then you
have to choose a non-default name.
Solving the robust counterpart
You can solve the generated mathematical program gmp representing the robust counterpart by calling the regular GMP procedure
GMP::Instance::Solve
(gmp)
The GMP::Instance::Solve
method is discussed in full detail in
Managing Generated Mathematical Program Instances. Alternatively, you can use any of the other
available functions available to solve generated mathematical programs
discussed in Implementing Advanced Algorithms for Mathematical Programs. Note that AIMMS will not allow you to use
the GMP modification functions on any gmp
generated by
GenerateRobustCounterpart
.
The resulting solution
The solution resulting from solving the robust counterpart will satisfy
all non-chance constraints in your model for all realizations of the
uncertain parameters that you passed to the
GenerateRobustCounterPart
function, and will satisfy all chance
constraints with the given probabilities and approximations, given the
random parameters taken into account.