54 Distribution

New Features & Highlights

  • Since GAMS 49.2.0, the End User License Agreement (EULA.md in the GAMS system directory) included a clause that the publication of benchmarks using any solver of the GAMS distribution requires the written consent of both GAMS and solver vendors. With the new EULA version 06/2026, this restriction now applies only to those solvers where it is required by the license agreement of the solver vendor. In addition, it has been clarified that this also applies when such a solver is used as subsolver of another solver (e.g., when CPLEX is called by DICOPT).

GAMS Studio

License Status

  • The license status is now visible in the statusbar.
  • Hovering over it shows a tooltip containing validation information of the license.
  • With a click on it the licensing dialog is opened allowing to check out a network license.
  • When a license is about to get invalid the color turns yellow to inform the user.
Studio License Status

Scrollbar Markers

  • The scrollbar in text editors now shows where markers are positioned in the file.
  • Currently GAMS Studio supports markers for Quick Find, Complex Search, Errors, and Bookmarks.
Studio Scrollbar Markers

GAMS System

  • Local and network licenses restricted to a single concurrent use now function on machines with more cores than permitted, rather than being rejected. Several solver links enforce core limits by setting relevant solver options.
  • The computation of a dual solution (marginals) to correspond to a known primal solution (level values) can require a considerable additional effort if the solver's algorithm did not already work with primal-dual solution pairs, e.g., when using branch-and-bound algorithms to solve nonconvex optimization problems. With the new GAMS option and command line parameter requestMarginals, the user can now specify whether marginals are required. With the default value requestMarginals=-1, solvers will provide marginals only when this is computationally inexpensive, e.g., when using algorithms that work on local optimality conditions (simplex, interior point, etc). For solvers that find global optima, an additional solve of a continuous (sub)problem to local optimality (e.g., the LP obtained from fixing all integer variables in a MIP) is now disabled by default, but can be reenabled by setting requestMarginals=1.

Solvers

  • HiGHS 1.14.0 brings a new PDLP solver HiPDLP (for CPUs and NVIDIA GPUs), several performance improvements in the MIP solver, and additional matrix ordering options for the interior point solver HiPO.
  • As part of an ongoing efforts to modernize the solver interface libraries, the library to read option files has been updated for several solvers.
  • For the "stop expression" options of the GUROBI and XPRESS links, historic data can now be used to formulate conditions on the solving progress over time, e.g., objval_60s refers to the best objective value from 60 seconds ago.
  • Solvetrace files can now be written by the GAMS/Mosek link as well.

54.0.0 Beta release (May 30, 2026)

  • The End User License Agreement (EULA.md in the GAMS system directory) has been updated to version 06/2026. In particular, restrictions on publishing solver benchmarks apply onto to a subset of solvers now.

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 Wolfgang Britz.

Platforms

  • We plan to drop support for macOS 14 (Sonoma) with the next major release.

GAMS System

GAMS

  • Added command line parameter, option, and model attribute requestMarginals.
  • PreviousWork now writes a workfile compatible with GAMS 53 and newer.
  • Extend the command line parameter appendOut to allow redirecting the listing file content to stdOut or stdErr. This feature is not available when running under GAMS Studio. Note: This is actually not new but was deactivated by accident in the past.
  • Performance Optimization: Improved the efficiency of the execution backend connection to GAMSPy by streamlining operations at the conclusion of the compilation phase. This includes skipping redundant well-definedness checks for immutable predefined symbols, which reduces execution overhead in multi-step and incremental workflows.
  • Reduced output noise when running under GAMSPy. When detecting a GAMSPy environment, the library now suppresses internal status messages regarding saved process and parameter files.
  • Local and network licenses restricted to a single concurrent use now function on machines with more cores than permitted, rather than being rejected.

GAMS Connect

  • Adjusted the ExcelWriter to truncate automatically determined sheet names for symbol names exceeding 31 characters.
  • Added new option skipText to the ExcelWriter agent.
  • The dimension option of the LabelManipulator now accepts lists of multiple dimensions.
  • Dropped support for Postgres driver psycopg2 in favour of psycopg(3). See the documentation for information on how to adjust existing code to be compatible.
  • Improved trace output of the Concatenate agent.
  • Added new option globalCommit to the SQLWriter agent.
  • Updated the table-checking query for connectionType: mysql for the SQLWriter agent to ensure validation occurs exclusively within the active database connection.

GMSPython

  • Python has been upgraded to version 3.12.13.
  • Pandas has been upgraded from version 2.3.3 to 3.0.3. We are explicitly highlighting this change because the major version upgrade may break custom embedded Python code.
  • Dropped the package psycopg2-binary in favor of psycopg[binary].

Documentation

  • Added documentation for the $slice dollar control option. This directive, a variant of $clear, allows selective removal of elements from symbols during compilation. While $slice has been available previously, it was not documented until now.

Solvers

Solver Options

  • Solvers CONOPT3, CONOPT, CONVERT, CPLEX, GUROBI, KNITRO, MINOS, ODHCPLEX, SNOPT, and XPRESS use a refactored option library for reading option files. Reading options may behave differently for these solvers in some cases. Please contact support@gams.com if there is any issue. As an immediate workaround, the old option library is still available: Set the environment variable GAMS_JOAT_OPT_OLD to a GAMS system path. If left empty or set to "1", the option library from the default GAMS system will be used. This backup will be removed in a future release.

COPT, CPLEX, GUROBI, KNITRO, MOSEK, ODHCPLEX, XPRESS

ALPHAECP

  • Disabled calculation of marginals for MIP subproblems.

ANTIGONE

  • The final NLP solve (CONOPT or SNOPT) to compute marginals has been disabled by default. If marginals are required, set the new option requestMarginals to 1 or 2.

BARON

  • New libraries 26.5.27.
    • Improvements in convexity identification and exploitation, including for certain second order cones.
  • The default for BARON option WantDual now depends on GAMS option requestMarginals: if requestMarginals = -1 and the model type is LP or RMIP, or if requestMarginals > 0, then WantDual defaults to 1; otherwise, WantDual defaults to 0.

CBC

  • Changed default of GAMS/CBC option solvefinal to 0, which now means that the value of GAMS option requestMarginals matters. If requestMarginals = -1 (the default), then the additional LP solve with all discrete variables in a MIP fixed will be skipped.

COPT

  • Changed default of GAMS/COPT option solvefinal to 0, which now means that the value of GAMS option requestMarginals matters. If requestMarginals = -1 (the default), then marginals will only be provided when already made available by COPT (simplex or barrier solves of LPs and QPs).

CPLEX

  • Added options eprhscheck and epoptcheck to control final solution check and determination of non-optimality and infeasible markers.
  • Changed option default of solvefinal to 0, which now means that the value of GAMS option requestMarginals matters. If requestMarginals = -1 (the default), then the additional LP solve with all discrete variables in a MIP fixed will be skipped and calcqcpduals is reset to 0 (no duals).

DICOPT

  • Disabled calculation of marginals for MIP subproblems.

Examiner

  • Add option logAllViolations. Normally, Examiner logs information only about the largest violation of each type (assuming it exceeds the given tolerance). If logAllViolations is set true, it logs a list (sorted by size) of all violations exceeding the tolerance.
  • Some cases where special values (e.g., NA, INF) were displayed improperly have been fixed.

GUROBI

HiGHS

  • New libraries 1.14.0.
    • Performance improvements in MIP solver.
      • Added singleton column stuffing to presolve.
      • Faster dominated columns reductions on some problems.
      • Specialized probing and clique detection for single constraints consisting solely of up to 8 binary variables.
      • Detected implications, e.g., from probing, are now applied when changing variable bounds.
    • New option mip_allow_cut_separation_at_nodes to disable separation after the root node.
    • Next to Metis, also approximate minimum degree and reverse Cuthill-McKee matrix ordering are now available for HiPO. New option hipo_ordering.
    • Changed scaling of HiPO from Curtis-Reid scaling infinity-norm equilibration of the rows and columns.
    • The new primal-dual hybrid gradient first order LP solver HiPDLP has been added. HiPDLP can be selected by setting option solver to the newly added value hipdlp. cuPDLP-C (solver = pdlp) will be removed in a future HiGHS version. HiPDLP can utilize NVIDIA GPUs on systems with CUDA 13 installed (set pdlp_gpu = true).
    • Option pdlp_e_restart_method has been renamed to pdlp_cupdlpc_restart_method.
    • Replaced boolean option pdlp_scaling by bitflag option pdlp_scaling_mode.
    • New options pdlp_optimality_tolerance, pdlp_restart_strategy, pdlp_ruiz_iterations, and pdlp_step_size_strategy.
    • The IIS facility for LP is more robust and flexible now. Option iis_strategy has been changed again and is now evaluated as bitflags. New option iis_time_limit.

IPOPT

  • New libraries MUMPS 5.9.0.

LINDO, LINDOGlobal

  • The final solve for a mixed-integer program with all integer variables fixed has been disabled, unless GAMS option requestMarginals is set to 1 or 2.

MOSEK

ODHCPLEX

  • New libraries 8.21.
  • Changed option default of solvefinal to 0, which now means that the value of GAMS option requestMarginals matters. If requestMarginals = -1 (the default), then the additional LP solve with all discrete variables in a MIP fixed will be skipped and calcqcpduals is reset to 0 (no duals).

RESHOP

  • New libraries 0.4.9.

XPRESS

Tools

GAMS Studio

  • New version 1.25.0:
    • New Feature: Added markers to the scrollbar for find and search matches, breakpoints, errors, and bookmarks.
    • New Feature: Added the current license state to the status bar.
    • Added double-click action to open a GDX file reference from within a symbol table in GDXViewer.
    • Added MIRO Connector and Secure Module information to license dialog.
    • Added warning when dropping more than 99 files to the project explorer.
    • The GDX Viewer export facility now truncates automatically determined sheet names exceeding 31 characters.
    • On adding multiple files, Studio doesn't open all files anymore.
    • On opening a project, Studio opens the main file if assigned. Otherwise the project options are opened.
    • Reimplemented the GDX filter dialogs which fixes several focus and keyboard shortcut bugs, especially on macOS.
    • Fixed short blocking behavior when using quick find in a huge file.
    • Fixed matches not being updated when clearing the term in quick find.
    • Fixed initial font size for GDX and reference viewer when the font size has been changed.
    • Fixed occasional crash when updating project base path.
    • Fixed automatic numbering for projects or files with the same name in the Project Explorer that sometimes assigned the same number twice.
    • Fixed that the command line parameter filestem has been ignored for the log-file name.
    • Fixed an issue on Windows where an .opt file couldn't be saved under a different suffix, e.g. .op2.

MPS2GMS

  • New libraries HiGHS 1.14.0.
    • .lp file keywords can now be used as constraint names.
    • Changed handling of MPS sections QMATRIX and QUADOBJ regarding asymmetric matrices: Coefficients (i,j) and (j,i) of a quadratic coefficient matrix are assumed to be identical for any (i,j). If they are not identical, then one of the coefficients is ignored and the other is duplicated.

APIs

GDX

  • New libraries 7.11.21.

GMO

  • Added gmoSetNLTables to support filling tables of non-linear instructions and constants via plain C arrays.

PAL

  • Added routine palGetUsernameId() that returns the current username ID.
  • Added routine palLicenseCheck64WithCores() that tell the solver about a thread/core limit imposed by licensing.
  • Added routine palLicensedCoreLimit() that tells the solver about a thread/core limit imposed by licensing without doing other license checks.

Python

  • We plan to drop the gams.engine API with the next major release. The preferred way of interacting with GAMS Engine from Python is the use of requests library or a similar HTTP client.
  • Fixed pandas 3 compatibility issues of GAMS Connect.

Model Libraries

GAMS Data Library

GAMS Test Library