These options regulate the behavior of AMPL’s presolve phase, which attempts to reduce the size of a problem instance before sending it to a solver. Presolve reductions include removing one-variable inequalities that can be merged with variable bounds, and analyzing constraints together with variable bounds to determine variables that can be fixed and constraints that can be dropped.
Whether to allow a solve or write command to proceed with sending a problem to the solver, after presolve has determined that no feasible solution is possible:
Under the default setting of 1, when presolve determines infeasibility it displays a warning message and does not send the problem to the solver; typing solve a second time overrides this behavior and forces the problem to be sent to the solver, which makes its own determination of infeasibility and may return additional information of interest. Specify 2 to use this feature also in scripts, or 3 to force the problem to be sent to the solver under all circumstances.
Maximum number of passes in AMPL’s presolve phase. A higher value of n may reduce the size of the problem instance sent to the solver, but may take more time. Set n to 0 to turn off presolve.
Whether to simplify constants in certain nonlinear contexts during presolve. Set to the sum of
By default all simplifications are turned on, and they should only be turned off in rare situations where simplifying could affect numerical accuracy of the computations.
The presolve feasibility tolerance. Presolve reports infeasibility only when its lower bound exceeds its upper bound by more than r.
The reporting threshold for presolve_eps changes. If setting presolve_eps to a higher value, but not greater than r, might change the results of presolve, then an appropriate warning message is displayed.
The presolve fixing tolerance. When the upper and lower bounds of a variable or constraint differ by less than r, the variable or constraint is fixed at the average of the two bounds.
The reporting threshold for presolve_fixeps changes. If setting presolve_fixeps to a higher value, but not greater than r, might change the results of presolve, then an appropriate warning message is displayed.
The presolve integrality tolerance. For integer variables, presolve subtracts r from the lower bound before rounding it up to the next higher integer, and adds r to the upper bound before rounding it down to the next lower integer.
The reporting threshold for presolve_inteps changes. If setting presolve_inteps to a higher value, but not greater than r, might change the results of presolve, then an appropriate warning message is displayed.
Destination for presolve log. When not null, s specifies the name of a file to which a list of presolve actions will be written. Specify >> at the beginning of s to append the log to the named file; otherwise if the file exists, it will be overwritten.Specify s as the single character – to direct the log to standard output (usually, the terminal window).
The presolve message limit. Presolve displays most n separate messages such as infeasibility warnings, and reports the number of additional messages suppressed.