51 Distribution

51.0.0 Beta release (August 30, 2025)

Attention
This and forthcoming GAMS versions require a license in the new 8 lines format. License files with less than 8 lines are not accepted by the GAMS system anymore. A GAMS distributor can provide a new license free of charge to users with a valid older license file.

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 Bruce McCarl and Uwe Schneider.

Platforms

  • We plan to drop support for Windows 10 with the next major release.
  • We plan to drop support for macOS 13 with the next major release.

GAMS System

GAMS

  • As announced, the use of =C= equations triggers an error now. For now, this can be turned into a warning, but with an upcoming major release, this will not be possible anymore. In case of concerns, contact support@gams.com.
  • Extended the dollar control options $show, $showMacros, and $showVariables to support an optional suffix .sorted. If that is used, the list of compile-time variables and/or macros is printed in alphabetical order.
  • Improved the dollar control options $show, $showFiles, $showMacros, and $showVariables to add a message to the log which can be clicked in GAMS Studio to jump to the right place in the .lst file.
  • Smarter sparse execution detection for improved performance: GAMS can now automatically apply sparse execution to a broader set of simple parameter-constant comparisons, such as >, >=, <, or <= with positive or negative constants.
  • Improved error message in case of a redefinition error.
  • Using a Singleton Set as a domain for another symbol no longer raises an error.

GAMS Connect

GMSPython

  • Python has been upgraded to version 3.12.11.

Documentation

Installer

  • Windows installer:
    • Added support for self-hosted on-premises license servers.
    • Changed the installer to recognize 8-line licenses from the clipboard only.
    • No longer register .gpr file associations.

Solvers

BARON

  • BARON is now also available for Linux on arm64.

CONOPT

  • New libraries 4.38.0.
    • Improved pre-processor to potentially select more post-triangular constraints.
    • Changed default of options THREADC and THREADF from 1 to 4.
    • Fixed potential infinite reinversion loop.
    • Fixed bug related to uninitialized values when computing the Hessian diagonal.

GUROBI

  • The GAMS/GUROBI link has been rewritten and may behave differently in some cases. Please contact support@gams.com if there is any issue. As an immediate workaround, the old GAMS/GUROBI link is available as the hidden solver GUROBIOLD. It will be removed in a future release.
  • Removed support of deprecated dot option .genConstrType.

HiGHS

KNITRO

  • New libraries 15.0.1.
    • New Augmented Lagrangian (AL) algorithm for nonlinear optimization models. This new algorithm uses the nonlinearly constrained (i.e. NCL) approach and may still make use of second derivatives. It may be preferable for difficult problems with degenerate constraints where the Linear Independence Constraint Qualification (LICQ) is not satisfied. This algorithm can be selected by setting the user option nlp_algorithm = 6 (al).
    • New Primal-Dual Hybrid Gradient algorithm for linear programming (LP) problems. This new algorithm uses only first order information to converge and avoids matrix factorizations. It may be preferable for extremely large-scale models when the default interior-point method struggles. This algorithm can be selected by setting the new user option lp_algorithm = 4 (pdlp).
    • Significant performance improvements when using the limited-memory BFGS Hessian approximation (hessopt = 6), particularly on large-scale problems.
    • Updated Intel MKL and OpenMP to version 2024.2 on Windows and Linux x86_64 systems.
    • Performance improvements from presolve (bound propagation, reduced cost fixing, coefficient strengthening, parallel row detection), particularly for MINLPs with linear structures.
    • New option lp_algorithm: Indicates which algorithm to use to solve LPs.
    • New option nlp_algorithm: Indicates which algorithm to use to solve nonlinear problems (NLP and QCP).
    • New option mip_cutoff_abs: This value specifies the absolute improvement cutoff value for MIP.
    • New option mip_cutoff_rel: This value specifies the relative improvement cutoff value for MIP.
    • New option mip_node_lpalg: Specifies which algorithm to use for standard node LP subproblem solves in MIP (same values as lp_algorithm).
    • New option mip_node_nlpalg: Specifies which algorithm to use for standard node NLP subproblem solves in MIP (same values as nlp_algorithm).
    • New option mip_root_lpalg: Specifies which algorithm to use for root node LP subproblem solves in MIP (same values as lp_algorithm).
    • New option mip_root_nlpalg: Specifies which algorithm to use for root node NLP solves in MIP (same values as nlp_algorithm).
    • New option al_initpenalty: Specifies the initial penalty parameter value used in the Augmented Lagrangian (AL) algorithm.
    • New option al_maxpenalty: Specifies the maximum allowable penalty parameter value used in the Augmented Lagrangian (AL) algorithm.
    • New option value 9 of linsolver on macOS: Use parallel, non-deterministic Apple Sparse Solver.
    • New lower bound and default -1 of feastol, feastol_abs, opttol, and opttol_abs.
    • Fixed option bounds of delta, bar_conic_enable, bar_maxmu, bar_murule, mip_branchrule, and mip_terminate.
    • Changed options with type boolean to integer.
    • Deprecated option algorithm.
    • Removed options mip_lpalg, mip_nodealg, and mip_rootalg.

ReSHOP

  • New libraries 0.4.4.

XPRESS

  • The GAMS/XPRESS link has been rewritten and may behave differently in some cases. Please contact support@gams.com if there is any issue. As an immediate workaround, the old GAMS/XPRESS link is available as the hidden solver XPRESSOLD. It will be removed in a future release.
  • Removed option knitroOptFile: Use supported KNITRO options in the XPRESS options file instead. These new options are prefixed with knitro_, see also Knitro Options.
  • Changed behaviour of solnPoolMerge: Before, the model name got prefixed in addition to solnpoolPrefix. The new behaviour now matches the one of other solvers that support this feature.

Tools

FINDTHISGAMS

  • Dropped ide argument and no longer register .gpr file associations.

GAMS IDE

  • As announced the classic GAMS IDE was dropped from the system.

GAMS Studio

  • New version 1.22.0:
    • Added the gamsprobe output to the Copy System Information output of the GAMS Licensing dialog.
    • Added dynamic main file functionality. This will automatically set the current gms file as the project's main file when running the model.
    • Added additional system log messages in case a GAMS executable, like gams or gamsgetkey, is missing.
    • Added import functionality for project files from the classic GAMS IDE (*.gpr).
    • Added warnings for missing files when loading a Studio project.
    • Added On-Prem license server support.
    • Improved error messages for license installations via ALP.
    • Ignore old style GAMS licenses.
    • Improved Reference File Viewer with key navigation through symbols and references.
    • Fixed crash when reading a Studio project and the main gms file is missing.
    • Fixed tab menu to show only files of the focused project (when focused).
    • Fixed a crash when a project with an extension number, i.e., two projects having the same display name, is edited in the project options.
    • Fixed empty FileUsed Tab in Reference File Viewer when the file has been updated and reloaded.
    • Fixed a crash when opening a file containing an unknown schema data name in Connect Editor.

GDXDIFF, GDXDUMP, GDXMERGE

  • Fixed bug with handling of long absolute paths (>260 characters) on Windows and also make long relative paths work by automatically converting them into absolute paths internally.

MPS2GMS

  • Option CEQUATIONS is now deprecated and will be removed in a future version.

APIs

GAMS Transfer Python

  • Do not raise an error anymore when a Singleton Set is used as a domain for another symbol.

GDX

  • New libraries 7.11.17.
    • Include path to file that cannot be opened in error message of gdxOpenRead*.
    • Changed function signatures of gdxGetDLLVersion (to static method) and gdxErrorStr (to object method).

GEV

  • Add function gevGetLSCBInfo to extract and return the log/status write callback and its associated callback data pointer from the lshandle returned by gevSwitchLogStat.

GMO

  • Added function gmoUpdateJac: This function updates the value of linear Jacobian entries created by gmoAddRow or gmoAddCol.

Python

  • As Python Python "announced", support for numpy 1, and pandas before 2.2.2 has been dropped.
  • Added preliminary support for Python 3.14. As Python 3.14 has not yet been officially released, full compatibility cannot be guaranteed.

Solver links

  • Library initialization and finalization functions (xyzInitialize and xyzFinalize) of solver link libraries are deprecated, because they were not called as expected if the same solver link library was used by several CFG objects simultaneously. Instead, it is advised to use proper library initialization/finalization mechanism, e.g., __attribute(constructor/destructor)__ and DllMain. CFG currently prints a warning if these methods are found, but will still call them. In a future GAMS version, this warning will be changed to an error.

Model Libraries

GAMS Model Library

  • Removed chartdat (313).

GAMS Test Library