Table of Contents
 24.5.1 Major release (September 23, 2015)
 24.5.2 Maintenance release (September 29, 2015)
 24.5.3 Maintenance release (October 01, 2015)
 24.5.4 Maintenance release (October 15, 2015)
 24.5.5 Maintenance release (November 25, 2015)
 24.5.6 Maintenance release (November 27, 2015)
24.5.1 Major release (September 23, 2015)
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, Guillaume Erbs, Michael Ferris, Mahbube Habibian, Josef Kallrath, Jean Mercenier, Stan Peter, Ingmar Schlecht, and Mark Thissen.
Platforms
 Support for Windows XP has been dropped completely with this release (as announced).
GAMS System
GAMS
 New model attributes
maxInfes
: Maximum of infeasibilitiesmeanInfes
: Arithmetic mean of infeasibilities
 New option solver. This simplifies the selection of the (default) solver for multiple model types.
 The command line option
solver=abc
initializes the default solver for the model types solverabc
is capable of toabc
. This initialization is done before the default solvers of individual model types are set via command line options. So a command line withlp=conopt solver=bdmlp
will first set BDMLP as the default solver for model types LP, RMIP, and MIP (these are the model types BDMLP can handle) and then reset Conopt as the default solver for LP. The order of these parameters on the command line has no impact (i.e.lp=conopt solver=bdmlp
behaves identically tosolver=bdmlp lp=conopt
). If multiple occurrences of optionsolver
appear, the last one sets the option as it is with other options, includingLP
,MIP
, ...  The solver for multiple model types can be set via the
Option solver=abc;
in the GAMS model source code. This sets the solver for model typesabc
can handle toabc
. With theoption solver=abc;
the order among other solver setting options is significant. For example,option lp=conopt, solver=bdmlp;
will first set the solver for LP to Conopt and in the next step to BDMLP because BDMLP is capable of handling model type LP. Settingsolver
twice can also make sense:option solver=conopt, solver=cbc;
will result into setting the solver for model types CNS, DNLP, NLP, QCP, RMIQCP, and RMINLP to Conopt and the solver for model types LP, RMIP, and MIP to CBC.
 The command line option
 When using $LOADDC the reporting of domain errors has been improved.
 This release features several improvements of the execution system. The following lists some (extreme) examples:
 Improved performance when indices of accessed symbol are in "wrong" order, e.g.:
$if not set size $set size 10000 set v / v1*v%size% / e / e1*e%size% /; alias(v,w); set evw(e,v,w) /#e:#v:#w/ vw(v,w); vw(v,w) = sum(e, evw(e,v,w));
The final assignment can be done in less than 1% of the time required by GAMS 24.4.  Improved performance when assigning to nonempty symbols when the assignment is driven by their domain, e.g.:
$if not set size $set size 5000 set i / i1*i%size% /; alias (i,j); parameter a(i,j), b(i,j); a(i,j)$(uniform(0,1)<0.95) = 1; b(i,j) = not a(i,j); a(i,j) = b(i,j);
The final assignment can be done in just ~5% of the time required by GAMS 24.4.  Improved performance when executing certain combinations of mappings, e.g.:
$if not set size1 $set size1 8000 $if not set size2 $set size2 24 set hi / 1*%size1% / ti / 1*%size2% / h / h1*h%size1% / t / t1*t%size2% / hmapx(h,hi) / #h:#hi / tmapx(t,ti) / #t:#ti /; parameter xi(hi,ti), x1(h,t); xi(hi,ti) = uniform(0,1); x1(h,t) = sum((hmapx(h,hi),tmapx(t,ti)), xi(hi,ti));
The final assignment can be done in just ~2% of the time required by GAMS 24.4.  Improved performance when "searching" a lot in a large symbol, e.g.:
$if not set size1 $set size1 50 $if not set size2 $set size2 200000 $if not set size3 $set size3 150000 set f /f1*f%size1%/ j /j1*j%size2%/ l /l1*l%size3%/ flmap(f,l); flmap(f,l)=uniform(0,1)<0.25; parameter jlpar(j,l) /#j:#l 10/ fjpar(f,j); fjpar(f,j) = sum(l$flmap(f,l), jlpar(j,l));
The final assignment can be done in just ~1% of the time required by GAMS 24.4.
 Improved performance when indices of accessed symbol are in "wrong" order, e.g.:
Documentation
 The complete GAMS technical documentation (release and installation notes, user's guides, solver and tools manuals, API reference manuals) is now available in HTML format with a unified table of contents. The documentation is available in the following forms:
 The online GAMS documentation provides search and keyword indexing functionalities in addition to navigating the GAMS documentation.
 The offline documentation allows access without a network connection:
 The main navigation page can be found at
[GAMS system directory]/docs/index.html
(not linked from the GAMS IDE).  For Windows, additionally a Microsoft Compiled HTML Help file is available at
[GAMS system directory]/docs/gams.chm
and linked from the GAMS IDE Menu:Help > GAMS Documentation
.
 The main navigation page can be found at
 The following documents are still available in PDF format: GAMS User's guide, McCarl Expanded GAMS User's guide, all solver manuals, and GAMS GDX API.
Installer
 New way to install GAMS on Mac OS X using a DMG file.
Solvers
ANTIGONE
 Added option conopt_optfile to set name of options file to be used for CONOPT calls in ANTIGONE.
BARON
 Now also available for Mac OS X.
 New libraries 15.9.22.
 New NLP solver for local search: FilterSD.
 Options:
 New option Threads: Number of cores used for solution of MIP subproblems.
 New option IISOrder: Order in which constraints are considered in the search for an IIS.
 Options
ConTol
andIntTol
removed. Tolerances are now set by AbsConFeasTol, RelConFeasTol, AbsIntFeasTol, and RelIntFeasTol.  Options
MultMSize
,MultRel
,NLPDoLin
,MipGap
,MipNodes
,MipRel
,NoutIterMip
,BilRel
,Cvxbt
,CvxInitOA
,CvxRel
,MipCuts
, andRLTRel
: Algorithmic features that have been parameterized are now handle in an automatic way.
 The time limit is enforced based on CPU time for singlethreaded jobs and based on wallclock time for multithreaded jobs.
 Simplified the screen output (eliminated some details and simplified time to a real number in seconds).
 Updated CBC to 2.9.5.
 Updated Ipopt to 3.12.3.
CBC
 New libraries 2.9.
 Introduced specialized branching methods for dealing with "big Ms".
 Introduction of conflict cuts (off by default, enable with option conflictcuts).
 Introduced new methods for dealing with symmetry.
Conopt
 New libraries 3.17A.
 Corrected problem with options Ls2ndi and Lmusdf.
 Systems errors related to very tight memory (984) and the inversion routine (2027) have been removed.
 Three new options have been added to allow the modeler to see the order of the pretriangular and posttriangular part of the model and the definitional equations:
Couenne
 New libraries 0.5 (major update).
 Better handling of function
signpower(x,k)
for positive integer k≤10.  The default values for the following options have changed:
cont_var_priority
from 2000 to 99.int_var_priority
from 1000 to 98.feas_pump_milpmethod
from 1 to 0.feas_pump_poolcomp
from 0 to 4.output_level
from 0 to 4.
CPLEX
 New option FreeGamsModel. This option preserves memory by dumping the GAMS model instance representation temporarily to disk. This option is available in CplexD only.
GUROBI
 New libraries 6.0.5 (technical release).
 New option FreeGamsModel. This option preserves memory by dumping the GAMS model instance representation temporarily to disk.
GUSS/ScenarioSolver
 The set of GUSS model attributes (
Set ma "GUSS Model Attributes" / System.GUSSModelAttributes /;
) has changed: The attribute
NumNOpt
has been removed.  The attributes
MaxInfes
andMeanInfes
have been added.
 The attribute
IPOPT
 New libraries 3.12 (minor changes).
JAMS
 SubSolver option fixed: it was sometimes ignored.
Kestrel
 The option file can be omitted. In this case, the Kestrel call is done with default settings.
Lindo/LindoGlobal
 Dropped Lindo/LindoGlobal libraries for Intel Solaris as announced previously.
 New libraries 9.0.225.
LocalSolver
 New libraries 5.5.
 Improved accuracy and performance on numerical or mixedvariable optimization problems.
MINOS
 Adjusted default upper bound on the superbasics limit from 500 to 5000 and consider the number of nonlinear constraint variables, not just the nonlinear objective variables, when computing the superbasics limit: memory is plentiful and cheap.
 Fixed case of memory corruption that resulted when using an initial point containing very many superbasic variables. If the initial point contains more than 5000 superbasics, limit the Hessian dimension to 5000 even though the superbasic limit is larger.
MOSEK
 New libraries 7.1.0.33.
 The GAMS option iterlim now sets the iteration limit for both simplex and interior point algorithms.
 More MOSEK options are now available in GAMS/Mosek:
 MSK_IPAR_MIO_CUT_CG: Controls whether CG (ChvatalGomory) cuts should be generated.
 MSK_IPAR_MIO_CUT_CMIR: Controls whether mixed integer rounding cuts should be generated.
 MSK_IPAR_MIO_PROBING_LEVEL: Controls the amount of probing employed by the mixedinteger optimizer in presolve.
 MSK_IPAR_MIO_RINS_MAX_NODES: Controls the maximum number of nodes allowed in each call to the RINS heuristic.
 MSK_DPAR_MIO_TOL_MAX_CUT_FRAC_RHS: Maximum value of fractional part of right hand side to generate CMIR and CG cuts for.
 MSK_DPAR_MIO_TOL_MIN_CUT_FRAC_RHS: Minimum value of fractional part of right hand side to generate CMIR and CG cuts for.
 MSK_DPAR_MIO_TOL_REL_DUAL_BOUND_IMPROVEMENT: If the relative improvement of the dual bound is smaller than this value, the solver will terminate the root cut generation.
OS
 Now a hidden solver. Will be dropped from the distribution at some time (without further notice).
PATH
 New libraries 4.07.03.
 Adjusted to use wallclock time on all platforms.
 Time limit checked more frequently, e.g. at each pivot.
 The presolve has been extended to find more reductions.
 Minor bug fixes.
SCIP
 New libraries 3.2 #c9c4375 (major update):
 New presolvers "tworowbnd", "dualagg", "implfree", "redvub", and "stuffing", and improved presolve for ranged and equalitytype linear constraints.
 Presolving levels FAST, MEDIUM, and EXHAUSTIVE are now used to better coordinate the various presolvers.
 Generalized upgrade from (SOCrepresentable) quadratic constraints to SOC constraints.
 New primal heuristics "distribution diving", "indicator", and "bound", improved clique and variable bound heuristics, and adjusted diving heuristics to solve fewer LPs.
 New branching rules "distribution", "multaggr", and a new rule for SOS1 constraints.
 New reliability notions and improved treatment of nonlinearities in hybrid reliability pseudo cost branching.
 New separator "eccuts" for generating edgeconcave cuts for quadratic constraints and improved separation for convex quadratic constraints.
 Decreased total memory usage by using more buffer data structures.
 Improved propagation and separation for SOS of type 1 by using information from a conflict graph.
 See also the full release notes, the change log, and the technical report.
 The following options were removed or replaced:
constraints/.../delaypresol
andconstraints/.../timingmask
replaced byconstraints/.../presoltiming
andconstraints/.../proptiming
.presolving/domcol/singcolstuffing
replaced bypresolving/stuffing/...
.presolving/.../delay
replaced bypresolving/.../timing
.propagating/.../presoldelay
replaced bypropagating/.../presoltiming
.propagating/obbt/maxlookahead
removed.
 For the following options, the default value changed:
 constraints/SOS1/sepafreq from 0 to 10.
 "heuristics/clique/minfixingrate" from 0.5 to 0.25.
 "heuristics/vbounds/minfixingrate" from 0.5 to 0.25.
 heuristics/actconsdiving/maxdiveavgquotnosol from 0 to 1.
 heuristics/actconsdiving/maxdiveubquotnosol from 0.1 to 1.
 heuristics/dins/nwaitingnodes from 0 to 200.
 lp/rowrepswitch from 1 to 1.2.
 presolving/abortfac from 0.0001 to 0.001.
 presolving/restartfac from 0.05 to 0.025.
 presolving/immrestartfac from 0.2 to 0.1.
 presolving/dualinfer/priority from 20010000 to 200.
 propagating/obbt/itlimitfactor from 5 to 10.
SoPlex
 New libraries 2.2.0 (major update).
SULUM
 New libraries 4.3.892.
 Several bug fixes in both the MIP solver and the LP solver.
 Improved numeric stability, degeneracy handling, and perturbation scheme in LP optimizer.
 Added a new combined pricing scheme to the dual simplex optimizer.
 Improved presolve and restart in MIP optimizer.
XPRESS
 New libraries for XPRESS v7.9: Optimizer 28.01.05.
 Significantly improved linear algebra routines for the simplex solvers improving efficiency of a wide range of problems.
 Improvement heuristics called more often.
 The MIP log now provides information which heuristic finds a solution.
 Improved linear dependency checker for large problems.
 Improved scaling, including scaling of bigM type rows and of the CurtisReid scaling option.
 Improved inferencelearning from infeasible subproblem during the MIP search.
 Improved presolver for quadratic instances.
 Improved handling of Special Ordered Sets.
 Improved propagation of conflict cuts.
Tools
GAMS IDE
 In the model library browser the IDE may provide hints about the content of the column when hovering over the headers.
 Option to specify file extensions for files that will be reloaded without a confirmation dialog.
GDXDIFF
 When renaming the temporary file to
gdxdiff.gdx
fails, issue a ViewClose command in case the file is open in the GAMSIDE and try to rename again.  If no difference was found, issue a message in the log indicating this.
 Add a set with two elements with explanatory text of the two files compared.
GDXMERGE
 When a filename cannot be used as a UEL, use a generated name instead.
GDXXRW
 New options
IgnoreRows
andIgnoreColumns
to ignore a set of rows or columns for a symbol. Rows can be specified asIgnoreRows=1,4:5
and columnsIgnoreColumns=A,D:F
orIgnoreColumns=1,4:6
.
MODEL2TEX
 The beta version of this tool allows the automatic generation of LaTeX code that documents a given GAMS model.
MPSGE
 The documentation of MPSGE has moved again. It can now be found in the User's Guide.
Object Oriented APIs
 New examples
SpecialValues
andClad
(Java:specialvalues/SpecialValues.java
,clad/Clad.java
; Python:special_values.py
,clad.py
).  New functions to retrieve models from the GAMS API Library and the Nonlinear Optimization Applications Library:
 .NET:
GAMSWorkspace.ApiLib
andGAMSWorkspace.NoaLib
.  Java:
GAMSWorkspace.addJobFromApiLib
andGAMSWorkspace.addJobFromNoaLib
.  Python:
GamsWorkspace.apilib
andGamsWorkspace.noalib
.
 .NET:
Python
 Added support for Python 3.4 (Windows and Linux only). The examples have been changed to be compatible with all supported Python versions.
Model Libraries
NOALIB  Nonlinear Optimization Applications Using the GAMS Technology
 This new library by Neculai Andrei has been added to the GAMS system. This is a collection of the models based on the book Nonlinear Optimization Applications Using the GAMS Technology by Neculai Andrei. The library contains a wide spectrum of nonlinear optimization applications expressed in GAMS. The book and library emphasize the local solutions of the largescale, complex, continuous nonlinear optimization applications, and the abundant examples in GAMS are highlighted by those involving ODEs, PDEs, and optimal control. The collection of these examples will be useful for software developers and testers.
 You can retrieve the individual models through the IDE model library browser or via the command line utility
noalib
.
GAMS API Library
 CSSpecialValues.gms : Test handling of Special Values in object oriented C# API (47)
 PSpecialValues.gms : Test handling of Special Values in object oriented Python API (48)
 JSpecialValues.gms : Test handling of Special Values in object oriented Java API (49)
 CSNUnit.gms : Compiles and runs NUnit tests for object oriented C# API (50)
 CSClad.gms : Test changing solver options while running using the interrupt method (51)
 PClad.gms : Test changing solver options while running using the interrupt method (52)
 JClad.gms : Test changing solver options while running using the interrupt method (53)
GAMS Data Library
 invert1: Pass
gams.sysdir%
to R script to make linkage between GAMS and R explicit.  gdxmrw_tr3: Canonical form LP created in Matlab and solved via
gams()
Mexfunction.  gdxmrw_tr4: Better example of
gams()
usage.  gdxmrw_tr5: Better example of
gams()
usage.
GAMS EMP Library
 transecs: Fix formulation as embedded complementarity system and provide equivalent alternative as singleagent equilibrium system.
 farmnbd.gms : The Farmer's Problem  Stochastic with NBD (100)
GAMS Model Library
 In the IDE the GAMS Model Library browser has now a
Lic
column indicating the license requirement of a model. The letters D and G indicate that the model does not require a license. Models with G can even be solved by a global solver without a license (the demo limit for global solvers is 10 variables and 10 equations). A letter L indicates that a license is required. tgridmix: Fix the logic for sleeping. Only do that if no more jobs to be scheduled or all cores are busy.
GAMS Test Library
 asynntrp: Make this model work under Unix that have the
pstree
utility available.  call6.gms : Call GAMS in a folder containing a % (674)
 cmexrc01.gms : Trigger unexpected cmexRC error (675)
 rs02.gms : Solving Threedimensional Noughts and Crosses using Cplex and Gurobi distributed MIP (676)
 single04.gms : Check handling of singleton sets assigned and referenced in a loop (677)
 model2tex1.gms : Test that model2tex produces a tex file (678)
 exmcp6.gms : External Equation  Example MCP 6 (679)
 scensol6.gms : Test execute_loadhandle for GUSS/GRID (680)
 idxperm1.gms : Check correct behavior when permuting indices in model generation (684)
 idxperm2.gms : Check correct behavior when permuting indices in loop etc (685)
Solver/Platform availability  24.5  

x86 32bit MS Windows 
x86 64bit MS Windows 
x86 64bit Linux 
x86 64bit Mac OS X 
x86 64bit SOLARIS 
Sparc 64bit SOLARIS 
IBM Power 64bit AIX 

ALPHAECP  
ANTIGONE 1.1  
BARON 15.9  
BDMLP  
BONMIN 1.8  
CBC 2.9  
CONOPT 3  
COUENNE 0.5  
CPLEX 12.6  
DECIS  
DICOPT  
GLOMIQO 2.3  
GUROBI 6.0  
GUSS  
IPOPT 3.12  
KESTREL  
KNITRO 9.1  
LGO  
LINDO 9.0  
LINDOGLOBAL 9.0  
LOCALSOLVER 5.5  
MILES  
MINOS  
MOSEK 7  
MSNLP  
NLPEC  
OQNLP  32bit  
PATH  
SBB  
SCIP 3.2  
SNOPT  
SOPLEX 2.2  
SULUM 4.3  
XA  
XPRESS 28.01 
24.5.2 Maintenance release (September 29, 2015)
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 Kevin Doran and Renger van Nieuwkoop.
GAMS System
GAMS
 Fixed a bug which caused a crash for certain assignments, in particular it had to be an assignment to a symbol that was also referenced on the RHS, with permuted indices and we actually set some of the records to zero which were nonzero before.
Object Oriented APIs
.NET
 Fixed a bug that lead to a crash on Linux when the GAMS system directory is a symbolic link. (This is for Mono only.)
Python
 Fixed a bug that lead to a crash on Linux when the GAMS system directory is a symbolic link. The property
GamsWorkspace.system_directory
now always returns the canonical path with all symbolic links resolved.
Model Libraries
GAMS Test Library
24.5.3 Maintenance release (October 01, 2015)
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.
GAMS System
GAMS
 Fixed a bug which caused wrong results in some cases of outoforder assignments
24.5.4 Maintenance release (October 15, 2015)
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 Per Ivar Helgesen and Jan Imhof.
GAMS System
GAMS
 Fixed a bug which caused wrong results in some cases of outoforder assignments, in particular it had to be an assignment using the same controlling set more than once in one symbol, e.g.
p(i,j,i)
.  Fixed a bug when handling suffixes (e.g. .val) of Singleton Sets in Equations.
Object Oriented APIs
.NET
 Fixed a bug with the property
GAMSOptions.IDir
.
Model Libraries
GAMS Test Library
 single05.gms : Check correctness of set attributes for singleton sets (687)
 idxperm4.gms : Check correct behavior when permuting indices of symbol using same controlling set multiple times (688)
24.5.5 Maintenance release (November 25, 2015)
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 Albrecht, Stefan Kemnitz, Martha Loewe, Thomas Maindl, Bruce McCarl, and Andres Ramos.
GAMS System
GAMS
 GAMS now always reports the upper bound that is sent to the solver in the column listing and solution report. Hence, with IntVarUp=1 GAMS prints the value of 100 for integer and semiint variables that are at default bound value +INF.
 Fixed a bug which could cause a crash when referencing attributes of equations (e.g. marginals) after a model was solved with a nondefault solveLink setting and there was no solution returned.
Stochastic Programming with EMP
 Fixed a bug which caused wrong sample sizes if the sample keyword was used more than once and with different sample sizes.
Solvers
Cbc
 New libraries.
CplexD
 Fixed a problem with the computeserver option. The value for the computeserver option is limited to 255 characters. In order to specify a longer list of workers, one can now use multiple lines with the computeserver option.
Ipopt
 New libraries.
LocalSolver
 New libraries 5.5 (20151028).
Mosek
 New libraries 7.1.0.41.
SCIP
 New libraries 3.2 (#e9a5ca7).
 Removed options
constraints/SOS1/bipbranch
,constraints/SOS1/neighbranch
, andconstraints/SOS1/sos1branch
.
 Removed options
SoPlex
 New libraries 2.2 (#f17b9e7).
Tools
put_toexcel, put_tohtml
 Fixed a problem with
put_toexcel
andput_tohtml
.
24.5.6 Maintenance release (November 27, 2015)
Solvers
COUENNE
 New libraries.
IPOPT, BONMIN, SCIP
 Fixed issue that Ipopt and Bonmin always read
ipopt.opt
, despite of theoptfile
setting in GAMS.