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 non-empty 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 single-threaded jobs and based on wall-clock time for multi-threaded 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 pre-triangular and post-triangular 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 mixed-variable 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 (Chvatal-Gomory) 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 mixed-integer 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 wall-clock 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 equality-type linear constraints.
- Presolving levels FAST, MEDIUM, and EXHAUSTIVE are now used to better coordinate the various presolvers.
- Generalized upgrade from (SOC-representable) 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 edge-concave 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 big-M type rows and of the Curtis-Reid scaling option.
- Improved inference-learning 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 large-scale, 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
: Passgams.sysdir%
to R script to make linkage between GAMS and R explicit.gdxmrw_tr3
: Canonical form LP created in Matlab and solved viagams()
Mex-function.gdxmrw_tr4
: Better example ofgams()
usage.gdxmrw_tr5
: Better example ofgams()
usage.
GAMS EMP Library
- transecs: Fix formulation as embedded complementarity system and provide equivalent alternative as single-agent 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 Three-dimensional 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 non-zero 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 out-of-order 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 out-of-order 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 non-default 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.