GAMS/Cplex 8.0 Release Notes

New Features

New Methods for Solving LP Models


Sifting may be beneficial for models with many more columns than rows. A sequence of LP subproblems is solved where the results from one subproblem are used to select columns from the original model for inclusion in the next subproblem. The process converges to a solution for the original model.


Concurrentopt is available on multi-CPU computers if the parallel option has been purchased for GAMS/Cplex. When specified as the LP method, LP optimizations will be launched on multiple threads at once. The first thread will use Dual Simplex, the second will use the Barrier method (if licensed), and the third will use Primal Simplex. Any additional threads, if available, will be used by the Barrier method. On a machine with enough memory, this will result in the solution being returned by the fastest method.

New QP Capabilities

Simplex Methods for Solving QP Models

Dual Simplex and Primal Simplex methods have been added for solving Quadratic Programming (QP) models. In prior releases, QP models could be solved by only the Barrier method which is not able to restart an optimization from a previous solution.

Presolve has been extended to perform reductions on QP models that will benefit all the QP methods.

Mixed Integer Quadratic Programming

The Cplex branch & cut algorithm has been extended to support QP models.

The Simplex QP methods and the ability to solve MIQP problems are licensed together as a separate option. The Barrier and MIP options are prerequisites. QP (continuous or mixed integer) models are supported from GAMS via the GAMS/QPwrap facility.

Parallel Cplex

Parallel Cplex is no longer accessed via a separate GAMS solver. The number of threads used is controlled via Cplex parameters.

Modified Cplex Parameters

Cplex Parameter lpmethod

Values have be added for specifying the sifting and concurrentopt methods.

The meaning of the automatic setting has been changed. If a primal feasible-basis is available, Primal Simplex will be used. If the number of parallel threads (parameter threads) has been set to greater than 1, and an advanced basis is not available, the concurrentopt method will be used.

Cplex Parameters barthreads, mipthreads, simthreads

The default values for these parameters have been changed to the setting for the new (global) threads parameter. It, in turn, defaults to 1.

Cplex Parameter bttol

The default value has changed from 0.01 to 0.9999 because of changes made to the overall branching strategy. This change will not be likely to affect users unless they have been supplying their own values for bttol.

Cplex Parameter startalg

The values meaning "Dual to iteration limit then barrier" and "Barrier without crossover" are no longer allowed. Barrier without crossover can still be accomplished by specifying Barrier and then using parameter barcrossalg to specify no crossover. Sifting and concurrentopt have been added as possible choices.

Cplex Parameter bargrowth

The default has been increased from 1.0e6 to 1.0e8 to reduce the likelyhood that a model will be declared to have an unbounded optimal face.

Cplex Parameter baritlim

The default has been changed to no explicit limit (ie very large). Formerly, by default, an iteration limit was enforced, but it was automatically calculated based on model characteristics.

Cplex Parameter mipemphasis

The default has been changed to a new value, "balanced", which seeks a balance between searching for feasible solutions and proving optimality.

A new choice, "best bound", has been added which emphasizes moving the best bound as an aggressive technique for proving optimality on extremely difficult models.

Cplex Parameter baralg

The same values are allowed, but the feasibility algorithms now support solution of QP models.

New Cplex Parameters

Cplex Parameter qpmethod

This parameter is similar to parameter lpmethod except, of course, that it controls which method will be used for solving QPs instead of LPs. The default is to use Barrier for continuous QP models and Dual Simplex for the root node of MIQPs.

Cplex Parameter qpmakepsdind

This parameter determines whether or not Cplex will attempt to adjust an MIQP formulation to make a QP positive semi-definite, if it is not already, or to tighten an already positive semi-definite matrix for better numerical performance. This only applies to models where all variables appearing in the quadratic term are binary. The default is yes.

Cplex Parameter threads

This single parameter overrides the default value for the individual parameters barthreads, mipthreads and simthreads. It also sets the number of threads for the concurrentopt method. It's default value is 1.

Cplex Parameter siftalg

This parameter is used to specify which method to use for sifting subproblems.

Cplex Parameter siftdisplay

This parameter is used to control the amount of information written to the log file (screen) as the sifting algorithm proceeds.

Cplex Parameter siftitlim

This parameter provides a limit on the number of sifting iterations. The default is very large (ie no limit).

Cplex Parameter divetype

The Cplex MIP traversal strategy occasionally performs probing dives where it looks ahead at both child nodes before deciding which node to choose. This parameter controls how much diving is done.

Cplex Parameter symmetry

This parameter determines whether or not symmetry breaking cuts may be added, during preprocessing, to a MIP model.