Table of Contents
23.8.1 Major release (March 17, 2012)
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 Alessandro Brozzi, Jan Philipp Dietrich, Michael Ferris, Christophe Gouel, Josef Kallrath, Cheng Khor, Brage Knudsen, Jeff Larson, Yanchao Liu, Alexander Mitos, Renger van Nieuwkoop, Stefan Vigerske.
Platforms
 Beta GAMS/Wine system (32bit). Comments are highly appreciated (support@gams.com).
 Improved Windows Installer
 the default location has changed to
C:\GAMS\(win32win64)\23.8
to avoid problems produced by the permission settings of the Program Files location  Two different setup modes. A simple default mode and an advanced mode with additional options like automatic PATH manipulation
 Support for detecting and installing a license from the clipboard
 the default location has changed to
GAMS System
APIs
 C#
 Major improvements, lost compatibility to previous versions!
 Mixed casing of function names
 old: gdxdatawritestr
 new: gdxDataWriteStr
 Object handle (pointer) no longer needed
 old: int gdxdatawritestr(IntPtr pgdx,string[] keystr,double[] values)
 new: int gdxDataWriteStr(string[] KeyStr,double[] Values)
 Create calls replaced by different constructors
 old: gdx = new gdxcs(); gdx.gdxCreateD(ref PGX, Sysdir, ref Msg);
 new: gdx = new gdxcs(Sysdir, ref Msg);
 See examples in
<GAMS Dir>\apifiles\CSharp
for reference
 Python
 Add source code to build C extensions (no need to run SWIG anymore)
 Add compiled C extension on Linux and Windows (both 32 and 64 Bit)
 VBA
 Support for 64 Bit version (VBA 7)
GAMS
New model definition features
 Flexible model list
Model definitions containing complementary equ.var pairs can now be used with all model types. The matching information is only used with the appropriate model types (e.g. MCP, MPEC, RMPEC).  Model list edits
In addition to the ',' which enforces uniqueness of equation entries, two additional model list element separators have been introduced. The '+' separator allows replacement of existing entries. The '' separator deletes model list entries. All three of these operations can be used with single equation names, equ.var pairs and previously defined model names.  Example
$eolcom ! equation e1,e2,e3,e4,e5; variable x1,x2; e5.. x1 =l= 0; e4.. x1 =l= 0; model m1 / e1,e2 / m2 / e3,e4 / m3 / m2,m1,e5 / ! e3,e4,e1,e2,e5 m4 / allm1+e1+e1 / ! e3,e4,e5,e1 m5 / all + e5.x1 + e4.x2 e1/ ! e2,e3,e5.x1,e4.x2 m6 / m5 e5, e5.x2 / ! e2,e3,e4.x2,e5.x2 m7 / m5 + e5.x2 / ! same as m6
Note that the equation list is ordered left to right. If we have a '+' separator adding an equation already in the list, the equation (possibly modified) will move to the end of the list.
Permutations via the option statement
 Using the '>' sign one can create complete permutations of one and multidimensional sets and parameters:
Option PermAllI > I;
Examples of this new feature can be found in the models perm1, ptsp, flowshop, and pmelody.
Minor enhancements
 Functions can have up to 10 arguments. This effects the intrinsic functions
edist
andpoly
and extrinsic function libraries.
Stochastic Programming
In this release we made a first cut at supporting stochastic programming in GAMS. With a few changes uncertainty can be added to an existing deterministic model. For this, the EMP framework is used to replace parameters in the model by random variables. This way (stagewiseindependent) multistage recourse problems and chance constraint models can be formulated. Three solvers can be selected to solve those problems: DE, DECIS and LINDO.
Further information can be found in the document Stochastic Programming (SP) with EMP.
In addition, you can check examples of type SP
from the GAMS EMP Library.
Utilities
 mps2gms MPS input file allows LI (lower integer) bound types and treats tabs as spaces.
Other
 By default GAMS does not call an exit script anymore. If this is required, the GAMS parameter
ScriptExit
has to be set explicitly to the script that should be called after GAMS terminates. An empty template of an exit script can be found in the GAMS system directory (gmsxitnt.cmd
(Windows) orgmsxitus.run
(Unix)).
Solvers
AlphaECP
 New libraries 2.09.01
 Support of =N= rows
Baron
 New libraries Baron 10.1
 Main developments
 Minos and Snopt are no longer available as LP subsolvers
 Clp can be used as the LP subsolver (
lpsol = 8
)  Ipopt with Mumps and Metis can be used as the NLP subsolver (
nlpsol = 9
)  BARON automatically selects Clp and Ipopt if the selected/default subsolver is not licensed
 Improved interface to XpressLP
 Introduced cutting planes for convexity exploitation for a variety of functions, including products and ratios, perspectives, norms (including absolute functions) and seminorms, and quadratic functions that are automatically recognized and exploited
 Polyhedral convexification routines have been rewritten and are now more efficient and numerically robust, as well as performing a number of simplifying transformations that reduce relaxation gaps
 Introduced relaxations based on inferred bilinear relationships (certain types of firstorder RLT)
Bench
 calls solvers to benchmark in parallel using GAMS' grid functionality
CoinOR
 OSIXpress supported on Solaris/Intel
 Dropped support of GLPK (alias OsiGlpk, alias CoinGlpk)
 New libraries:
 Bonmin 1.5
 Cbc 2.7
 improvements in heuristics and cut generation
 Clp 1.14
 Couenne 0.4 (for details see the [Couenne release notes] (http://list.coinor.org/pipermail/couenne/2011August/000234.html))
 feasibility pump heuristic for MINLP (can use SCIP as MIP solver)
 fixed point bound tightening and twoimplied bound tightening
 introduction of semiauxiliaries for smaller LP relaxations
 Ipopt 3.10
 OS 2.4
 now supports semicontinuous and semiinteger variables
 Osi 0.105
 Cbc, Bonmin, and Couenne support
miptrace
Convert
 Convert supports writing [Optimization Services instance Language (OSiL)] (http://www.coinor.org/OS/OSiL.html)
Conopt
 New libraries 3.15C
Cplex
 new libraries 12.4
dettilim
: option to limit 'ticks'
DE
GAMS/DE
accepts EMP models that have been annotated with information about uncertainty. The DE 'solver' reformulates the stochastic model into the extensive form equivalent with implicit nonanticipativity constraints. The reformulated model is solved with any of the regular GAMS solvers. All optimization model types (LP, MIP, QCP, MIQCP, NLP, DNLP, and MINLP) are accepted.
DECIS
GAMS/DECIS
accepts 2 stage EMP stochastic models. The stochastic information is processed and is passed to the well knownGAMS/DECISC
orGAMS/DECISM
solver. The need to provide the stochastic information based on the matrix elements is now unnecessary.DECIS
, asGAMS/DECISC
andGAMS/DECISM
, accepts linear recourse models only (although the stochastic effects might be more complex).
DICOPT
 If the model given to DICOPT is linear, DICOPT just passes this model to the MIP solver. Previously, the MIP solver used parameters OptCR, OptCA, and ResLim as specified by GAMS options even if DICOPT used an option file. Now OptCR, OptCA, and ResLim from a DICOPT option file will overwrite the GAMS parameters.
GloMIQO
The new Global MixedInteger Quadratic Optimizer, GloMIQO (GLOmeko), solves Quadratically Constrained Programs (QCP) and MixedInteger Quadratically Constrained Programs (MIQCP) to epsilonglobal optimality.
 GloMIQO has been developed by Prof. C. Floudas and R. Misener from Princeton University
 The GloMIQO solver is available for the 32bit and 64bit versions of Windows and Linux
 GloMIQO requires the presence of a GAMS/CPLEX and GAMS/SNOPT license
Gurobi
 New library Gurobi 4.6.1
 New sifting option for linear programs: LP models can now be solved with a sifting algorithm. Gurobi will choose sifting automatically when using the dual simplex algorithm for models that are likely to benefit (those with many more columns than rows). If you want to invoke sifting manually, choose dual simplex and set the new
Sifting
parameter to a value greater than 0.  Branch priorities: You can now specify priorities for branching variables, allowing greater user control of the MIP search process. Priorities can be specified through the .prior variable attribute and the .prioropt model attribute.
 New Zero Objective heuristic: Gurobi 4.6 contains a new Zero Objective heuristic that can be useful for finding solutions to MIP models where other strategies fail to find feasible solutions in a reasonable amount of time. Use the new
ZeroObjNodes
parameter to control this new heuristic.  New presolve sparsify option: A new presolve sparsify algorithm is available for MIP models. This method attempts to reduce the number of nonzero coefficients in the constraint matrix. Reductions of 3X or more have been observed on some models, often leading to significant performance improvements. Use the new
PreSparsify
parameter to enable this algorithm.
Guss
 Added option
NoMatchLimit
(default 0) that controls the maximum number of accepted unmatched scenario records before terminating the solve.
Ipopt
 The Serial Graph Partitioning and Fillreducing Matrix Ordering software METIS can now be used by some of Ipopt's linear solvers.
 Starting with 23.8 GAMS offers a commercially supported version of GAMS/IPOPT. This version of GAMS/IPOPT includes the commercial strength linear solvers MA27, MA57, and MA86 from the Harwell Subroutine Library.
Jams
 Support Xpress and SCIP when reformulating disjunctions with indicators
Knitro
 New libraries Knitro 8.0
 Introduction of a presolver to simplify and reduce the size of the model
 Introduction of parallel (multithreaded) execution
 Multistart
 Multialgorithm
 Multialgorithm method
 New mode to run multiple algorithms, serially or in parallel
 Uses the first or (optionally) the best solution found
 New feasibilityonly mode: improves robustness and efficiency of detecting infeasible models
 Knitro 8.0 discontinues support for 32bit Darwin systems  only 64bit systems are supported on the Mac.
Lindo
 New solver Lindo, similar to LindoGlobal, but
 Without size limitations
 No requirement for additional Conopt license
GAMS/LINDO
accepts stochastic EMP models and solves either the extensive form equivalent or uses Benders' decomposition to solve the stochastic model. In addition to discrete random variables, Lindo features also continuous distribution functions and various sampling techniques. All optimization model types (LP, MIP, QCP, MIQCP, NLP, DNLP, and MINLP) are accepted.
LindoGlobal
 New libraries Lindo 7.0
 MIP
 Significant improvements in root node heuristics for quickly finding good integer feasible solutions
 Improved identification of special structures, as in multiperiod models, and the ability to exploit these structures to achieve significant reductions in solve times
 Global Solver
 Improved heuristics for finding a good feasible solution quickly
 Improved ability to identify constraints that can reformulated as second order cone (SOC) constraints and thus be solved by the fast SOC solver
 Improved ability for efficiently handling polynomial terms
 Improved bounds for nonconvex quadratic terms, using SDP and eigenvalue reformulations
 Improved control over multistart algorithm
MOSEK
 New libraries Mosek 6 rev 135
SCIP
 New libraries SCIP 2.1.1 (for details see the [SCIP release notes] (https://www.scipopt.org/doc2.1.1/html/RELEASENOTES.html))
 Betaversion of supporting (mixedinteger) nonlinear programs (also nonconvex)
 Supports
miptrace
 Supports indicators for linear constraints through option
gams/indicatorfile
 Added option
gams/dumpsolutions
to write all solutions found into gdx solution pool
Snopt
 bug fix for log of LP models
SoPlex
 New libraries SoPlex 1.6.0 (for details see the [SoPlex release notes] (http://soplex.zib.de/notes160.txt))
XA
 New libraries XA 17 on Windows
 Introduction of native 64bit Windows support
Xpress
 New libraries 22.01.15 (maintenance release)
 MIP solution pool capability  allows a number of feasible solutions to be stored for later processing. By default the global search is not altered, but there is an option to enumerate all or selected integer feasible solutions. The enumeration can be tailored via the option file to execute a number of different strategies, e.g.:
 all integer feasible solutions
 Nbest solutions
 asgoodasX solutions (all solutions with objective at least as good as X)
 Nfirst solutions (first N solutions found)
 Solution pool examples are available in testlib: xpress03 (default global search), xpress04 (enumeration of all solutions), xpress05 (various enumeration strategies).
 Support for continuous models with quadratic constraints (previously only quadratic objectives were supported) and for all mixedinteger quadratic (MIQCP) models
 Support for indicator constraints
 New option
isGoodEnough=X
implemented in the link. If set, the global search will stop once an integer feasible point is found with an objective at least this good. Surprisingly, none of the MIP solver vendors implement such an option directly in their libraries.
Documentation
Amongst others, the following topics were revised in both, the GAMS Users Guide and the Bruce McCarl's Expanded GAMS Guide
 Command Line Parameters
 Dollar Control Options
 Model Attributes
 GAMS Intrinsic and Extrinsic Functions
Model Libraries
GAMS Data Library
GDXMRWPlotting01 (81)
: Placeholder for the GDXMRW examples that deal with plotting in Matlabmakeql (82)
: Create Querry Library routines for extrinsic functions
GAMS EMP Library
 two3emp (68): EMP Formulation of Simple 2 x 2 x 2 General Equilibrium Model
 airsp3 (69): Aircraft allocation  stochastic optimization
 apl1psp (70): Stochastic Electric Power Expansion Planning Problem
 apl1pcasp (71): Stochastic Electric Power Expansion Planning Problem
 clearlaksp (72): Scenario Reduction: ClearLake exercise
 farmsp (73): The Farmer's Problem  Stochastic
 kilosafarm (74): Kilosa farm problem
 landssp (75): Optimal Investment
 nbContIndep (76): Newsboy problem, continuous and independent distribution
 nbContJoint (77): Newsboy problem, continuous and joint distribution
 nbDiscIndep (78): Newsboy problem, discrete and independent distribution
 nbDiscJoint (79): Newsboy problem, discrete and joint distribution
 portfolio (80): Stochastic portfolio model
 prodsp3 (81): Stochastic Programming Example
 simpleChance (82): Simple chance constraint model
 sp3x2 (83): Simple stochastic model
 tr20 (84): Extended transport model with stochastic demand and costs
 nbsimple (85): Simple newsboy problem, discrete
 airlift (86): Airlift operations schedule
 stocfor3 (87): Long Range Forest Planning
 circlesp (88): Circle Enclosing Points  Stochastic Example
 batchsp (89): Design of batch chemical plants with stochastic demand and price
 cargonet (90): Cargo network scheduling with stochastic transportation demand
 gen2s (91): Two stage stochastic program in the generic form
 sku1sp (92): Multiproduct assemble model with discrete and Poisson demand distribution
GAMS Model Library
 cubesoln (371): Threedimensional Noughts and Crosses Multiple Solutions
 sipres (372): Global optimization of semiinfinite programs via restriction of the righthand side
 cclinpts (373): Finding Optimal Breakpoints when linearizing a power utility function
 ptsp (374): Traveling Salesman Problem Instance solved with explicit Permutation Enumeration
 pmelody (375): Choose notes for melodic lines and chords with permutations
 flowshop (376): Flow shop scheduling
GAMS Test Library
 nlcode6 (534): Test for NL code bug from Dist 23.6
 scensol3 (535): NoMatchLimit GUSS Test
 gzip01 (536): Test gzipped input files
 sl4qcp01 (537): Test of correctness for levels & marginals of QCP, with solvelink=1,2,4,5
 sl4qcp02 (538): Test modsolstat & solution correctness  multiple QCons, with solvelink=1,2,4,5
 sl4qcp03 (539): Test case for cancellation in quadratic terms, with solvelink=1,2,4,5
 miqcp01 (540): Test of correctness for levels & marginals of MIQCP
 indic01 (541): Test of =g= indicator constraints
 indic02 (542): Test of =e= indicator constraints
 kestrel1 (543): Kestrel test for lp solvers
 kestrel2 (544): Kestrel test for mcp solvers
 kestrel3 (545): Kestrel test for nlp solvers
 kestrel4 (546): Kestrel test for minlp solvers
 indic03 (547): Test of =e= indicator constraints
 xpress03 (548): XPRESS test suite  solution pool example
 mip05 (549): Maximum queens chess problem
 xpress04 (550): XPRESS test suite  solution enumerator example
 circlen (551): Circle Enclosing Points n dimensional
 trilib04 (552): Demonstrates problems with a stateful function library
 mip06 (553): Cuts and solution enumeration
 xpress05 (554): XPRESS test suite  solution enumerator example
 qcp09 (555): Simplest test for QCP correctness
 perm1 (556): Test for various permutations
ctrlcmip (557)
: Test interrupt handling [not available anymore]
Solver/Platform Availability Matrix
Solver/Platform availability  23.8 March 17, 2012  

x86 MS Windows 
x86_64 MS Windows 
x86 Linux 
x86_64 Linux 
Sun Sparc SOLARIS 
Sun Sparc64 SOLARIS 
Sun Intel SOLARIS 
IBM RS6000 AIX 5.3 
Mac Intel32 Darwin 
Mac x86_64 Darwin 

ALPHAECP  
BARON 10.1  
BDMLP  
COINOR  
CONOPT 3  
CPLEX 12.4  
DECIS  32bit  
DICOPT  
GLOMIQO  
GUROBI 4.6  
KNITRO 8.0  
LINDO 7.0  
LINDOGLOBAL 7.0  6.0  6.0  
LGO  
MILES  
MINOS  
MOSEK 6  
MPSGE  
MSNLP  32bit  
NLPEC  
OQNLP  32bit  32bit  
PATH  
SBB  
SCIP  
SNOPT  
SOPLEX  
XA  
XPRESS 22.01 
23.8.2 Maintenance release (April 05, 2012)
 Bugfix for models with
=X=
rows and MCP (i.e. MPSGE)  GloMIQO resets
OptCR=0
properly to 1e9 and accepts now CtrlC on Windows  Knitro handles MINLP failures better
 XPRESS handles
=E=
quadratic constraints better now  Changed position of Library Form in GAMSIDE (avoid hang in corner to corner screen setup)
 Model
Trnsxcll
added to GAMS Data Library  Model
ps5_s_mn
added to GAMS Model Library