37 Distribution
Table of Contents
37.1.0 Major release (November 11, 2021)
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 Marcel Adenauer, Boyan Atanasov, Edna Johanna Molina Bacca, Abhijit Bora, Wolfgang Britz, Bruno Charlier, Hancheng Dai, Rob Davies, Ricardo M. Pinto de Lima, Bruce McCarl, Scott McDonald, Guillaume Nimal, Gwendal Nivanen, Zack Pecenak, Tom Rutherford, Nick Sahinidis, Shima Sasanpour, and Denys Yemshanov.
Platforms
- We will drop support for macOS 10.14 (Mojave) with the next major release.
GAMS System
GAMS
- Added new intrinsic function logit.
- Added new conditional expression
onState
to check the state of certain dollar control options. An example can be seen here. - Added command line parameter and option EpsToZero as well es dollar control options $onEpsToZero and
$offEpsToZero
to allow writingEPS
values as zero to GDX. - Made command line parameters holdFixedAsync, sys15, sys16, sys17, sys18, and sys19 available in option statements as well.
- Avoid warnings if $abort or $call.checkErrorLevel are used within a $ifThen ... $else statement.
- Allow space in limited domain declaration like this:
Model transport / all, x (ij) /;
- In the past, GAMS threw an execution error, when execute_unload failed because of an invalid file name given. Now, it tries to write to a file with a generic file name first (like it was always done with put files as well).
- Added a new command line parameter and option maxGenericFiles to specify the number of tries to write to a generic file as mentioned above.
- Extended the influence of $offInclude to suppress the include file summary and the creation of an expanded include file as well.
- Added support for (mixed-integer) linear models that generate more than \(2^{31}\) = 2,147,483,648 nonzeros. At this time, only the solver links for CPLEX, GUROBI, and XPRESS are capable of handling such large model instances. The number of rows and columns is still limited to \(2^{31}\).
- Removed a limitation for the model attribute handle that did not allow to set a value which is anything but a Grid handle (specifically, a multi threading handle was rejected before).
- Throw an explicit execution error, if a solver that comes without executable gets called with the Grid Facility (at the moment, this affects DECIS only).
- Fixed calling a solver with the Grid Facility that is not located in the GAMS system directory.
- Fixed alignment of dmpSym and dmpUserSym output in case of long symbol names.
- Fixed handling of paths with spaces in
gamsconfig.yaml
for itemsscriptName
andexecutableName
in sectionsolverConfig
. - $Call, execute, and it's variants allow now spaces in the path of the script/program to be called if properly quoted.
- Fixed a zero digit
display
bug, where0
was shown as0.
. - Fixed wrong matrix error detections for discrete variables and right hand side of external equations in certain cases.
- Fixed that the GAMS execution system corrupted control or status information in the CPUs SSE registers on Linux when using
$IfE
,$IfThenE
, and related.
Embedded Python Code Facility
- Print the Python script line number in case an exception is raised.
- Register alias symbols in
gams.db
. - Provide domain information for symbols via
gams.db[sym].domains
andgams.db[sym].domains_as_strings
. - Fix a problem in
pyEmbMI
for double bounded but not fixed variables. - The Python version of GMSPython has been updated to
3.8.11
. - Removed package
schema
and its dependencycontextlib2
from GMSPython.
Extended Mathematical Programming (EMP)
- Added new stochastic EMP keyword stageDefault to change the default stage of symbols not assigned to a stage explicitly.
- Changed the
stage
behavior so that it does not count as a terminating error if it is used with a symbol missing in the model.
Windows Installer
- Associate
.gsp
(GAMS Studio project) files with GAMS Studio.
Solvers
ANTIGONE, IPOPT, SHOT, SCIP
- Updated Intel MKL to version 2021.2.0 on Windows.
CONVERT
- Fix default behavior if reading option file fails.
CPLEX
- Fixed duplicate CPLEX output in GUSS cold starts with GUSS
logoption
2. - Fixed unwanted consideration of some GAMS command line options in tuning.
- Fixed possible ignorance of an interrupt signal (Ctrl+C).
- Disabling CPLEX solution pool on default (when solnpool and solnpoolmerge are not set).
- Fixed invocation of solution pool export in case of CPLEX termination code 104: solution limit reached.
- Fixed possible crash when using mipstopexpr.
GUROBI
- New libraries 9.5.0.
- Added norm constraints to general constraint type.
- New option memlimit: Memory limit.
- New option worklimit: Work limit.
- New option lpwarmstart: Warm start usage in simplex.
- New option nlpheur: Controls the NLP heuristic for non-convex quadratic models.
- New option presos1encoding: Controls SOS1 reformulation.
- New option presos2encoding: Controls SOS2 reformulation.
- New option tunemetric: Metric to aggregate results into a single measure.
- New option tunetargetmipgap: A target gap to be reached.
- New option tunetargettime: A target runtime in seconds to be reached.
- New option liftprojectcuts: Lift-and-project cut generation.
- Changed default option value of TuneTrials: 0 (auto).
- Changed default option value of CrossoverBasis: -1 (auto). The option type changed from boolean to integer.
GUSS
- Fixed detection of update requests with symbols that are not present in the generated model.
- Fixed incorrect behavior of option
SolveEmpty
(not only empty but all scenarios were skipped after threshold reached).
KNITRO
- Added support for MCP model type.
Lindo/LindoGlobal
- New libraries 13.0.309.
- Added support for function logit.
LocalSolver
- New libraries 10.5 (20211014).
Mosek
- New libraries 9.3.7.
Octeract
- Added new global MINLP solver Octeract 3.5.0.
- Octeract can be used for model types QCP, RMIQCP, MIQCP, NLP, DNLP, RMINLP, and MINLP and is available for Linux and Windows systems.
- For GAMS demo and community licenses, model size limitations similar to other global solvers apply. For an unlimited GAMS/Octeract license, contact sales@gams.com.
SCIP
- New libraries 7.0 (b2afa5403b).
SHOT
- New libraries 1.1.0 (11fda1ec).
- New option Model.Reformulation.Quadratics.EigenValueDecomposition.Formulation.
- New option Model.Reformulation.Quadratics.EigenValueDecomposition.Method.
- Renamed option
Model.Reformulation.Quadratics.UseEigenValueDecomposition
to Model.Reformulation.Quadratics.EigenValueDecomposition.Use. - Default value for option Subsolver.Gurobi.NumericFocus changed from 2 to 1.
SOPLEX
- New libraries 5.0 (ad7592b9).
XPRESS
- New libraries 38.01.05.
Tools
BIB2GMS
- We will remove the tool
bib2gms
in a future GAMS release.
FINDTHISGAMS
- Support for registry keys for
.gsp
(GAMS Studio project) file association has been added.
GAMS Studio
- New version 1.8.2.
- New feature: Added tooltips to source code for keywords and Dollar Control Options (can be deactivated in the settings dialog).
- Rework of the Project Explorer:
- Changed naming from "group" to "project".
- Files now appear in folders relative to the working directory of the assigned project.
- Added import and export of projects.
- The projects context menu "Project options" allows to change the name and working directory of the project.
- Added individual working directories for each project.
- Added dialog to set the base directory on project import.
- Highlight remotely executed log (NEOS or GAMS Engine).
- Removed obsolete MIRO Hypercube mode.
- Replace TAB characters by the proper amount of spaces when pasting text.
- Set default TAB size to 8.
- Allow to use GAMS Engine on a HTTP server when the local SSL is not present.
- Skipped log duplicate in the NEOS log.
- Added new search scope
Selection
which allows users to search inside a text selection. - Added zoom for
lxi
tree view when zooming in lst files. - Stability improvements and minor bug fixes, e.g.:
- Fixed NEOS and GAMS Engine being inactive due to an SSL detection issue.
- Fixed links to model in NEOS log.
- Fixed crash when editing long lines ending in an error mark.
- Fixed highlighting of wrong results in Search Result View.
- Fixed broken syntax highlighting of
execute_*
. - Fixed completer not opening or staying open unwanted.
GDX2HAR/HAR2GDX
- We will remove the tools gdx2har and har2gdx in a future GAMS release. The tools can be accessed from the CoPS web site.
HEXDUMP
- We will remove the tool
hexdump
in a future GAMS release. A similar functionality is available on Unix systems via theod
utility with parametersod -A x -t x1z -v
. On Windowsod
is distributed as part of the POSIX utilities.
SCENRED
- We will remove the tool SCENRED in a future GAMS release. The tool SCENRED2 should be used instead.
APIs
C++ high-level API
- Fixed
GAMSOption::setOutput
parameter being ignored inGAMSJob::run()
.
gams2numpy
- The binaries are now build with
numpy 1.20.3
instead ofnumpy 1.19.5
for Python 3.7, 3.8, and 3.9.
GAMS Transfer
- New APIs GAMS Transfer Matlab and GAMS Transfer for Python to exchange data between GAMS and Matlab and Python, respectively.
GMD
- Allow to add symbols via
gmdAddSymbol
andgmdAddSymbolX
of type alias (GMS_DT_ALIAS
). - Added function
gmdFindSymbolWithAlias
that provides the actual alias symbol rather than the aliased set in case the requested symbol is an alias. - Added function
gmdGetSymbolByNumber
that provides the symbol based on the GMD_NUMBER which includes the alias symbols. - Added information key
GMD_NRSYMBOLSWITHALIAS
for functiongmdInfo
to retrieve the number of symbols including alias symbols.
GMO
- Adjusted routine
gmoGetMatrixCol
to fail if called where quadratic structure is explicitly detected/handled (i.e.useQ
is set). This routine was not intended to be used in this case. - Added routines
gmoNZ64
,gmoNLNZ64
, andgmoLNZ64
to get non-zero counts as 64-bit integer. - Fixed routine
gmoDirtySetRowFNLInstr
: it was not computing the number of stored NL instructions correctly.
PAL
- Added routines
palLicenseSolverCheckSizes64
andpalLicenseCheck64
for solvers that use 64-bit integers for non-zero counts.
Python high-level API
- Fixed a problem with property
domains
of a symbol in case the domain list consists of aGamsSet
and string elements.
Model Libraries
GAMS Model Library
- MS Access and Excel files have been updated to the MS Office 2007 format, i.e., files with the
xls
extension were changed toxlsx
orxlsm
files, files with themdb
extension were changed toaccdb
files. - The structured bibliographic information has been removed. As a consequence, the Author column in the table of models (documentation and Studio/IDE) has been removed as well as the Reference section for the individual model page (web). The bibliographic references remain part of the model source.
New Models:
GAMS Test Library
New models:
- asyncfix02.gms : Test asynchronous solves with holdFixedAsync setting
- genfile01.gms : Test generic file names
- offinc01.gms : Test dollar control option $offInclude
- embpy11.gms : Test proper domain info in Embedded Code
- dco01.gms : Test default state and switching state for dollar control options
- epstozero1.gms : Test writing eps as zero to GDX
- fnlogit.gms : Test correctness of logit intrinsic
- empsp01.gms : Test EMPSP keyword stageDefault
- gurobi06.gms : GUROBI test suite - general constraints norm
Solver/Platform availability matrix
x86 64bit MS Windows | x86 64bit Linux | x86 64bit macOS | |
---|---|---|---|
ALPHAECP 2.11 | ✔ | ✔ | ✔ |
ANTIGONE 1.1 | ✔ | ✔ | ✔ |
BARON | ✔ | ✔ | ✔ |
BONMIN 1.8 | ✔ | ✔ | ✔ |
CBC 2.10 | ✔ | ✔ | ✔ |
CONOPT 3 | ✔ | ✔ | ✔ |
CONOPT 4 | ✔ | ✔ | ✔ |
CPLEX 20.1 | ✔ | ✔ | ✔ |
DECIS | ✔ | ✔ | ✔ |
DICOPT 2 | ✔ | ✔ | ✔ |
GLOMIQO 2.3 | ✔ | ✔ | ✔ |
GUROBI 9.5 | ✔ | ✔ | ✔ |
GUSS | ✔ | ✔ | ✔ |
IPOPT 3.14 | ✔ | ✔ | ✔ |
KESTREL | ✔ | ✔ | ✔ |
KNITRO 12.4 | ✔ | ✔ | ✔ |
LGO | ✔ | ✔ | ✔ |
LINDO 13.0 | ✔ | ✔ | ✔ |
LINDOGLOBAL 13.0 | ✔ | ✔ | ✔ |
LOCALSOLVER 10.5 | ✔ | ✔ | ✔ |
MILES | ✔ | ✔ | ✔ |
MINOS | ✔ | ✔ | ✔ |
MOSEK 9 | ✔ | ✔ | ✔ |
MSNLP | ✔ | ✔ | ✔ |
NLPEC | ✔ | ✔ | ✔ |
OCTERACT 3.5 | ✔ | ✔ | |
ODHCPLEX 6 | ✔ | ✔ | |
PATH | ✔ | ✔ | ✔ |
SBB | ✔ | ✔ | ✔ |
SCIP 7.0 | ✔ | ✔ | ✔ |
SHOT 1.1 | ✔ | ✔ | ✔ |
SNOPT 7.7 | ✔ | ✔ | ✔ |
SOPLEX 5.0 | ✔ | ✔ | ✔ |
XA | ✔ | ✔ | |
XPRESS 38.01 | ✔ | ✔ | ✔ |