Declaration of Mixed Complementarity Models
Mixed complementarity models
To define a pure mixed complementarity model, you must declare a
MathematicalProgram (see also MathematicalProgram Declaration and Attributes) and specify mcp
as the Type attribute of the MathematicalProgram. In the
Variables attribute you can specify a subset of the set of all
ComplementarityVariables to be included in the mixed complementarity
model at hand. Based on this specification, AIMMS will automatically
generate all constraints associated with these complementarity
variables, resulting in a square system.
Additional variables and constraints
In addition, AIMMS allows you to add ordinary variables to the
Variables attribute, and to specify additional constraints in the
Constraints attribute of the MathematicalProgram that must be
satisfied as well. If the solver used to solve the mixed complementarity
model requires a square system, AIMMS will automatically add auxiliary
constraints or variables to the generated system, and provide the
linkages with the ordinary variables and constraints you have added to
the system.
No optimization
For a mixed complementarity problem you should not specify the
Objective and Direction attributes, as a complementarity solver
will only compute a feasible solution that satisfies all the
complementarity conditions specified. If these attributes are not empty,
AIMMS will produce a runtime error when you apply the SOLVE
statement the corresponding MathematicalProgram (see also
The SOLVE Statement).
Example
A mixed complementarity model containing the declaration of the
complementarity variable MembraneHeight declared in the previous
section, is defined by the following declaration.
MathematicalProgram Membrane {
Variables : AllVariables;
Type : mcp;
}
As usual, you can solve the Membrane through the statement
solve Membrane;
which will generate the mixed complementarity model and invoke a
suitable solver for mcp problem type.