52 Distribution
Table of Contents
52.0.0 Beta release (November 12, 2025)
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 Scott McDonald.
Platforms
GAMS System
GAMS
- Adjusted command line parameters, options, and the model attributes limCol and limRow to now accept a value of -1. This new value indicates that there should be no limit on the number of columns or rows printed to the respective listings.
- Improved performance when writing the Equation Listing to the output file, particularly for equations that contain a large number of identifiers.
- Extended the Include File Summary to list the include level of a file explicitly.
- As announced, this release completely drops the support of
=C=equations. They are not recognized as valid syntax anymore. - Better handling for UTF-16 file and path names on Windows.
- The solution report for MCP models has been corrected for cases involving flipped equations (e.g.,
model m / -myEqu.x /). Previously, the solution listing for such equations could show inconsistent.LOWER,.LEVEL, and.UPPERvalues, mixing attributes from both the original and the negated form. The report now consistently reflects the attributes of the flipped equation as it was passed to the solver. - The error message for assigning a command-line parameter to a value outside of their valid range has been enhanced. These values are ignored now and not projected into the valid range.
- Fixed a bug in the GAMS execution system for set assignments that use the target set itself as a controlling domain subset on the RHS (e.g.,
SetA(i) = sum(SetA(j)$cond, ...)). - Fixed problem with $if UelExist 'label' if
labelstarts with blanks.
GAMS Connect
- Added support for reading Excel binary workbooks (
.xlsb) to the ExcelReader agent. This feature is available on Windows only and requires an Excel installation.
GMSPython
- Added the package
xlwingsto GMSPython on Windows.
Solvers
ANTIGONE, CBC, HiGHS, Ipopt, SCIP, SHOT
- New Intel MKL libraries 2025.3 for Linux/x86_64.
- New ARM Performance libraries 25.07.1 for Linux/arm64.
COPT
- New libraries 8.0.1.
- New global nonconvex (MI)QCP solver. Set option NonConvex to new value 2 to force use of global solver.
- New options LogLevel, PreRootHeurLevel, MipRepair, and MipNLPIterLimit.
CPLEX
- Fixed incorrect check for number of quadratic equations, which could have lead to a crash (very unlikely cases).
GUROBI
- New libraries 13.0.0.
- Performance improvements across a variety of model families, notably on MIP and MINLP.
- A new nonlinear barrier method is included as a preview feature. This solver makes it possible to find local optima for nonconvex continuous models more quickly than the global solver.
- Primal-Dual Hybrid Gradient (PDHG) has been added to our suite of algorithms for solving linear programs (LPs). By default, it will run on the CPU, but it has optional GPU acceleration. For the latter, a different Gurobi library is required. GAMS can provide this library on request (support@gams.com).
- Added support of
tanhandsignpowerin nonlinear constraints. - In addition to MIP starts, the tuner now considers branching priorities.
- New option nlbariterlimit: NL barrier iteration limit.
- New option pdhgiterlimit: PDHG iteration limit.
- New option nlbarcfeastol: NL barrier complementarity tolerance.
- New option nlbardfeastol: NL barrier dual feasibility tolerance.
- New option nlbarpfeastol: NL barrier primal feasibility tolerance.
- New option pdhgabstol: PDHG absolute feasibility tolerance.
- New option pdhgconvtol: PDHG convergence tolerance.
- New option pdhgreltol: PDHG relative feasibility tolerance.
- New option fixvarsinindicators: Controls conversion of indicator constraints in the fixed model.
- New option improvestartwork: Trigger solution improvement.
- New option starttimelimit: Time limit for MIP start sub-MIP (in seconds).
- New option startworklimit: Work limit for MIP start sub-MIP (in work units).
- New option masterknapsackcuts: Master Knapsack Polytope cut generation.
- New option norelheursolutions: Limits the number of solutions found by the NoRel heuristic.
- New option optimalitytarget: Controls the strategy to solve continuous nonlinear nonconvex models.
- Changed lower bound and default of option lpwarmstart to -1 (auto).
- Changed option nlpheur from boolean to integer with values -1, 0, 1, 2, 3.
- Changed default of option tunetimelimit to 86400.
- Added value -1 to option Threads.
- Fixed possible failure when adding nonlinear constraints.
HiGHS
- New libraries 1.12.0.
- Added new multi-threaded interior point solver HiPO. New values
ipx, andhipofor option solver: Settingsolver=ipmwill now choose between the interior-point solvers IPX and HiPO. New options hipo_block_size, hipo_parallel_type, and hipo_system. - New options mip_lp_solver and mip_ipm_solver to determine the solver for LPs in the MIP solver.
- IIS now detects when the bounds on a constraints activity (implied by variable bounds) are incompatible with the constraint sides. Options iis_strategy now takes 3 values: 0 is the new light strategy that only checks for incompatibility of constraint activities and sides and is the new default, 1 priorities rows (previously 0 and previously the default), 2 priorities columns (previously 1).
- New option write_iis_model_file to write the LP solved by IIS to a file.
- Trivial MIP primal heuristic now runs before Feasibility Jump. Feasibility Jump may use a known feasible solution as starting point.
- Basis files are now written in a new format (v2) that contains made-up column and row names.
- Improved logging for the interior-point and PDLP solvers.
- Added new multi-threaded interior point solver HiPO. New values
- The number of iterations spend for interior-point, crossover, or PDLP algorithms are now also returned in the iterUsd model attribute.
LINDO/LINDOGLOBAL
- New libraries 15.0.238.
XPRESS
- New libraries 46.01.01:
- Optimizer:
- The GPU port of the Primal-Dual Hybrid Gradient (PDHG) algorithm is now available as a beta.
- The default solver for linear optimization problems has been changed to the concurrent solver. The default behavior is to always run the barrier and dual simplex algorithms, with the primal simplex algorithm run only if the problem looks suitable. If only a single thread is available or a starting basis is present, it will instead default to dual simplex.
- Performance improvements:
- The default number of background threads at the root node was reduced in order to reduce the memory consumption on machines with large core counts. To force a specific number of background threads, use the backgroundMaxThreads control.
- Improved management of duplicated and dominated cutting planes.
- Improved strategies to measure the progress of cutting planes at the root node.
- Background tasks running in parallel at the root node are now also used to improve the dual bound of the overall solution process.
- Improved performance of several default heuristics on instances with indicator constraints.
- Introduced a new infeasibility reduction strategy in preroot parallel heuristics.
- Introduced an adaptive learning of infeasibility reduction strategies in preroot parallel heuristics.
- Nonlinear:
- Knitro has been upgraded to the latest version, 15.0.1.
- Performance improvements:
- Continuous nonlinear problems solved to local optimality now go through the full linear presolve.
- \(x^k\) for binary \(x\) and \(k > 0\) is now simplified to \(x\).
- Global:
- Added a special branching rule in case a denominator becomes zero. In this case, the denominator will be branched more than the feasibility tolerance away from zero to ensure validity of calculations. In case solutions with a denominator within the default feasibility tolerance are sought, the feasibility tolerance needs to be adjusted accordingly.
- Performance improvements:
- Added SDP-cuts. These can be influenced by the new sdpCutStrategy control.
- Added Optimization-Based Bound Tightening (OBBT), a bound reduction technique based on the initial linear relaxation of a mixed-integer nonlinear optimization problem; it can be used with the new control globalPresolveOBBT (default value -1: automatic), with values from 0 (off) to 3 (aggressive). Currently, due to its computational cost, the user must explicitly set values 1 to 3 to enable it.
- Reduced memory consumption by restricting the total number of cuts to be added to branching candidates in extreme cases.
- Improved RLT cuts for squared columns.
- New option deterministicLog: Suppress non-deterministic log information in the standard MIP log.
- New option gpuPlatform: Controls what kind of GPU support is enabled overall in Xpress.
- New option sdpCutStrategy: Level of SDP cutting planes separation: How aggressively SDP cuts should be separated.
- New option globalPresolveOBBT: Controls the amount of work performed by Optimization-Based Bound Tightening (OBBT).
- New option barHGOps_restartL2 (bit 4 of barHGOps): Use L2 norm to measure solution quality.
- New option barHGRelTol: Relative feasibility tolerance for the hybrid gradient algorithm.
- New option barHGGPU: Whether to use a GPU for the hybrid gradient algorithm.
- New option barHGPrecision: Whether to use single or double precision floating-point arithmetic in the hybrid gardient algorithm.
- New option barHGGPUBlockSize: Size of CUDA blocks to use for the GPU calculations.
- Changed default and lower bound of knitro_feastol to -1 (auto).
- Changed default and lower bound of knitro_opttol to -1 (auto).
- Changed upper bound of knitro_linsolver to 9.
- Changed default of knitro_lmsize to 8.
- Optimizer:
Tools
GAMS Studio
- New version 1.23.0:
- Added storing of the fold state for known source files.
- Added keyboard navigation and selection to the tables of the model library explorer.
- Added filter and search capability to the Project Explorer.
- Added switching of the default working directory when switching the project.
- Added instant save to the project options as long as the paths for working directory and base directory exist.
- Fixed broken links to option document when pressing F1 in solver option editor.
- Improved connect editor workflow by linking agent and option name to corresponding entry in connect document with F1 hotkey.
- Removed Windows 10 message box to disable the Help View to prevent crashes (Windows 10 reached its EOL).
MPS2GMS
- Added support for reading decomposition information from
DECfiles and assigning it tostageattributes of variables and equations. New parametersDECandSTAGESHIFT. - Added scalar parameter
objsenseto GDX file to indicate objective sense. - New parameter
CONVERTSENSEto request a specific objective sense in the output. - A GAMSPy program is now written in addition to the GAMS program. New parameter
PY. - Writing the GAMS program can now be disabled by setting parameter
GMS=.
APIs
C++ API
- New version 1.2.1.
- Improved setting of SSL options for HTTPS requests when sending a job to GAMS Engine.
GEV
- Added constant
gevMaxEvalThreads.
Python
- As announced, support for Python 3.9 has been dropped.
.NET
- New method
GAMSModelInstance.Cleanupthat allows to explicitly close a license session. - Improved performance when calling the
GAMSWorkspaceconstructor.