44 Distribution

44.1.0 Major release (July 20, 2023)

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, Wolfgang Britz, Rob Davies, Michael Ferris, Bruce McCarl, and Thomas Rutherford.

GAMS System

GAMS

  • Added new function gdxLoad to have a flexible way of loading from GDX files at execution time. The load behavior can be modified using the new options filtered and replace. This new function can be used for both, explicit loading of single symbols but also a bulk load of all symbols in the GDX file that match the declaration in the model.
  • The requirements for logic equations have been relaxed to make them more useful in future releases. For example, continuous variables and non-boolean functions/operators can now be present in logic equations. This relaxed use of algebra in logic equations prevents some simple preprocessing steps, e.g. not not x is only x if x is either 0 or 1. Since this is not the case anymore, such preprocessing has been disabled. This might impact some (linear) reformulation of pure boolean logic equations done by LOGMip.
  • Added new command line parameter solveOpt to initialize the already existing option solveOpt.
  • Added new command line parameter MIIMode.
  • As announced, the command line parameter logOption was changed. LogOption=1 was marked as deprecated and became a synonym for the default logOption=3, which sends the log output to the standard output.
  • PreviousWork now writes a workfile compatible with GAMS 43 and newer.
  • Fixed a potential bug with $save and put_utility save.

GAMS Connect

  • As announced, the debug option of the Options agent has been dropped.
  • The CSVReader now supports using the symbolic constant lastCol without a header or names. If no header or names is provided, lastCol will be determined by the first line of data.
  • The CSVReader now supports reading multi-row headers for parameters.
  • Added LabelManipulator agent to Connect.

Installer

  • Docker images with a pre-installed GAMS distribution for linux/amd64 are now available at Docker Hub.

Licensing

  • A GAMS demo license is now included in the GAMS distribution. It is valid for approximately 5 months.

Documentation

Solvers

BARON

Gurobi

  • New libraries 10.0.2.

HiGHS

IPOPT

  • New libraries MUMPS 5.6.1.

LINDO/LINDOGLOBAL

  • New libraries 14.0.279.

Mosek

  • New libraries 10.0.46.

Octeract

  • We plan to drop Octeract with one of the following major releases.

SCIP Optimization Suite

  • New libraries SCIP 8.0 (bf58b8fcd5).
    • Removed non-default values for option propagating/symmetry/recomputerestart, that is, recomputing symmetry information after a restart can no longer be enabled (as this can produce wrong results).
  • New libraries PaPILO 2.1 (2ed99c46).

SELKIE

  • As announced, the research solver SELKIE has been dropped from the GAMS distribution. It is expected that it will be made available directly from the authors.

Tools

GAMS Studio

  • New version 1.15.1.
    • New feature GAMS Debugger: This allows to pause the execution at the beginning of execution statements and review the current data in a temporary GDX file.
    • Improvements for the GDX Viewer:
      • Added search facility to the data view.
      • Added settings to specify default numerical formatting options and show/hide attributes.
      • Disable preferences menu for sets and aliases.
    • Improvements for the GAMS Configuration Editor:
      • Move tab selection from bottom to top.
      • Fixed status in definition section when editing a Key.
    • Improvements for the GAMS Configuration Editor / Parameter File Edior / Extended Parameter Editor:
      • Add group in parameter/option definition.
      • List all available solvers for Solver parameter/option definition.
    • Stability improvements, bug fixes, and minor enhancements, e.g.:
      • Fixed OpenSSL issue for Manjaro, Ubuntu 22.04 LTS and similar Linux distributions.
      • Fixed a bug where precision=Full was not restored properly in the GDX Viewer.
      • Fixed path issue for project files: existing projects with a path starting with "." can be fixed manually using "Move Project File..."

GDX2ACCESS

  • Fixed gdx2access for systems where both 32-bit Office and 64-bit Access runtime are installed.

MDB2GMS

  • Fixed mdb2gms for systems where both 32-bit Office and 64-bit Access runtime are installed.
  • Made table browser in MDB2GMS not crash when field sizes for memo or long binary fields cannot be queried (now showing ??? instead).

APIs

C

  • File apifiles/C/api/gcmt.c does no longer need to compiled to use C or Fortran API files. Files gcmt.c and gcmt.h are now empty and will be removed in a future version.
  • File apifiles/C/api/gclgms.c does no longer need to compiled to have the arrays and functions from gclgms.h defined (they are inlined now). File gclgms.c is now empty and will be removed in a future version.
  • File apifiles/C/api/gcdllinit.h is now empty and will be removed in a future version.
  • The definitions GAMSVERSION, GAMSMAJOR, GAMSMINOR, and GAMSGOLD in gclgms.h are deprecated and will be removed in a future version.

Delphi

  • The Delphi API files in apifiles/Delphi will be removed with a future major release.

Fortran

  • The Fortran API files in apifiles/Fortran will be removed with a future major release.

GAMS Transfer Python

  • Breaking: Dropped ConstContainer and all Const* symbols – users should only use Container and accompanying symbols.
  • Method setRecords (and the records argument) now supports setting records with pandas.Series and DataFrames with Index or MultiIndex axes (must set uels_on_axes=True).
  • Method toDense now requires domain sets to have self-consistent ordering (i.e., record data order and category order must be equal).
  • Method reorderUELs now reorders UELs to data order (and append unused categories) if uels is None (the default).
  • Fixed bug when attempting to load libraries from different GAMS versions with the system_directory argument.

GAMS Transfer R

  • New libraries 2.2.0
    • Fixed bug with library unload upon read or write.
    • Performance improvement in setting records for symbols.
  • Note: ConstContainer and the corresponding symbols will be dropped with the next major GAMS version. Users are advised to use Container and accompanying symbols.

GDX

  • The dynamic library file on Linux (.so), macOS (.dylib), and Windows (.DLL) has been changed from (lib)gdxdclib64 to (lib)gdxcclib64 after porting the GDX codebase from Delphi to C++. While the GDX API remains compatible, the underlying shared library is very different and cannot be renamed back. Therefore, a copy of the old (lib)gdxdclib64.{so,dylib,DLL} is still distributed with GAMS for now. Eventually the Delphi library will be dropped, hence it is sensible to compile existing user applications against the new C++-based GDX library and corresponding API files.
  • Modified function gdxDataReadRawFastEx to allow the callback function to stop the reading after each record. The callback must now return an integer indicating if reading should be continued (>=1) or stopped (=0).

GMD

  • Fixed a problem that resulted in a crash when retrieving the domain list with an alias of symbol (gmdGetDomain).

GMO

  • As announced, the functions gmoEvalFuncNLCluster and gmoEvalFuncNLCluster_MT have been removed.

Java

  • Added method runEngine to GAMSJob class to run jobs on GAMS Engine, only for classes that work with Java SE 11 or later.
  • Changed minimum requirement of Java SE to compile and run a Java program using the latest GAMS Java API:
    • All classes in [Path/To/GAMS]/apifiles/Java/api/GAMSJavaAPI.jar require Java SE 11 or later to run.
    • GAMSJavaAPI.jar has an additional dependency on JSON.simple, located in [Path/To/GAMS]/apifiles/Java/api/json-simple-1.1.1.jar.
    • GAMSJavaAPI.jar and json-simple-1.1.1.jar are required to be in the same directory to run.
  • Changed GAMS Java API name for a Java program that still requires Java SE 8 to compile and run:
    • All classes that target Java SE 8 are in [Path/To/GAMS]/apifiles/Java/api/GAMSJavaAPI-8.jar.
    • New or updated functionalities may not be made available in this version, only corrective maintenance support will be provided in the future.
    • GAMSJavaAPI-8.jar has no additional dependency.

Python

  • We plan to drop support for Python 3.7 in a future GAMS release.

Model Libraries

GAMS Test Library

Solver/Platform availability matrix

x86 64bit
MS Windows
x86 64bit
Linux
x86 64bit
macOS
arm 64bit
macOS
ALPHAECP 2.11
ANTIGONE 1.1
BARON
CBC 2.10
CONOPT 3
CONOPT 4
COPT 6.5
CPLEX 22.1
DECIS
DICOPT 2
GUROBI 10.0
GUSS
IPOPT 3.14
HiGHS 1.5
KESTREL
KNITRO 13.2
LINDO 14.0
LINDOGLOBAL 14.0
MILES
MINOS 5.6
MOSEK 10
NLPEC
OCTERACT 4
ODHCPLEX 7
PATH
QUADMINOS 5.6
SBB
SCIP 8.0
SHOT 1.1
SNOPT 7.7
SOPLEX 6.0
XPRESS 41.01

44.1.1 Maintenance release (August 03, 2023)

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 Hugo Joudrier-Faure.

Solvers

COPT

  • New libraries 6.5.7.

HiGHS

  • New libraries 1.5.4.

NLPEC

  • Fixed that the setting of option NCPBounds was not being honored for doubly-bounded variables.
  • Fixed implementation of reformulation type FB_neg.
  • Fixed implementation of reformulation type min for the case of upper-bounded variables and no slack variables.

APIs

GAMS Transfer Matlab

  • Fixed bug when using more than 255 UELs.

GAMS Transfer R

  • New libraries 2.4.0.
    • Fixed read for Variable and Equation classes where the lower and upper attributes were interchanged.

44.2.0 Minor release (August 17, 2023)

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, Mogens B. Laursen, Orenzo Porporino, and Hannes Wornig.

GAMS System

GAMS

Embedded Python Code Facility

  • Fixed a problem when command line parameter pyMultInst has been set to 1. Please note that the interrupt signal (e.g., from Ctrl-C) in embedded Python code does not work with pyMultInst=1.

GAMS Connect

  • Allow the LabelManipulator agent to convert multiple labels to the same target label.

Installer

  • Fixed a bug of the Windows installer overwriting an existing license file from a previous installation with the demo license.

Solvers

SoPlex

  • Improved performance for passing the LP to SoPlex.

Tools

GAMS Studio

  • New version 1.15.3 with some bug fixes and minor enhancements:
    • Fixed missing OpenSSL library on Linux.
    • Fixed missing projects when a project path is missing.
    • Fixed a bug in the GDX Viewer where restoring a symbol state of a partially loaded symbol resulted in a crash.
    • Fixed crash on closing a GDX Viewer instance while symbol data is loading.
    • Fixed GAMS process not terminating when closing Studio.
    • Improved handling of interrupt and stop.

44.3.0 Minor release (September 01, 2023)

Acknowledgments

We would like to thank all of our users who have reported problems and made suggestions for improving this release.

Solvers

BARON

  • Fixed that setting GAMS option threads to a negative value did not enable parallelization in MIP solver.

CBC

  • Fixed that solver did not stop on interrupt signal.

CPLEX

  • Fixed model status for CPLEX's termination CPXMIP_OPTIMAL_POPULATED_TOL and incorrect infeasibility warning for CPXMIP_OPTIMAL_POPULATED and CPXMIP_OPTIMAL_POPULATED_TOL.

HiGHS

  • Fixed issue when running HiGHS more than once in the same process with multiple threads enabled.

NLPEC

  • Fixed an incorrect reformulation (required equations were omitted from the reformulated model) that occured when aggregate was set to partial none.
  • Fixed case where an invalid option combination (aggregate set to full but different reformulation type set for single and double) was allowed: this is now shifted to a valid option combination.

SHOT

  • Fixed use of multiple threads with CBC as MIP solver.

Tools

GAMS Studio

  • New version 1.15.4 with some bug fixes and a minor enhancement:
    • Added tab key support for filter widgets in GDX Viewer.
    • Fixed the GDX Viewer not displaying symbol data with too many records by only showing about the first 107 million entries.
    • Fixed path selection for GAMS license installation.

Model Libraries

GAMS Test Library

44.4.0 Minor release (September 19, 2023)

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 Alan Fox, Erwin Kalvelagen, and Nick Sahinidis.

GAMS System

GAMS

  • Fixed potential problem with $declareAndLoad when loading symbols with name clash for internal symbols or functions.

Solvers

CONOPT 3

  • New libraries 3.17O.

CONVERT

  • Fixed equation type in =B= and =X= equations in GAMS format.

Tools

GAMS Studio

  • New version 1.15.5 with a bug fix and a minor enhancement:
    • Fixed crash in Reference File Viewer when searching for a symbol in FileUsed tab.
    • Removed the obsolete studio command line option --help-all.

APIs

GDX

  • Fixed a bug causing large GDX files to be read incorrectly due to storing the number of remaining bytes (in the file) in a variable of wrong (not wide enough) type.