GAMS/Cplex 9.0 Release Notes


New Features

Quadratically Constrained Programs

Cplex can now solve models with quadratic contraints. These are formulated in GAMS as models of type QCP. QCP models are solved with the Cplex Barrier method.

QP models are a special case that can be reformuated to have a quadratic objective function and only linear constraints. Those are automatically reformulated from GAMS QCP models and can be solved with any of the Cplex QP methods (Barrier, Primal Simplex or Dual Simplex).

For QCP models, Cplex returns a primal only solution to GAMS. Dual values are returned for QP models.

Cplex can also solve problems of GAMS model type MIQCP. As in the continuous case, if the base model is a QP the Simplex methods can be used and duals will be available at the solution. If the base model is a QCP, only the Barrier method can be used for the nodes and only primal values will be available at the solution.

With the addition of the GAMS QCP model type, it is no longer necessary to use the QPWRAP facility.

Except for QP models solved with the Barrier method, solving QCP models requires purchase of a separately licensed option.

New and Modified Cplex Parameters

Cplex Parameter barcrossalg

The Barrier method now has the ability to crossover to a simplex basis for QP models, as was already the case for LP models. This allows Barrier to be used in the concurrent optimizer. It also makes Barrier more useful as the root solver for MIQP models when one of the simplex methods is used for the nodes. Remember that an MIQP model is one of GAMS model type MIQCP that was successfully reformulated to have only linear constraints. Crossover is not available for MIQCP models.

If barcrossalg is set to automatic (the default setting), Cplex will default to no crossover for QP problems but will invoke crossover for LP or MIQP models.

Cplex Parameter mipemphasis

An additional setting is now available to indicate emphasis on hidden feasible solutions. With this setting, Cplex will work hard to find high quality feasible solutions that are otherwise very difficult to find. Use this setting when more interested in finding a good feasible solution than a provably optimal solution and when an emphasis on feasibility has difficulty finding solutions of acceptable quality.

Cplex Parameter rinsheur

This version of Cplex supports a heuristic known a relaxation induced neighborhood search (RINS) for MIP and MIQCP problems. RINS explores a neighborhood of the current incumbent to try to find a new, improved incumbent. It formulates the neighborhood exploration as a MIP, a subproblem known as the subMIP and truncates the subMIP solution by limiting the number of nodes explored in the search tree.

Parameter rinsheur controls how often RINS is invoked. A value of 100, for example, means that RINS is invoked every hundredth node in the tree. The default is 0 which means that Cplex will decide when to apply RINS. A value of -1 disables RINS.

Cplex Parameter submipnodelim

Parameter submipnodelim controls the number of nodes explored in an RINS subMIP. The default value is 500 and is appropriate for typical models.

Cplex Parameter epint

Parameter epint (the integrality tolerance) may now be set to zero. The former minimum was 1.0e-9. The default remains 1.0e-5 though it may be changed to zero in a future release.

Other tolerances such as simplex feasibility and optimality have not been changed in a similar way. Cplex no longer resets the feasibility tolerance to be less than or equal to the integrality tolerance.

Cplex Parameter advind

Parameter advind (advanced basis indicator) has a new possible value of 2. When set to 2, Cplex will crush an advanced basis -- allowing use of both an advanced basis and presolve. This is mostly transparent to GAMS users, but does allow a nice performance improvement for some MIP problems where the final LP was expensive.

Cplex Parameter finalfactor

Parameter finalfactor controls whether or not Cplex will factor the basis of the full model after optimizing but before terminating. This can save some memory on large problems at the expense of making some operations unavailable. For example, computation of the condition number may be unavailable depending upon the exact operations that presolve performed.

Cplex Parameter depind

Parameter depind controls the Cplex dependency checker. Formerly, depind could be either 0 for no checking or 1 for checking. New values are -1 for automatic, 1 for on only at the beginning of preprocessing, 2 for on only at the end of preprocessing, or 3 for on at the beginning and end of preprocessing.

Cplex Parameter dpriind

Parameter dpriind controls pricing for dual simplex. A new setting, 5, indicates Devex pricing which was previously unavailable.

Cplex Parameter divetype

Parameter divetype controls the type of diving for MIP problems. A new value, 3, specifies a guided dive. In guided dives, the branch direction is guided by the current incumbent, causing the MIP search to spend more time exploring potential solutions that are similar to the current incumbent.

Cplex Parameter bargrowth

Parameter bargrowth controls the detection of unbounded optimal faces in the barrier method. The default has been increased from 1e8 to 1e12

Cplex Parameter barvarup

Parameter barvarup controlled the upper limit on variables in the barrier method. This parameter has been removed. Cplex now assumes an infinite upper bound if no finite bound has been specified.

Cplex Parameter simthreads

This obsolete parameter has been removed.