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
onStateto 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
$offEpsToZeroto allow writingEPSvalues 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.yamlfor itemsscriptNameandexecutableNamein 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
displaybug, where0was 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].domainsandgams.db[sym].domains_as_strings. - Fix a problem in
pyEmbMIfor double bounded but not fixed variables. - The Python version of GMSPython has been updated to
3.8.11. - Removed package
schemaand its dependencycontextlib2from 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
stagebehavior 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
logoption2. - 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.UseEigenValueDecompositionto 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
bib2gmsin 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
Selectionwhich allows users to search inside a text selection. - Added zoom for
lxitree 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
hexdumpin a future GAMS release. A similar functionality is available on Unix systems via theodutility with parametersod -A x -t x1z -v. On Windowsodis 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::setOutputparameter being ignored inGAMSJob::run().
gams2numpy
- The binaries are now build with
numpy 1.20.3instead ofnumpy 1.19.5for 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
gmdAddSymbolandgmdAddSymbolXof type alias (GMS_DT_ALIAS). - Added function
gmdFindSymbolWithAliasthat provides the actual alias symbol rather than the aliased set in case the requested symbol is an alias. - Added function
gmdGetSymbolByNumberthat provides the symbol based on the GMD_NUMBER which includes the alias symbols. - Added information key
GMD_NRSYMBOLSWITHALIASfor functiongmdInfoto retrieve the number of symbols including alias symbols.
GMO
- Adjusted routine
gmoGetMatrixColto fail if called where quadratic structure is explicitly detected/handled (i.e.useQis set). This routine was not intended to be used in this case. - Added routines
gmoNZ64,gmoNLNZ64, andgmoLNZ64to 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
palLicenseSolverCheckSizes64andpalLicenseCheck64for solvers that use 64-bit integers for non-zero counts.
Python high-level API
- Fixed a problem with property
domainsof a symbol in case the domain list consists of aGamsSetand 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
xlsextension were changed toxlsxorxlsmfiles, files with themdbextension were changed toaccdbfiles. - 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
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 | ✔ | ✔ | ✔ |