GAMS/Cplex 11.0 Release Notes


GAMS/Cplex is now available on Solaris Sparc64 and the Intel Mac platforms.

The solution pool

A new feature of Cplex 11.0, known as the solution pool, enables you to generate and store multiple solutions to a problem. For example,

Please check for details in the GAMS/Cplex solver manual in section Solution Pool: Generating and Keeping Multiple Solutions.

Tuning Tool

The tuning tool, a utility to aid you in improving the performance of your optimization applications, analyzes a model or a group of models and suggests a suite of parameter settings for you to use that provide better performance than the default parameter settings.

The tuning tool looks at parameters to improve solving time. If your model suffers from numeric instability, the tuning tool will not attempt to correct that problem. Furthermore, if there is insufficient memory to accommodate optimization of your model, the tuning tool will not correct that problem either. In short, the tuning tool does not magically eliminate all performance bottlenecks. However, if you understand the performance issues of your model, the tuning tool can help you discover parameter settings that lead to faster solving time.

If Cplex solves your problem to optimality, you may still want to apply the tuning tool to discover whether you can solve the model faster. In such a case, bear in mind that the tuning tool performs several optimization runs as it goes about its work. These optimization runs may take six to eight times longer than the default run that produced your optimal results.

In the case where Cplex finds solutions for your model but does not prove optimality before invoking the tuning tool, you will likely want to set the time limit per model to avoid a tuning run of indefinite length with GAMS/Cplex option TuningTiLim.

When you are tuning a single model, you can ask Cplex to perturb the model and re-tune to get more robust results. The problem is perturbed automatically by permuting its rows and columns. This repetition is especially helpful when only one problem is being tuned, as repeated perturbation and re-tuning may lead to more robust tuning results. Inspect GAMS/Cplex option TuningRepeat.

The GAMS/Cplex option TuningMeasure controls the measure for evaluating progress when a suite of models is being tuned. Possible measures are the mean average of time to compare different parameter sets over a suite of models and the minmax approach to compare the time of different parameter sets over a suite of models.

The Cplex parameter tuning tool is invoked with GAMS/Cplex option Tuning. The mandatory value following the keyword specifies a GAMS/Cplex option file. All options found in this option file will be used but not modified during the tuning. A sequence of file names specifying existing problem files may follow the option file name. The files can be in LP, MPS or SAV format. Cplex will tune the parameters either for the problem provided by GAMS (no additional problem files specified) or for the suite of problems listed after the GAMS/Cplex option file name without considering the problem provided by GAMS (use option writesav to create a SAV file of the problem provided by GAMS and include this name in the list of problems if this problem should be considered for tuning). The result of such a run is an updated GAMS/Cplex option file with a tuned set of parameters. The solver and model status returned to GAMS will be NORMAL COMPLETION and NO SOLUTION. The only GAMS options that are used for the tuning run are optcr and optca. All other GAMS options (like cheat, cutoff, iterlim, nodlim, priorities, and tryint) are not used. If you need to set them they have to go into the Cplex option file. Also, tuning is incompatible with the BCH facility and other advanced features of GAMS/Cplex.

Parallel Mode

The new parallel mode parameter, ParallelMode supports three modes: deterministic, opportunistic, and automatic (where Cplex decides which mode to apply).

In this context, deterministic means that multiple runs with the same model at the same parameter settings on the same platform will reproduce the same solution path and results. In contrast, opportunistic introduces the possibility that even slight differences in timing among threads or in the order in which tasks are executed in different threads may produce a different solution path and consequently different results (not a different optimal solution, but possibly a different solution vector). When running with multiple threads, the opportunistic setting entails less synchronization between threads and consequently may provide better performance.

By default, MIP optimization occurs deterministically.

Settings of this parallel mode parameter interact with settings of the thread parameter:

Please note that the GAMS/Cplex default for threads is 1 (sequential) while the ILOG/Cplex default is 0. Also, deterministic parallel mode is incompatible with the BCH facility and other advanced features of GAMS/Cplex.

Dynamic Search

Cplex 11.0 offers a new and innovative algorithmic approach for mixed integer programs. This new feature, known as dynamic search, is used by default. For many models, dynamic search finds feasible and optimal solutions more quickly than conventional branch & cut.

A new parameter (MIPSearch) allows you to turn off this feature in applications where you judge that traditional branch & cut search is more appropriate.

Dynamic Search and deterministic parallel mode are incompatible with advanced GAMS/Cplex options like BCH.

Quadratic Constraints

The ability of Cplex to convert non-convex quadratic constraints into convex constraints automatically has been greatly enhanced. This improvement means that certain models with quadratic constraints that would have been rejected previously as non-convex can now be processed and solved successfully by Cplex. In other words, more MIQCP models will be accepted and solved.

New Cplex Parameters

Cplex Parameter EachCutLim

This parameter allows you to set a uniform limit on the number of cuts of each type that Cplex generates. By default, the limit is a large integer; that is, there is no effective limit. Tighter limits on the number of cuts of each type may benefit certain models. For example, a limit on each type of cut will prevent any one type of cut from being created in such large number that the limit on the total number of all types of cuts is reached before other types of cuts have an opportunity to be created. A setting of 0 means no cuts. This parameter does not influence the number of Gomory cuts. For means to control the number of Gomory cuts, see the existing fractional cut parameters: fraccand, fraccuts, and fracpass.

Cplex Parameter FPHeur

This parameters controls the use of the feasibility pump heuristic for mixed integer programming (MIP) models.

Cplex Parameter MIQCPStrat

This option controls how MIQCPs are solved. At the default setting of 0, Cplex automatically chooses a strategy. When you set this parameter to the value 1, you tell Cplex to solve a QCP relaxation of the model at each node. When you set this parameter to the value 2, you tell Cplex to attempt to solve an LP relaxation of the model at each node. For some models, the setting 2 may be more effective than 1. You may need to experiment with this parameter to determine the best setting for your model.

Cplex Parameter ZeroHalfCuts

This parameter decides whether or not to generate zero-half cuts for the problem. The value 0, the default, specifies that the attempt to generate zero-half cuts should continue only if it seems to be helping. If you find that too much time is spent generating zero-half cuts for your model, consider setting this parameter to -1 to turn off zero-half cuts. If the dual bound of your model does not make sufficient progress, consider setting this parameter to 2 to generate zero-half cuts more aggressively.

Modified and Removed Cplex Parameters

Cplex Parameter EpInt

The maximum value for this option is now 0.5.

Cplex Parameter Symmetry

Highly (4) and extremely (5) aggressive settings are available for the symmetry breaking cuts.

Cplex Parameter NodeLim

When this parameter is set to 0 (only possible through an option file), Cplex completes processing at the root; that is, it creates cuts and applies heuristics at the root. When this parameter is set to 1 (one), it allows branching from the root; that is, nodes are created but not solved.

Cplex Parameters MIPThreads, BarThreads, and StrongThreadLim

These parameters have been removed.

Cplex Parameters WriteSOS

This parameter has been removed.