Table of Contents
32.1.0 Major release (July 31, 2020)
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 Youngdae Kim, Michaja Pehl, Thomas Rutherford, and Igor Sheleg.
Platforms
- Dropped support for Sparc Solaris and AIX systems.
GAMS System
GAMS
New default values for some GAMS options:
new default old default logOption 3 1 empty on off errMsg 1 0 errorLog 2147483647 0 lstTitleLeftAligned 1 0 putPW 32767 255 pageContr 2 3 pageSize 0 58 pageWidth 32767 255 optCR 0.0001 0.1 intVarUp 0 1 resLim 1e10 1000 solveLink 2 0 iterLim 2147483647 2e9 In order to work with the default values active in GAMS 31, copy the file
gams31config.yaml
(part of the GAMS system directory) into the location searched by GAMS for configuration files (e.g. the GAMS system directory) with the namegamsconfig.yaml
.- Extended the impact of command line parameter etLim, so that it reduces resLim for models solved automatically if that is greater than
etLim - timeElapsed
. - Added new option zeroToEps to allow reading zero values as EPS at execution time.
- Added new options procTreeMemMonitor and procTreeMemTicks to enable monitoring of a memory high-water mark for the GAMS process and all its children.
- Adjusted behavior of command line parameters restart, restartNamed, save, saveObfuscate, xsave, and xsaveObfuscate: If a file name is given including a file extension, this extension is kept. In the past it was replaced by a default extension. Also,
?
is not allowed in the file name when writing a save file anymore. - Extended influence of command line parameter inputDir, so that it also extends the search path for GDX files loaded with $gdxIn.
- Extended the search space for files included via $libInclude, extrinsic function libraries, and external equation libraries: Now, the directories
inclib
,extrinsic_functions
, andexternal_equations
, resp., are checked in all GAMS standard locations before[GAMS System Directory]/inclib
,[GAMS System Directory]
, and[GAMS Working Directory]
, respectively. - Renamed the command line parameter
execErr
to maxExecError to be in sync with the related function maxExecError. The old name is still available as a synonym. - Added command line parameter previousWork to instruct GAMS to write a workfile using the format of an older GAMS version. This is useful in particular with submission to the NEOS server.
- Adjusted the function values returned by the power functions (e.g.
x**y
). In some cases wherex
is very small and positive the derivatives may become unbounded but the function values are well-behaved and can still be computed precisely and without overflow. - Fixed a problem on Linux when the
XGD_CONFIG_DIRS
orXGD_DATA_DIRS
variables have more than 7 directory entries.
GMSPython
- Added the packages
pandas
,numpy
,openpyxl
,schema
,tqdm
and their dependencies.
macOS Installer
- New way to install GAMS on macOS using a PKG installer, see the installation notes.
Windows Installer
- Added a checkbox for enabling/disabling the creation of a start menu entry to the
Select Start Menu Folder
Wizard page. The default state of the checkbox is inherited from previous installations. - Command line argument
/noIcons
can be used in order to check theDon't create a Start Menu folder
checkbox on theSelect Start Menu Folder
page. - New command line argument
/desktopIcons=yes|no
(default:yes
) can be used in order to turn on/off the creation of Desktop icons. - The installer now writes all registry entries either to
HKEY_CURRENT_USER\Software\Classes
(current user) orHKEY_LOCAL_MACHINE\Software\Classes
(all users). - Show warning in case the system
GAMSDIR
environment variable is updated, but a userGAMSDIR
environment variable exists and not vice versa. - Always notify the operating system about changed environment variables.
- Changed the default installation location from
C:\GAMS\win64\XX.Y
toC:\GAMS\XX
(e.g.C:\GAMS\32
). - Desktop shortcut names have been changed to
GAMS IDE 32
andGAMS Studio 32
. - Start menu entry reads
GAMS XX
(e.g.GAMS 32
) instead ofGAMS XX.Y (win32/win64)
. - Fixed a bug that prevented file associations (
.gdx
and.gms
files) from working properly in certain cases.
Solvers
Bonmin, CBC, Couenne, LocalSolver, Osi links, SHOT, SoPlex
- Fixed that a setting of GAMS option iterlim to 2000000000 (the previous default) was not passed on to the solver.
CONOPT
- Added Conopt4 to the thread-safe solvers. It now can be used with solveLink=6.
CONVERT
- New output format: JuMP scalar model.
GUROBI
- Fixed a bug introduced with 31.1.0 and only partly fixed in 31.1.1 where the
GRB_LICENSE_FILE
environment variable was incorrectly dropped.
Ipopt
- Updated Mumps to 5.3.3.
KESTREL
- Kestrel interface source code has been ported from Python 2 to Python 3.
- Also on Windows, the source code of the link is now distributed instead of a binary.
- The GAMS distributed Python intepreter (
GMSPython
) is used for running the Kestrel client.
KNITRO
- New libraries 12.2.2.
- Knitro 12 adds many improvements to the Knitro mixed-integer (MIP/MINLP) branch-and-cut solver. Several new cuts controlled by Knitro user options have been introduced including mixed-integer rounding cuts, zero-half cuts and clique cuts. In addition, improvements were made to the knapsack cuts implementation.
- Knitro 12 offers several enhancements to the Knitro presolver. The presolver has been extended to allow multiple passes through the presolve operations. There are new presolve operations for variables in complementarity constraints and to tighten variable bounds.
- Knitro 12 offers efficiency and storage/memory improvements in the callable library C API - the one used in the GAMS link!
- Knitro 12.2 enables default parallelism when using multi-start or multi-algorithm features.
- Knitro 12.2 offers several performance speed-ups:
- on very large models with the default (i.e. interior-point) algorithm: potentially dramatic
- when using the limited-memory BFGS Hessian option
- in the SQP algorithm
- A number of minor bug fixes and performance improvements are included in this release: rare segmentation fault with knapsack cuts fixed, bug in convexity detection fixed, poor/slow choice of algorithm for LP sub-problems fixed, poor/slow presolve issue on MIP models fixed.
LocalSolver
- New libraries 9.5 (20200701).
- Setting iterlim to the maximal possible value (2147483647) will not change the default iteration limit of LocalSolver anymore, see also the documentation.
Mosek
- New libraries 9.2.14.
ODHCPLEX
- New libraries 5.2.2.
- New options integerTol, subOrder,
subPresolve
, zeroTol, penPerturb, and threadZeroSync have been added. The optionsnewCallback
and variableClean allow for more option values. - New handling of solutions that are not quite integer but within the integer feasibility tolerance of CPLEX but become infeasible if one rounds the integer variables. ODHCPLEX used to reject such solutions (while in CPLEX (and other MIP solvers) such solutions are considered acceptable for the user).
SoPlex
- Setting iterlim to the maximal possible value (2147483647) will not change the iteration limit of SoPlex anymore, so that SoPlex will run without a limit.
XPRESS
- New libraries 8.8.5.
- New solver: XPRESS SLP and XPRESS Knitro for nonlinear (mixed-integer) programming.
- XPRESS SLP is a sequential linear programming (SLP) solver and XPRESS Knitro equals Knitro, but the problem is passed through the XPRESS nonlinear presolve.
- Both can solve convex MINLP to global optimality and act as a heuristic method for general nonconvex problems.
- XPRESS SLP offers a multistart to run different configurations in parallel or to start with multiple initial guesses.
- If both XPRESS SLP and XPRESS Knitro are licensed, XPRESS can choose the nonlinear solver automatically based on instance attributes.
- For more information about the XPRESS SLP algorithm, see FICO Xpress Optimization Help (Nonlinear Reference Manual).
- XPRESS SLP and XPRESS Knitro are available on all supported platforms.
- XPRESS SLP requires a license for continuous nonlinear models or for mixed-integer nonlinear models.
- XPRESS Knitro requires a GAMS/Knitro license in addition to the XPRESS license for (mixed-integer) nonlinear models.
Tools
CHK4UPD
- If the components of the checked license have different expiration dates, the validity of the license always refers to the base component now. In the past, the component with the oldest expiration date was used.
FINDTHISGAMS
- Support for registry key changes of the Windows installer has been added.
- New command line parameters
list
,delete
,write
, andide
. See the documentation for detailed information.
GAMS Studio
- New version 1.3.3.
- New feature: Code Folding
- Shortcut
Alt+L
switches folding state of the current block. - Shortcut
Alt+O
folds andShift+Alt+O
unfolds all foldable blocks. - Code folding is possible for pairs of parentheses that span multiple lines or Dollar Control Options that come in pairs.
- Shortcut
- New feature: Remote execution on NEOS Server for Optimization
- Models can be executed remotely via the menu
GAMS
->Run NEOS
or the execute button located in the toolbar. - Note: Usually it takes some time before the GAMS version at NEOS gets updated. During that time one might get an error because of an incompatible workfile version. This can be avoided by setting the command line parameter previousWork to 1.
- Models can be executed remotely via the menu
- New feature: Navigation History
Mouse button 4/5
orAlt+Left/Right
on Windows/Linux andCtrl+[/]
on macOS can now be used to jump back to a previous text cursor positions or forward again. This is helpful to quickly navigate between different locations in files that one is currently working with.
- New feature: Distraction Free Mode
- Distraction Free Mode quickly turns off everything except for the editor window for better focus on modeling work. This is especially useful for small screens. When leaving Distraction Free Mode all Studio widgets will be put back where they were. To switch to and from Distraction Free Mode go to the Menu > View > Distraction Free Mode, or press
Ctrl+Alt+Enter
on Windows and Linux, orCmd+Option+Enter
on macOS.
- Distraction Free Mode quickly turns off everything except for the editor window for better focus on modeling work. This is especially useful for small screens. When leaving Distraction Free Mode all Studio widgets will be put back where they were. To switch to and from Distraction Free Mode go to the Menu > View > Distraction Free Mode, or press
- New feature: Print support for text files (
gms
,txt
,lst
,dmp
, ...). This is accessible with the shortcutCtrl+P
or in the menuFile
->Print
. - Added automatic switch to first non-empty tab when searching the Model Library Explorer. The old tab selection is restored if that tab contains results again.
- Added header labels to copy actions in GDX Viewer table view. Two additional entries that allow to copy without the labels are available via the context menu.
- Added
dmp
extension to list of executable file types. - Added
Shift+Option+Up/Down
hotkey to start block-edit on macOS. - Changed terminal to native macOS Terminal on macOS.
- Stability improvements and minor bug fixes, e.g.:
- Fixed syntax highlighter not recognizing "+" and "-" in "Model" statement.
- Fixed missing
LXI
pane for files containing more than one dot. - Fixed group name for
gms
files containing more than one dot in the name. - Fixed rare random crash when opening the MIRO Model Assembly File dialog.
- Fixed some icons not following selected theme.
- Fixed line wrapping behavior not following settings.
- Fixed that bookmarks in help view were not being saved permanently.
- Fixed crash on reading LXI files containing empty lines.
- Fixed some issues with the license file detection and info in the "About GAMS" dialog.
- Fixed missing reload if a opened GDX file gets recreated.
- New feature: Code Folding
MODEL2TEX
- Source code of model2tex has been ported to Python 3 and does not support Python 2 anymore.
- Distribute source code instead of binary on Windows.
model2tex.exe
has been replaced bymodel2tex.cmd
. - The GAMS distributed Python interpreter (
GMSPython
) is used for executing model2tex. - Command line parameter
-e
has been deprecated and will be removed in the future.
APIs
- Automatically finding a GAMS installation from the Windows registry has been changed according to the changes to the Windows installer (
[HKEY_CURRENT_USER|HKEY_LOCAL_MACHINE]\Software\Classes\gams.location
). - The performance of the Object-oriented APIs (in particular the class
GAMSDatabase
) has been improved.
.NET
- Change to
GAMSWorkspace.AddCheckpoint
: ThecheckpointName
is now determined automatically as well when given asstring.Empty
, not only when set tonull
or being omitted.
Python
- As announced, dropped support for Python 2. The Object-oriented API as well as the expert-level APIs can be used with Python 3.6, Python 3.7, and Python 3.8.
- An experimental object oriented data interface called
gamstransfer
has been added. This interface is built on the expert-level Python APIs and simplifies the work of reading and writing GDX files. The underlying data structure is built on structured numpy arrays; this structure allows data to be easily converted directly to Pandas DataFrames (or other native Python data types). This release ofgamstransfer
should be considered a beta product and will be subject to changes in the future that may result in compatibility issues. - New experimental API
gams2numpy
for communicating data between GAMS and numpy arrays has been added. This release ofgams2numpy
should be considered a beta product and will be subject to changes in the future that may result in compatibility issues.
Model Libraries
GAMS Model Library
New models:
GAMS Test Library
New models:
- zerotoeps1.gms : Test data loading with $onEps and option zeroToEps (821)
- idir01.gms : Test including files from different locations (822)
- mrw02.gms : Test MessageReceiverWindow.exe from Python (823)
- memmon1.gms : Test procTreeMemMonitor=1 behavior (824)
- gams2numpy01.gms : Test gams.core.numpy Python API string mode (826)
- gams2numpy02.gms : Test gams.core.numpy Python API raw mode (827)
GAMS API Library
New models:
- Pgamstransfer.gms : Test gamstransfer API (58)
- Pgams2numpy.gms : Test gams.numpy API (59)
Solver/Platform availability matrix
x86 64bit MS Windows | x86 64bit Linux | x86 64bit macOS | |
---|---|---|---|
ALPHAECP 2.10 | ✔ | ✔ | ✔ |
ANTIGONE 1.1 | ✔ | ✔ | ✔ |
BARON | ✔ | ✔ | ✔ |
BDMLP | ✔ | ✔ | ✔ |
BONMIN 1.8 | ✔ | ✔ | ✔ |
CBC 2.10 | ✔ | ✔ | ✔ |
CONOPT 3 | ✔ | ✔ | ✔ |
CONOPT 4 | ✔ | ✔ | ✔ |
COUENNE 0.5 | ✔ | ✔ | ✔ |
CPLEX 12.10 | ✔ | ✔ | ✔ |
DECIS | ✔ | ✔ | ✔ |
DICOPT 2 | ✔ | ✔ | ✔ |
GLOMIQO 2.3 | ✔ | ✔ | ✔ |
GUROBI 9.0 | ✔ | ✔ | ✔ |
GUSS | ✔ | ✔ | ✔ |
IPOPT 3.13 | ✔ | ✔ | ✔ |
KESTREL | ✔ | ✔ | ✔ |
KNITRO | ✔ | ✔ | ✔ |
LGO | ✔ | ✔ | ✔ |
LINDO 12.0 | ✔ | ✔ | ✔ |
LINDOGLOBAL 12.0 | ✔ | ✔ | ✔ |
LOCALSOLVER 9.5 | ✔ | ✔ | ✔ |
MILES | ✔ | ✔ | ✔ |
MINOS | ✔ | ✔ | ✔ |
MOSEK 9 | ✔ | ✔ | ✔ |
MSNLP | ✔ | ✔ | ✔ |
NLPEC | ✔ | ✔ | ✔ |
ODHCPLEX 5 | ✔ | ✔ | |
PATH | ✔ | ✔ | ✔ |
SBB | ✔ | ✔ | ✔ |
SCIP 7.0 | ✔ | ✔ | ✔ |
SHOT 1.0 | ✔ | ✔ | ✔ |
SNOPT | ✔ | ✔ | ✔ |
SOLVEENGINE | ✔ | ✔ | ✔ |
SOPLEX 5.0 | ✔ | ✔ | ✔ |
XA | ✔ | ✔ | |
XPRESS 35.01 | ✔ | ✔ | ✔ |
32.2.0 Minor release (August 26, 2020)
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 Charles Chan, Ricardo Lima, Sandro Konrad Luh, Ami Reznik, Tom Rutherford, and Berk Uzundere.
GAMS System
GAMS
- Introduced new values 3 and 4 for option savePoint that allow to save the point file in the scratch directory.
- Fixed a bug which in rare cases caused GAMS to write files exceeding 80,000 characters per line (and thus the maximum line length GAMS can handle) when the command line parameter dumpopt was set.
- Fixed a bug in restart files that incorrectly stored the location of the GAMS configuration file (
gmscmpXX.txt
). - Fixed a bug that is related to providing the GAMS configuration file (
gmscmpXX.txt
) explicitly via command line parameter subSys. - Fixed reporting of compilation errors in encrypted input files.
- Fixed the count of discrete variables in the model statistics in case any discrete variable was fixed.
Windows Installer
- Fixed a bug that prevented registry entries from being removed correctly during uninstallation.
Solvers
Gurobi
- New libraries 9.0.3.
Lindo/LindoGlobal
- New libraries 12.0.208.
- Fixed a rare problem with stochastic problems.
Mosek
- New libraries 9.2.18.
SCIP
- New libraries 7.0 (80549b8905).
- PaPILO updated to 1.0 (d0e5444cd).
SoPlex
- New libraries 5.0 (3623dbc0).
Tools
GAMS Studio
- New version 1.3.4.
- Minor bug fixes, e.g.:
- Show community license type in the solver matrix.
- Fixed missing tab browser button when Studio starts in maximized or full-screen mode.
- Fixed insertion of auto-closing characters in unwanted situations (e.g. beginning of a word).
- Minor bug fixes, e.g.:
GDX2VEDA
- Fixed a bug which in rare cases crashed the tool for large data sets on Windows.
Model Libraries
GAMS Test Library
Updated models: