37 Distribution

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 writing EPS 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 items scriptName and executableName in section solverConfig.
  • $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, where 0 was shown as 0..
  • 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 and gams.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 dependency contextlib2 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

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 the od utility with parameters od -A x -t x1z -v. On Windows od 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 in GAMSJob::run().

gams2numpy

  • The binaries are now build with numpy 1.20.3 instead of numpy 1.19.5 for Python 3.7, 3.8, and 3.9.

GAMS Transfer

GMD

  • Allow to add symbols via gmdAddSymbol and gmdAddSymbolX 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 function gmdInfo 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, and gmoLNZ64 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 and palLicenseCheck64 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 a GamsSet 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 to xlsx or xlsm files, files with the mdb extension were changed to accdb 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:

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