AIMMS Knowledge Base Article - KB00004
There are several ways to find out why your model is infeasible.
After executing a solve statement in your model, AIMMS returns with the message that your model is infeasible.
There are different causes for an infeasible model. The problem is to find out what the exact cause is.
- 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. There is a chapter in the AIMMS User's Guide about 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. You can set the option as follows:
Solvers general - Standart reports - Solution - Infeasibility finder ⇒ On
After setting this option, run your model and open the listing file via the menu: File – Open – Listing File, or via the explorer 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 ****). You can do this by setting the following option:
Solvers general - Standard reports - Constraints - Constraint listing ⇒ At an infeasible solve
The listing file can be opened via the menu: File – Open – Listing File, or via the explorer in the log-folder of your AIMMS project (*.lis).
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. How to use this feature is described in the mentioned section.
If your model is nonlinear then you can let the AIMMS Presolver try to detect the cause of the infeasibility. You can do this by setting the following options:
Solvers general - AIMMS Presolver - Nonlinear Presolve ⇒ On
Solvers general - AIMMS Presolver - Display Infeasibility Analysis ⇒ On
The information is printed in the listing file which can be opened via the menu: File – Open – Listing File, or via the explorer in the log-folder of your AIMMS project (*.lis). More information about the AIMMS Presolver can be found in the chapter Advanced Methods for Nonlinear Programs in the AIMMS Language Reference.