GAMS/Cplex 10.0 Release Notes

New Features

Improvements for MIQPs

CPLEX version 10 extended its facilities for generating cuts automatically to attempt generation of Gomory cuts for mixed integer programs with a quadratic objective function.

CPLEX version 10 rejects fewer models that are not positive semi-definite.

Changes in MIP start behavior

MIP starts now accept fractional (that is, noninteger) solutions.

If a user provides a MIP start that cannot be extended into a feasible solution, CPLEX will try to repair it. For more detail about this feature, see also parmeter repairtries in these release notes.

Feasible Relaxation

The Infeasibility Finder identifies the causes of infeasibility by means of inconsistent set of constraints (IIS). However, you may want to go beyond diagnosis to perform automatic correction of your model and then proceed with delivering a solution. One approach for doing so is to build your model with explicit slack variables and other modeling constructs, so that an infeasible outcome is never a possibility. An automated approach offered in GAMS/Cplex is known as FeasOpt (for Feasible Optimization) and turned on by parameter feasopt in a CPLEX option file.

With the FeasOpt option CPLEX accepts an infeasible model and selectively relaxes the bounds and constraints in a way that minimizes a weighted penalty function. In essence, the feasible relaxation tries to suggest the least change that would achieve feasibility. It returns an infeasible solution to GAMS and marks the relaxations of bounds and constraints with the INFES marker in the solution section of the listing file. By default all equations are candiates for relaxation and weigthed equally but none of the variables can be relaxed. This default behavior can be modified by assigning relaxation preferences to variable bounds and constraints. These preferences can be conveniently specified with the .feaspref option. A negative or zero preference means that the associated bound or constraint is not to be modified. The weighted penalty function is constructed from these preferences. The larger the preference, the more likely it will be that a given bound or constraint will be relaxed. Values for specific variable or constraints can be passed on through option

(variable or equation name).feaspref (value)
The parameter FeasOptMode allows different strategies in finding feasible relaxation in one or two phases. In its first phase, it attempts to minimize its relaxation of the infeasible model. That is, it attempts to find a feasible solution that requires minimal change. In its second phase, it finds an optimal solution (using the original objective) among those that require only as much relaxation as it found necessary in the first phase. Values of the parameter FeasOptMode indicate two aspects: (1) whether to stop in phase one or continue to phase two and (2) how to measure the relaxation (as a sum of required relaxations; as the number of constraints and bounds required to be relaxed; as a sum of the squares of required relaxations). Please check description of parameter feasopt and feasoptmode for details.


Indicators are new constraint types that enable the user to express particular modeling constructs among variables by identifying a binary variable to control whether or not a specified linear constraint is active. Formulations using indicator constraints are more numerically robust and accurate than conventional formulations involving so-called Big M data. GAMS 22.1 implements Indicators not on the GAMS language level but through a Cplex option file. This is an experimental setup which is described on the GAMS/Cplex Indicator Constraints page.

New and Modified Cplex Parameters

Cplex Parameter cliques

A very aggressive new setting (3) is available for the clique cut parameter.

Cplex Parameter covers

A very aggressive new setting (3) is available for the cover cut parameter.

Cplex Parameter cuts

This parameter allows now setting all cuts at once to off (-1), automatic (0), moderate (1), aggressive (2), and very aggressive (3).

Cplex Parameter lbheur

This parameter lets you control whether CPLEX applies a local branching heuristic to try to improve new incumbents found during a MIP search. By default, this parameter is off. If you turn it on, CPLEX will invoke a local branching heuristic only when it finds a new incumbent. If CPLEX finds multiple incumbents at a single node, the local branching heuristic will be applied only to the last one found.

Cplex Parameter memoryemphasis

This parameter lets you indicate to CPLEX that it should conserve memory where possible. When you set this parameter to its nondefault value, CPLEX will choose tactics, such as data compression or disk storage, for some of the data computed by the barrier and MIP optimizers. Of course, conserving memory may impact performance in some models. Also, while solution information will be available after optimization, certain computations that require a basis that has been factored (for example, for the computation of the condition number Kappa) may be unavailable.

This replaces old Cplex parameters barooc, finalfactor, and precompress.

Cplex Parameter mpslongnum

This parameter lets you control the degree of precision displayed in output files in MPS and REW formats

Cplex Parameter numericalemphasis

This parameter lets you indicate to CPLEX that it should emphasize precision in numerically difficult or unstable problems, with consequent performance trade-offs in time and memory.

Cplex Parameters polishtime

This parameter enables you to regulate the amount of time that CPLEX spends in polishing the best solution found. During solution polishing, CPLEX applies its effort to trying to improve the best feasible solution. Polishing can yield better solutions in some situations.

Cplex Parameters preslvnd

A new setting (2) for the presolve node parameter is available. The new setting probes all integer-feasible variables at each node to find those that can be fixed.

Cplex Parameters probetime

This parameter enables you to limit the amount of time that CPLEX spends in probing.

Cplex Parameters relaxpreind

The default value of the indicator for preprocessing relaxation has changed. The default is now -1 automatic: let CPLEX decide. The new default usually produces a faster initial solution of the relaxation.

Cplex Parameters repairtries

If a user provides a MIP start (full or partial) that cannot be extended into a feasible solution, CPLEX will try to repair it. By default, CPLEX will try the repair heuristic once.

Cplex Parameters repeatpresolve

This new parameter lets you tell CPLEX to re-apply the MIP presolve techniques of the preprocessor to a MIP model at the root after preprocessing has otherwise finnished (that is, after cut generation at the root).

Cplex Parameters symmetry

CPLEX now offers more aggressive techniques for symmetry breaking.