23.6 Distribution

23.6.2 Major release (December 13, 2010)

Acknowledgments

We would like to thank all of our users who have reported problems and made suggestions for improving this release. In particular, we thank Wolfgang Britz, Nico Keyaerts, Leon Lasdon, Xiang Li, Timo Lohmann, Sebastian Ritter, Yannick Rombauts, Tom Rutherford, Uwe Schneider, Stefan Vigerske, Achim Wechsung, and Gyeongbeom Yi.

GAMS System

GAMS

  • Added the function RandBinomial(n,p) which generates random numbers from the Binomial distribution where n is the number of trials and p the probability of success for each trial.
  • Added the gams date and release functions to $eval and [..] constant evaluations: jdate, jtime, gyear, gmonth, gday, gdow, gleap, ghour, gminute, gsecond, gmillisec, jstart, jnow, gamsversion, gamsrelease.
  • Modified operator precedence binding of IMP (->), EQV (<->), OR and XOR. These operator used to have the same precedence binding, so with the usual left to right evaluation an expression like a -> b OR c used to be equivalent to (a -> b) OR c. IMP and EQV have now a lower precedence binding, so the expression a -> b OR c is now equivalent to a -> (b OR c).
  • There is no longer a practical limit for the number of non-linear instructions for a single equation.
  • New interpretation of value default for command line parameters gdx and rf: default is interpreted as the input file name, this means for example, that gams trnsport gdx=default will write the file trnsport.gdx. Along the same lines, gams trnsport rf=default will write the reference file trnsport.ref.
  • New command line parameter Threads: Controls the number of threads to be used by a solver. It can also be set as GAMS option or model attribute. The model attribute has the highest priority, the command line parameter the lowest. Non-positive values are interpreted as the number of cores to leave free so setting threads to 0 uses all available cores while setting threads to -1 leaves one core free for other tasks.

APIs

  • Determine platform dependent library name automatically, no requirement for compiler flags anymore
  • Delphi API files also support Delphi 2010
  • Python API files comprehensively improved
  • More Fortran examples

Utilities

Chk4Upd

  • The new tool chk4upd checks if there is a newer version of GAMS available than the one you are running. It checks for the most recent version available as well as for the newest version you can run with your license in case your maintenance and support is expired. By default it reads gamslice.txt located next to it. Alternatively, you can specify another license on the command line. In addition to the command line tool you will find an integration in the GAMS IDE at Help -> Check for GAMS Update.

GamsIDE

  • Integration of 'Check for GAMS Update' in the Help Menu
  • The 'Find in Files' option now allows for one or more sub-directories to be excluded from the search
  • The selection to use a different GAMS system has been changed. We no longer specify the gams.exe executable but define the alternate GAMS system directory instead.

GDXDiff

  • The function to test if two values are different when Eps/RelEps has been specified was changed. The documentation describes the new implementation.

GDXMRW

  • GDXMRW is a collection of utilities that make it easier and more reliable to share data between GAMS and Matlab and that allow the Matlab user to call GAMS using something similar to a subroutine interface. Formerly contributed software, these utilities were integrated into GAMS Distribution 23.4 and have been updated and improved since then.

XLSDump

  • This new program will write all worksheets of an Excel workbook to a gdx file. Unlike GDXXRW, the program does not require that Excel is installed. Windows platforms only.

Solvers

Baron

  • Option ExtNLPsolver allows to specify an option file for the GAMS NLP solver chosen (e.g. ExtNLPSolver conopt.1)

Coin-OR

  • New libraries
    • BONMIN 1.4
    • CSDP 6.1.1
    • CSDP now also available on Solaris x64 on Intel
  • The old names COINCPLEX, COINGUROBI, COINMOSEK, and COINXPRESS are not available anymore. Please use the new names OSICPLEX, OSIGUROBI, OSIMOSEK, and OSIXPRESS introduced with distribution 23.4.

Conopt

  • Supports in-core communication (solvelink=5)
  • Dropped support of Conopt 2 (old version of Conopt)

Cplex

  • New libraries 12.2.0.1

EMP

  • The emp information file now supports block-wise definition
    • A flip operator (-) was introduced, see model flipper (50)

Gurobi

  • New libraries 4.0
  • Quadratic programming: The Gurobi Optimizer now supports models with quadratic objective functions. The new version includes primal simplex, dual simplex, and parallel barrier optimizers for continuous QP models, and a parallel branch-and-cut solver for Mixed Integer Quadratic Programming (MIQP) models.
  • Concurrent optimizer: The Gurobi Optimizer now allows you to run multiple algorithms simultaneously when solving a linear continuous model on a multi-core machine. The optimizer returns when the first algorithm solves the model. We include both a standard concurrent optimizer and a deterministic concurrent optimizer. The latter returns the exact same solution every time you run it, while the former can sometimes return different optimal solutions from one run to the next. The former can sometimes be significantly faster.
  • MIP performance: The MIP solver is faster in release 4.0. These improvements do not require any parameter changes.
  • LP performance: The simplex and barrier solvers are slightly faster in release 4.0. We have also improved the numerical stability of the primal simplex solver and the barrier crossover algorithm.
  • Delayed MIP strategy change: The Gurobi Optimizer now gives you the option to change a few MIP parameters in the middle of the optimization in order to dynamically shift the search strategy. Specifically, two new parameters, ImproveStartGap and ImproveStartTime, allow you to specify when the algorithm should modify the values of a few parameters that control the intensity of the MIP heuristics. By setting one or both of these parameters to non-default values, you can cause the MIP solver to switch from its standard parameter settings, where it tries to strike a balance between finding better solutions and proving that the current solution is optimal, to a set of parameter values that focus entirely on finding better solutions.
  • New approach to choosing the LP algorithm: The functions previously controlled by parameters LPMethod and RootMethod are now controlled by parameters Method and NodeMethod. Use Method to choose the algorithm for solving a continuous model, or for solving the root relaxation in a MIP model. Use NodeMethod to choose the algorithm for solving node relaxations in a MIP model.
  • Deprecated options: LPMethod and RootMethod
  • New options
    • Method: Controls the algorithm used to solve continuous linear and quadratic models. This parameter also selects the algorithm used to solve the root node of a MIP model.
    • NodeMethod: Chooses the algorithm used to solve node relaxations in a MIP model.
    • ModKCuts: Controls the generation of mod-k cuts.
    • ImproveStartGap: Allows you to specify the optimality gap at which the MIP solver resets a few MIP heuristics parameters in order to shift the attention of the MIP solver to finding the best possible feasible solution.
    • ImproveStartTime: Allows you to specify the elapsed time at which the MIP solver resets a few MIP heuristics parameters in order to shift the attention of the MIP solver to finding the best possible feasible solution.
    • PreMIQPMethod: Chooses the presolve transformation performed on MIQP models.
    • PSDTol: Sets a limit on the amount of diagonal perturbation that the optimizer is allowed to do on the Q matrix for a quadratic model. If a larger perturbation is required, the optimizer will terminate with a message that Q is not positive semi-definite.

Knitro

  • New libraries 7.0.0
  • Supports the MultiStart feature in Knitro
  • Supports in-core communication (solvelink=5)
  • Supported on 64bit Mac and 64bit Solaris on Intel
  • Dropped support on Solaris Sparc and Sparc64

Lgo

  • supports in-core communication (solvelink=5)
  • support of external equations

Mosek

  • New libraries 6.0.96
  • Supports in-core communication (solvelink=5)
  • Dropped support on Solaris Sparc and Sparc64

Scip

Xa

  • Dropped support on Solaris Sparc and Sparc64

Xpress

  • Supports in-core communication (solvelink=5)
  • New libraries 21.01

Model Libraries

GAMS Data Library

GAMS EMP Library

GAMS Model Library

GAMS Test Library

Solver/Platform Availability Matrix

Solver/Platform availability - 23.6    December 13, 2010
  x86
MS Windows
x86_64
MS Windows
x86
Linux
x86_64
Linux
Sun Sparc
SOLARIS
Sun Sparc64
SOLARIS
Sun Intel
SOLARIS
IBM RS-6000
AIX 5.3
Mac Intel32
Darwin
Mac x86_64
Darwin
ALPHAECP X X X X X X X X X X
BARON 9.0 X X X X            
BDMLP X X X X X X X X X X
COIN-OR X X X X     X   X X
CONOPT 3 X X X X X X X X X X
CPLEX 12.2 X X X X X X X X X X
DECIS X X X X X 32bit        
DICOPT X X X X X X X X X X
GUROBI 4.0 X X X X           X
KNITRO 7.0 X X X X     X   X X
LINDOGLOBAL 6.1 X X X X 6.0 6.0 X   X X
LGO X X X X X X X   X X
MILES X X X X X X X X X X
MINOS X X X X X X X X X X
MOSEK 6 X X X X     X   X X
MPSGE X X X X X X X X X X
MSNLP X X X X X 32bit     X X
NLPEC X X X X X X X X X X
OQNLP X 32bit X 32bit            
PATH X X X X X X X X X X
SBB X X X X X X X X X X
SCIP X X X X     X   X X
SNOPT X X X X X X X X X X
XA X 32bit X X            
XPRESS 21.01 X X X X X X X X    

23.6.3 Maintenance release (February 15, 2011)

  • Cmex: Fix for variable level projection
  • Bonmin: Several fixes for outer-approximation based algorithms
  • Cplex: New version 12.2.0.2
  • Gurobi: New version 4.0.1
  • Knitro: Documentation update
  • Scip: New version 2.0.1
  • Xpress: Fix for crash on 64 bit Solaris
  • McCarl Guide: Updates for 23.6
  • Gdxxrw: Includes system error message when we cannot start Excel
  • Gdxmrw: Minor bugfixes

23.6.4 Maintenance release (April 01, 2011)

  • CMEX: Maximal nested includes were raised to 40
  • Mosek: New Version6 Rev 105
  • Lindoglobal: New Version 6.1.1.553
  • Conopt: New Version 3.14W
  • Xpress: Memory leak fix
  • Coin: Solver fixes
  • JAMS: Updates for disjunctions
  • GDXXRW: Fixes
  • GDXMRW: Updates
  • McCarl and GDXUtils: Documentation updates
  • Model Libraries: Updates

23.6.5 Maintenance release (April 08, 2011)

  • CMEX: Bug fix related to situations with very large number of labels in connection with a restart with continued compilation