Getting different results in subsequent solver runs

AIMMS Knowledge Base Article - KB00006

Getting different results in subsequent solver runs

Summary

There are several possible reasons for getting different results in subsequent solver runs.

Symptoms

When you run a solve statement for your math program, you get a solution. When you run this statement again, you can get a different solution.

Cause

There are several causes for getting different results in subsequent solver runs:

  • The initial values are not the same (for NLP and MINLP).
  • The problem is not regenerated completely.
  • The math program is changed between the two solve statements.

Resolution

To get the same results in subsequent solver runs, you should not only make sure that you have the same initial values, but also force AIMMS and the solver to completely regenerate the problem. You can do this by setting the following options (menu: Settings – Project Options…):

        Solvers general - Update technology - Employ solver update -> off

        Solvers general - Update technology - Regenerate threshold -> 0

        Solvers general - Interface - Accept basis -> 0

For CONOPT some of the options defaults have a machine dependent setting. To get consistent results on different computers, it's best to fix the following options (Specific Solvers – CONOPT X.XXX):

        Limits – Maximal jacobian element ->2.0e+5

        Limits – Maximal solution of a variable -> 6.0e+7

        Feasibility – Minimal feasibility tolerance -> 4.0e-10

        Stop Criteria – Optimality tolerance -> 2.0e-5

        Stop Criteria – Relative objective tolerance -> 3.0e-13

When you have set these options and you still have different results that you think should be the same, you can compare the constraint listing files for both solver runs. In a constraint listing file you can see the actual generated constraints, and comparing this for the two subsequent solver runs may help you finding the difference(s). You can create a constraint listing file by setting the following option:

        Solvers general - Standard reports – Constraints - Constraint listing -> ‘At every solve’.

The listing file can be found (after you have solved your model) in the log folder of your AIMMS project. You can also open it in AIMMS via the File menu: Open – Listing File.

More information

For more information, please contact us at support@aimms.com.