48 Distribution

48.0.0 Beta release (September 29, 2024)

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 Christine Arriola, Yi Chen, Jinggang Guo, Katja Jensen, Joseph Kallrath, Arnaud Laur, Bruce McCarl, Scott McDonald, Lucas Perini, Jotham Peters, Uwe Schneider, and Thijmen Wiltink. Also, we thank the community of MCP modelers for their collective wisdom and willingness to engage in a productive discussion.

Platforms

  • As announced, the minimal required glibc version for Linux systems has been increased to 2.28.
  • We will drop support for macOS 12 (Monterey) with the next major release.

GAMS System

GAMS

  • Extended the allowed syntax of the model declaration for MCP models to support additional matching constructs, namely equation lists and variable lists.
  • Solver option files allow now echo off and echo on to suppress the echo of the option file content to the log file.
  • Added new command line parameter CompilerPreview (cp) to test inputs with the upcoming new compiler (and validate its correctness).
  • Make internal communication with GAMS Studio Debugger more robust.
  • Fix debug output on stdout.

GAMS Connect

GAMS Connect changes its status to stable, marking the end of its beta phase. We would like to thank all users who contributed to the development of GAMS Connect by reporting issues, suggesting features, and providing valuable feedback.

GMSPython

  • Python has been upgraded to 3.12.5.
  • We plan to upgrade to numpy 2 in a future GAMS release.

Windows Installer

  • Removed the option to associate .gdx and .gms files with the GAMS IDE.
  • Removed the option to create a Desktop icon for the GAMS IDE.
  • Removed the GAMS IDE from the generated start menu entry.

Documentation

  • The tutorial on Data Exchange with Other Applications has been revised and now provides guidance on how to exchange data with other applications using the latest recommended tools.
  • GAMS Transfer R documentation has been moved to readthedocs.

Solvers

ANTIGONE, CBC, Ipopt, SCIP, SHOT

  • Updated MKL to version 2024.2.2 on Linux.

BARON

  • New libraries 24.9.14.
    • Improved convexity identification, convexification, and branching.
    • More sophisticated presolve for linear, integer, and nonlinear problems.
    • Updated log output to include memory usage and progress estimate.

CPLEX, GUROBI, MOSEK, XPRESS

  • As announced, dropped the aliases OSICPLEX, OSIGUROBI, OSIMOSEK, and OSIXPRESS.

CONVERT

  • Dropped options NLP2MCP, NLP2Dual, and DualType.

IPOPT

  • New libraries Mumps 5.7.3.

KNITRO

  • New libraries 14.1.
    • Performance improvements and improved robustness on numerically difficult nonlinear optimization problems, as well as improvements on QP/QCQP models. Improvements have also been made to the branch-and-bound MIP solver, the SQP algorithm, and the presolver.
    • Improvements for nonlinear, non-convex mixed-integer problems (MINLPs). The nonlinear branch-and-bound algorithm has been updated to handle non-convex problems specifically, leading to better primal solutions. Knitro 14.1 automatically detects if the non-convexity of the problem requires special care. Therefore, this feature can be used even if the problem is convex or just slightly non-convex. This feature is available when setting the option mip_multistart to 1 and may become the default behavior of the branch-and-bound algorithm in future versions.
    • Improved multi-start procedure. The new multi-start, by default, automatically terminates when the probability of finding new local solutions is small, while always producing deterministic results. A new option, ms_terminaterule_tol, can be used to control how quickly termination is triggered.
    • Speedups when using the L-BFGS Hessian approximation.
    • New option eval_cost: Use this option to tell Knitro the relative cost of performing callback (e.g. function, gradient, and Hessian) evaluations.
    • New option initpt_strategy: Specifies the initial point strategy used for the continuous algorithms.
    • New option ms_terminaterule_tol: The tolerance in (0,1] for the rule-based termination of multi-start.
    • New option value 2 (dynamic) for option linsolver_scaling: Dynamically apply scaling in the linear system solves.
    • New default value (4) for option ms_terminate.
    • Removed option ms_deterministic.

MILES

  • Fixed division-by-zero exception that occurred with empty models.

PATH

  • New libraries 5.2.01.
    • Tighter integration with the basis-handling routines from CONOPT, so that a separate download is no longer required.

ReSHOP

  • New libraries 0.3.0.

SCIP Optimization Suite

  • New libraries PaPILO 2.3.1.
  • New libraries SoPlex 7.1.1.
  • New libraries SCIP 9.1.1.

Tools

CSVRead, CSV2GDX

  • New tool CSVRead has been added to the GAMS Tools Library. It writes data from a CSV file to a symbol in GAMS or a GDX file.
  • CSV2GDX will be removed in a future GAMS release. Use CSVRead instead.

GAMS Studio

  • New version 1.19.0.
    • Improved Project handling:
      • New Feature: Added single project mode to focus on one project only.
      • Added feature to store options for each main file. The main file can now be changed via the shortcuts Shift+Ctrl+M and Shift+Cmd+M. The old behavior can be activated via the settings.
      • Added virtual project, i.e., only create a .gsp file on a certain number of files or if a main file is part of the project.
      • Added "Close and delete project" action to Project Explorer context menu.
      • Improved select next project when closing the current edited file-node in the Project Explorer that is also part of other projects.
      • Improved allow to remove all but the main file from a running project.
      • Improved closing a focused tab and switching to a tab from the same project if possible.
      • Removed warning when deleting a project file that does not exist.
    • Improved group search results by file, i.e., a tree view is used instead of a table.
    • Added default workspace clean-up during Studio start based on filters defined via the settings. In the future, the project workspaces will be cleaned.
    • Added Reference File (RF) creation to Run with GDX creation.
    • Added licensed GAMS solvers to license text and dropped solver matrix.
    • Added background color for syntax highlighting.
    • Added support for oneof, nullable, and default schema in Connect Editor.
    • Connect Editor option defaults are now shown and instantiated agents are pre-populated with those defaults.
    • Changed check for Studio updates on startup to be deactivated.
    • Improved behavior while debugging GAMS code.
    • Stability improvements, bug fixes, and minor enhancements, e.g.:
      • Added color indicator for non-existing MIRO path.
      • Added zoom support for model dialog.
      • Added search icon to toolbar.
      • Fixed usage of license file specified via gamsconfig.yaml.
      • Fixed path of project options not recognized for file dialog.
      • Fixed Save As... crash when saving to a file already known by Studio.
      • Fixed Save As... so that the new file is added to the project and the original is removed.
      • Fixed finding GAMS on Windows.

GDXDUMP, GDXDIFF, GDXMERGE

  • The tools GDXDUMP, GDXDIFF, and GDXMERGE have been completely rewritten for better reliability, maintainability, and performance, while retaining the same functionality as the previous versions.
  • The old versions are still included in the distribution under the names gdxdumpold, gdxdiffold, and gdxmergeold, respectively.
  • New GDXDIFF option SkipID to skip certain symbols.

GDXVIEWER

  • Avoid deprecation message when run in batch mode.

MOO

  • Added method Payoff that allows to run the calculation of the payoff table independently.
  • Method EpsConstraint now allows to manually set the range of objectives by specifying the options min and max.
  • Method EpsConstraint now allows to activate parallel solves.

SqliteWrite, GDX2SQLITE

  • New tool SqliteWrite has been added to the GAMS Tools Library. This tool exports GAMS symbols with their data to a SQLite database.
  • As already announced, GDX2SQLITE and sqlite3 will be removed from the distribution. This will happen with the next major release.
  • Documentation for GDX2SQLITE has been removed and all examples have been adjusted to use SqliteWrite instead.
  • SqliteWrite introduces several changes compared to GDX2SQLITE. The key differences between the two tools are outlined in the SqliteWrite documentation.

APIs

C++

  • Improved closing of license session when GAMSModelInstance is freed.
  • Updated GAMSDatabaseImpl::getSymbolByIndex to keep in sync with GMD change.

GAMS Transfer Python

  • Enabled equals method to compare symbols that exist in difference containers.
  • UNDF special string now maps to gt.SpecialValues.UNDEF to follow GAMS syntax.
  • Fixed bug in isValid tests if symbols are holding empty DataFrames.
  • Fixed ZeroDivisionError in getSparsity when domain sets did not have records.
  • Fixed bug in the private _from_gams symbol constructor (used when reading GDX or GMD objects) – symbols now hold a weakref to the container.

GDX

  • New libraries 7.11.7.

GMD

  • Fixed inconsistent numbering convention in gmdGetSymbolByIndex and gmdGetSymbolByNumber (now 1-based like in gmdSymbolInfo with GMD_NUMBER).

GMO

  • A performance bottleneck in the Q extraction was identified and removed. The Q extraction routines have also been improved to take advantage of diagonal Q matrices.
  • Multiple performance bottlenecks in the Hessian computation and the Q matrix extraction were identified and removed. The occurrence of these bottlenecks depended on several factors: sparsity, variable ordering, and the particular form of the nonlinear expressions.

Java

Matlab Control

  • Added new value DebugLevel.KEEP_FILES_ON_ERROR to Globals.DebugLevel which keeps temporary files only in case of an error when executing GAMS during Job.run or Job.runEngine. Its internal numerical value is 1 and all values for Globals.DebugLevel or greater have been increased by 1. The value KEEP_FILES_ON_ERROR is also a new default value of Globals.DebugLevel.

Python

  • As announced, support for Python 3.8 has been dropped.
  • Added support for Python 3.13 (beta).
  • As announced, support for pandas 1.5 has been dropped.
  • We plan to drop support for pandas 2.0 in a future GAMS release.
  • New method GamsModelInstance.cleanup that allows to explicitly close a license session.
  • Added new optional parameter end="\n" to ConnectDatabase.print_log().
  • ConnectDatabase.exec_task() has been renamed to ConnectDatabase.execute() and now allows to execute multiple agents.

Model Libraries

FIN Library

GAMS Data Library

GAMS Model Library

GAMS Test Library