30 Distribution

30.1.0 Major release (January 10, 2020)

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 Todd Munson, Suguru Otani, Nick Sahinidis, and Dimitri Tomanos.

Platforms

Licensing and Demo Limits

  • The GAMS demo limits have been increased. GAMS will generate linear (LP, RMIP, MIP) models up to 2000 constraints and 2000 variables and up to 1000 constraints and 1000 variables for all other model types. No other limits apply (e.g. non-zeros or discrete variables). Some solvers (e.g., the global solvers ANTIGONE, BARON, and LindoGlobal) might enforce additional restrictions.
  • GAMS provides a free community license for users on request. This community license allows generating even larger models: up to 5000 constraint and variables for linear and 2500 constraints and variables for other model types. These free licenses are for demonstration and evaluation but not for commercial and production work, see the GAMS End User License Agreement.
  • Starting with this release, GAMS requires a valid license even for the free demo system. Free demo licenses (time-limited for 12 months) can be generated at the download page. The free demo and community licenses require also a recent version (not older than 18 months) of GAMS to run. Please check the license documentation for details.
  • GAMS Beta versions will stop working 90 days after their release. This is to prevent accidental use of beta software.

GAMS System

GAMS

  • Added system suffix MACAddress, which contains the MAC address of the first network adapter.
  • Allow to declare more than one parameter as table on a single line.
  • Added new dollar control options $(on|off)Filtered: These control how GAMS loads data from GDX with $load, $loadR, and $loadM as well as from $offEmbeddedCode.
  • Added new dollar control options $loadFiltered, $loadFilteredM, and $loadFilteredR to load data from GDX in filtered mode explicitly.
  • Added new dollar control options $(on|off)ExternalInput to load data implicitly from an external source and $(on|off)ExternalOutput to save data implicitly to an external target.
  • Added new command line parameters IDCGDXInput, IDCGDXOutput, IDCGenerateGDX, IDCGenerateGDXInput, IDCGenerateGDXOutput, IDCGenerateJSON, and IDCJSON.
  • Embedded Python Code:
    • Changed the optional boolean argument domCheck to an enumerated option DomainCheckType in the gams.set method in embedded code. This might break existing code. Even if the domCheck argument was not used, the default behavior at execution time changes. In previous versions the content was domain checked, now it is read filtered.
    • The argument mergeType was documented incorrectly. With type MergeType.DEFAULT (or no argument given) GAMS merged the content, in contrast to what the documentation said (here replace was mentioned).
  • Terminate with a proper error message if lines in the EMP info file exceed the maximum line length of 1020 characters.
  • Fixed a problem where the order of a semicolon and certain dollar control options changed the behavior of the compiler.

Installer

  • In addition to .gms files, the Windows installer also associates .gdx files with either the GAMS IDE or GAMS Studio.

Solvers

BARON

  • New libraries 19.12.7.
    • Performance improvements for large-scale and mixed-integer quadratic problems.
    • Improvements in interface to IPOPT.

CBC

  • New libraries.

CONOPT

  • New library 4.16 with bug fixes.
    • Improvement in the transition from Phase 0 to Phase 1 and in the one-dimensional search close to optimality.

CPLEX

GUROBI

JAMS/LogMIP

  • New option userPFFile to provide additional GAMS command line parameters for the GAMS run of the reformulated model.

LocalSolver

  • New libraries 9.0 (20191219).

MOSEK

  • New libraries 9.1.9.

ODHCPLEX

  • New libraries 4.3.2 with bug fixes and performance improvements.

PATH

  • New library 5.0.01 with bug fixes.
    • Fix seg fault when using the hidden option output_hidden_options.

SCIP

Tools

GAMS Studio

  • New version 0.14.1.
    • Stability improvements.
    • Added GDX Diff dialog to compare two GDX files. It can be opened by choosing Tools > GDX Diff from the menu or through the context menu off a GDX file in the Project Explorer.
    • Allow to open OS specific terminal in current working directory (Tools > Terminal) or in working directory of a specific group (using the context menu in the Project Explorer)
      • Note: This feature does not work on all Linux distributions, e.g., Ubuntu, yet.
    • Added basic integration of GAMS MIRO .
      • Note: This requires a separate installation of the GAMS MIRO package.
    • Improved GDX Viewer layout to optimize used screen space.
    • Adjusted layout of Reference File Viewer.
    • Added clear button to filter input field in GDX Viewer and Reference File Viewer.

Object Oriented APIs

C++

  • We plan to drop support for Microsoft Visual Studio 2013 and maybe also 2015 with the next major release.

Python

  • Added support for Python 3.8.
  • As announced, dropped support for Python 3.4.

Expert Level APIs

  • Added support for Python 3.8.
  • As announced, dropped support for Python 3.4.

Model Libraries

GAMS Data Library

New models:

GAMS Test Library

New models:

Solver/Platform availability matrix

x86 32bit
MS Windows
x86 64bit
MS Windows
x86 64bit
Linux
x86 64bit
macOS
Sparc 64bit
SOLARIS
IBM Power 64bit
AIX
ALPHAECP
ANTIGONE 1.1
BARON 18.5.8
BDMLP
BONMIN 1.8
CBC 2.10
CONOPT 3
CONOPT 4
COUENNE 0.5
CPLEX 12.10 12.6 12.6
DECIS
DICOPT
GLOMIQO 2.3
GUROBI 9.0 7.5
GUSS
IPOPT 3.12
KESTREL
KNITRO 11.1 11.0
LGO
LINDO 12.0
LINDOGLOBAL 12.0
LOCALSOLVER 9.0 8.5
MILES
MINOS
MOSEK 9
MSNLP
NLPEC
ODHCPLEX 4
PATH
SBB
SCIP 6.0
SNOPT
SOLVEENGINE
SOPLEX 4.0
XA
XPRESS 33.01 32.01 29.01

30.2.0 Minor release (February 07, 2020)

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, Iswar Radhakrishnan, Simon Scolan, and Kirk Yost.

GAMS System

GAMS

  • Fixed a problem when writing implicit data contract in JSON format (IDCGenerateJSON) with symbols that use a set more than once in its domain.
  • Fixed a potential wrong domain violation error for symbols declared under $onExternalInput.
  • Fixed gamsinst and the IDE to give better messages in case a license file is absent.
  • GAMS incorrectly removed indexed semi-integer and semi-continuous variables that have been fixed at a level other than zero with holdFixed set to 1. This has been fixed.
  • GAMS also removes scalar semi-integer and semi-continuous variables now, when they have been fixed at zero with holdFixed set to 1.
  • Fixed an issue where protected symbols could be changed using certain option statements.
  • Added new command line parameter IDCProtect to control assignment behavior of external input symbols at execution time: 0 allows assignment, 1 (default) protects external input symbols from being changed.
  • Adjusted reading of GAMS command-line arguments on non-Windows platforms to allow for empty arguments and arguments with preceding and trailing blanks. Windows users will not be affected by this change, nor will users who do not use quotes to protect arguments. But these invocations will now work differently on Unix, and will give the same result as on Windows:
    • gams main.gms –myPrefix "" user1 " four blanks here "
    • $call gams subjob.gms –cityA Tokyo –cityB ""

Solvers

CONOPT

  • New library 4.17 with bug fixes.
    • Fixed a problem where small infeasibilities were not correctly reported back to GAMS.

DICOPT

  • Fixed a possible crash during exit when having used Ipopt as NLP solver.

GUROBI

  • New libraries 9.0.1.
  • Fixed a problem with tuning of lp/mps files. In contrast to the documention, the tuning suite contained the model generated by GAMS when providing a list of models in lp/mps files to tune.
  • Made value 3 available for Gurobi option scaleFlag, available since Gurobi 7.5.

MOSEK

  • New libraries 9.1.11.

PATH

  • New library 5.0.02.
    • Fix to two preprocessor issues: wrong solutions were being returned.

Tools

GAMS Studio

  • New version 0.14.3.
    • Stability improvements.
    • New icon design.
    • Added filter facility for value columns in GDX Viewer.

30.3.0 Minor release (March 06, 2020)

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 Andres J. Calderon, Antti Lehtila, Grégoire Pichenot, and Karlo Šepetanc.

GAMS System

GAMS

  • Allow to create a secure work file on any platform for any target license platform.
  • Fixed a bug which could have caused wrong domain violation errors with $offEmbeddedCode.
  • Symbols set in embedded Python code via the GAMS Python object oriented API (i.e. gams.db[sym]) were imported with MergeType "replace" and DomainCheckType "filtered". This has been adjusted to both MergeType and DomainCheckType set to "default".
  • Fixed a problem which was introduced with GAMS 30.1: The default for $(on|off)Filtered should always be $onFiltered. This was not the case when restarting from an old work file.

Solvers

Antigone, Bonmin, Cbc, Couenne, Ipopt, SCIP

  • The number of threads as specified by option threads was disregarded. This has been fixed.

CONOPT

  • New library 4.18 with bug fixes.
  • The degeneracy-breaking logic has been improved for numerically difficult models and the interaction between defined variables and initialized variables has been improved.

JAMS/LogMIP

  • The maximum length of the directory name plus file name that GAMS can execute is 255. JAMS and LogMIP stopped working earlier. This has been fixed.

LocalSolver

  • Added missing lskeygen tool for Linux system.

MOSEK

  • New libraries 9.1.13.

Tools

GAMS Studio

  • New version 0.14.4.
    • Stability improvements.
    • Introduced Dark Mode support for macOS.