48 Distribution

48.1.0 Major release (October 14, 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, Wolfgang Britz, Yi Chen, Jinggang Guo, Katja Jensen, Joseph Kallrath, Erwin Kalvelagen, Arnaud Laur, Bruce McCarl, Scott McDonald, Lucas Perini, Jotham Peters, Gereon Recht, Uwe Schneider, and Thijmen Wiltink.

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

  • 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.
  • Print ~ as continuation character for long lines in solver option files.

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.

Documentation

GMSPython

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

Windows Installer

  • Added support for fetching a GAMS license by using an access code.
  • The license page has been moved and is now shown after the actual installation process.
  • 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.

Solvers

ANTIGONE, CBC, Ipopt, SCIP, SHOT

  • Updated MKL to version 2024.2.2 on Linux.

BARON

  • New libraries 24.10.10.
    • 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.
    • New option DualBudget to set time limit for calculation of dual solution.
    • The default constraint feasibility tolerance AbsConFeasTol has changed from 1e-5 to 1e-6.

COPT

  • New libraries 7.1.7.

CPLEX, GUROBI, MOSEK, XPRESS

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

CPLEX

  • Improved efficiency for calculation of dual multipliers for quadratic constraints.

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.

MOSEK

  • New libraries 10.2.5.

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.1.

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 different 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).
  • Fixed gmdMerge(Set)RecordInt(Py) still creating unnecessary temporary iterator objects when passing wantSymIterPtr=0.

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.
  • 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

48.2.0 Minor release (October 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 Wolfgang Britz, Michael Ferris, Katja Jensen, and Sherman Robinson.

GAMS System

GAMS

  • Fixed problem in upcoming compiler (that can be accessed via CompilerPreview (cp)) when parsing macros that are defined over multiple lines.
  • Fixed a bug with gdxSymbols=newOrChanged where newly declared but undefined symbols did not get exported.
  • Adjusted license information processed by GAMS Studio when a network license is used.

GAMS Connect

  • Improved performance of the GAMSReader and GDXReader agents when importing data into an empty Connect database.
  • Improved error message for the ExcelReader and ExcelWriter agents when not being able to open an Excel file that is currently open.
  • Improved trace output.

Solvers

HiGHS

ReSHOP

  • New libraries 0.3.2.

Tools

ExcelTalk

  • Fixed a bug where ExcelTalk failed to open a file unless Excel was already running.

GAMS Studio

  • New version 1.19.1.
    • Added allowing to delete files from the Project Explorer.
    • Added system and version information to the log (created via --log).
    • Added additional logging for license installation.
    • Added setting to switch system logging on/off.
    • Added information when check for update is disabled at startup.
    • Fixed invalid error mark when the listing file contains wrong position information.
    • Fixed initialization and validation of options created from Connect schema in Connect Editor.
    • Fixed adding only required options in Connect Editor.
    • Fixed saving file in Connect Editor after an edit finished with a mouse click.
    • Fixed crash and blocking on macOS after interrupting a GAMS run.
    • Improved license text for time limited licenses.
    • A system log file is now created by default and new parameter --no-log can be used to deactivate this.
    • Reverted improvement on grouping of search results by file (Studio 1.19.0).

APIs

GDX

  • New libraries 7.11.9.
    • Made gdxOpenRead not lock the file (from being deleted) on Windows. This is particularly useful in conjunction with GDX files opened in Studio, which can now be deleted without manually closing the corresponding GDX viewer instance.

Python

  • Fixed a bug that caused GAMS Connect to be incompatible with Python 3.13.
  • Improved performance of GamsWorkspace constructor.

Model Libraries

GAMS API Library

GAMS Data Library

GAMS Test Library