Debug an Infeasible Model
After executing a solve statement in your model, AIMMS returns with the message that your model is infeasible.
There are several ways to find out why your model is infeasible. This article presents a few methods:
Math Program Inspector
Infeasibility Finder
Constraint listing
Infeasibility analysis
AIMMS Presolver
Math Program Inspector
The Math Program Inspector contains a collection of tools that can help you to find the cause of errors in your linear model. See the The Math Program Inspector.
Infeasibility Finder
You can activate the Infeasibility Finder of the solver. This is an option that writes extra information to the listing file when the model is infeasible.
The Infeasibility Finder is available for the solvers CPLEX, GUROBI, XA, BARON and CONOPT. (Check the Help on this option for more information.)
Set the following option in AIMMS:
.After setting this option, run your model again.
Open the listing file found at
, or in the log-folder of your AIMMS project (*.lis
).
Constraint Listing
You can create a constraint listing file to see the actual generated constraints and to see which ones are infeasible (by searching on ****
).
Set the following option in AIMMS:
.After setting this option, run your model again.
Open the listing file found at
, or in the log-folder of your AIMMS project (*.lis
).
Infeasibility Analysis
In the chapter Solving Mathematical Programs in the AIMMS Language Reference, there is a section ‘Infeasibility analysis’. In this section another way to find infeasibilities is explained. The used method is based on adding excess variables to your model and AIMMS offers support to automatically extend your mathematical program with excess variables during the generation of the matrix for the solver.
See also Solving Mathematical Programs.
AIMMS Presolver
If your model is nonlinear then you can let the AIMMS Presolver try to detect the cause of the infeasibility.
Set the following options in AIMMS:
and .After setting this option, run your model again.
Open the listing file found at
, or in the log-folder of your AIMMS project (*.lis
).
See also Advanced Methods for Nonlinear Programs.