29 Distribution
Table of Contents
29.1.0 Major release (November 15, 2019)
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 Marcel Adenauer, David Bernal Neira, Erwin Kalvelagen, and Scolan Simon.
Platforms
- As announced, dropped support for macOS 10.12 (Sierra).
- After more than 20 years we plan to drop support for 32-bit MS Windows with the next major release. Some components, e.g., GAMS IDE and gdxxrw, will remain 32-bit executables in the 64-bit MS Windows GAMS distribution.
- We plan to drop support for MS Windows 7 with the next major release.
GAMS System
GAMS
- Extended the GAMS log to print out the Double Dash Parameters set in addition to the non-default Command Line Parameters.
- Added dollar control option $setDDList.Cont to allow to define a list of double dash parameters to be checked over multiple lines.
- Added new ways to execute external programs which implicitly check the errorLevel returned and raise a compilation or execution error if it is not zero, namely $call.checkErrorLevel, $hiddencall.checkErrorLevel, execute.checkErrorLevel, put_utility exec.checkErrorLevel and put_utility shell.checkErrorLevel. This behavior can also be triggered without using the
checkErrorLevel
suffix by setting $onCheckErrorlevel and checkErrorLevel, respectively. - Added command line option captureModelInstance to capture all model instances generated and solved by a solve statement during a GAMS run.
- Allow to declare a parameter as table without entering data.
- Added new Dollar Control Options eval.Set, evalGlobal.Set, and evalLocal.Set to define a compile-time variable based on the content of a GAMS set.
- Removed limit of 10,000 columns in table declaration.
- Changed trace record fields of quadratic model types from historic to today's names (QP --> QCP, QMIP --> MIQCP, RQMIP --> RMIQCP).
- The
gams.exe
andgamskeep.exe
programs on 64-bit Windows are now native 64-bit executables. Because of some technical requirements related to the Interrupt functionality, the IDE invokes GAMS via the new 32-bit programgams32.exe
. - Fixed wrong return string for
%
gams.action
%
. - Fixed a problem with interval evaluation for Extrinsic Functions.
- Fixed a problem with GAMS parameter scriptExit when running from the object-oriented APIs, GAMS Studio, or GAMS IDE.
- Fixed a problem with trace record field ETSolve which reported
NA
always. - Fixed a problem with potentially wrong explanatory text when implicit sets are loaded using $load.
Installer
- The DMG installer for macOS has been reorganized and is now notarized, so that it should work on macOS 10.15.
- The selfextracting archive for macOS is now a 64-bit application.
Solvers
ANTIGONE, Bonmin, Couenne, Ipopt, SCIP
- Updated Intel MKL libraries to version 2019.5 on Linux and macOS.
- Updated Intel MKL libraries to version 2018.4 on Windows 64-bit again.
CBC
- New libraries.
CONOPT
- New library 4.15 with bug fixes.
- Option
DF_Method
has been replaced by the options Tol_Def_Mult andTol_Def_Ini
.
Convert
- Fixed a bug that caused a crash with option
nlp2mcp
selected.
DICOPT
- Fixed so called "integer cuts" when both binary and integer variables are present. DICOPT generated two integer cuts in this case, one that excluded the current values of binary variables and another one that excluded the current values of integer values. Now a single combined cut is generated, which allows that the values of the binary variables can repeat if the values of the integer values change and vice versa.
- Setting option weight to a value larger 1020 now disables the augmented penaly relaxation, that is, linearizations of nonlinear equations are added as hard constraints to the MIP relaxation instead of soft constraints.
- Enabling option convex now changes the default for option weight to
maxdouble
.
Examiner
- Added option objvarAutoAdjust to adjust objective variable to make objective equation feasible for models that allow objective reformulation.
Lindo/LindoGlobal
- New libraries 12.0.169.
- Added support for function
signPower
.
LocalSolver
- New libraries 9.0 (20191004) for Linux, macOS, and 64-bit Windows.
- Performance improvements on packing, routing, and scheduling problems as well as on nonlinear continuous problems.
LGO
- Fixed a bug in the computation of the best feasible solution - an uninitialized variable was used.
MOSEK
- New libraries 9.1.1.
- Correct rejection of problems with non-quadratic nonlinear objective function when constraints are linear.
SoPlex
- New libraries 4.0 (083219e0).
SCIP
- New libraries 6.0 (a15f6c41).
Tools
GAMS Studio
- New version 0.13.2
- Stability and performance improvements.
- Allow to adjust the numerical precision in the GDX Viewer.
- Added dialog to create/update license file (pops up when a license is in the user's clipboard and "About GAMS" is opened).
- Added full screen mode (shortcut on Windows and Linux:
ALT+Return
, shortcut on macOS:META+CMD+F
). - Added auto-resizing of columns when opening the Reference File Viewer.
- Reworked process log to better handle long and fast output.
- Improved behavior of
F1
(Help) Key: Studio now opens widget specific help if available. - Renamed "Output View" to "Process Log".
- Added a tutorial about the usage of GAMS Studio to the documentation.
- As announced, dropped Studio for 32-bit Windows.
Object Oriented APIs
Python
- Added support for Python 3.7 on Windows 64-bit, Linux, and macOS.
- We plan to drop support for Python 3.4 with the next major release.
- Support for Python 2.7 officially stops January 1, 2020. We plan to drop support for Python 2.7 with some future release. If you rely heavily on the availability and support of the GAMS API for Python 2.7 please contact support@gams.com to discuss your options.
Java
- Increase the minimum version requirement of the Java Runtime Environment to Java SE 8.
- The remove operation GAMSDatabaseIterator.remove is no longer supported. The method now throws an instance of
java.lang.UnsupportedOperationException
and performs no other actions. (To remove all records of the current iterating symbol, use the method GAMSSymbol.clear instead.) - Fixed the behavior of the remove operation GAMSSymbolIterator.remove. The method now removes all records of the last GAMSSymbol element returned by an instance of GAMSSymbolIterator and can be called only once per call to GAMSSymbolIterator.next. The behavior of an iterator is unspecified if the underlying collection is modified while iterating.
Expert Level APIs
- Added support for Python 3.7 on Windows 64-bit, Linux, and macOS.
- We plan to drop support for Python 3.4 with the next major release.
- We plan to drop support for Python 2.7 with some future release.
Model Libraries
GAMS Model Library
GAMS Test Library
- Extrinsic function test models: Upgraded query-library generation code ql.py to Python 3. The default for property "description" has been changed to be an empty string.
Solver/Platform availability matrix
x86 32bit MS Windows | x86 64bit MS Windows | x86 64bit Linux | x86 64bit macOS | Sparc 64bit SOLARIS | IBM Power 64bit AIX | |
---|---|---|---|---|---|---|
ALPHAECP | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
ANTIGONE 1.1 | ✔ | ✔ | ✔ | ✔ | ||
BARON | 18.5.8 | ✔ | ✔ | ✔ | ||
BDMLP | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
BONMIN 1.8 | ✔ | ✔ | ✔ | ✔ | ||
CBC 2.10 | ✔ | ✔ | ✔ | ✔ | ||
CONOPT 3 | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
CONOPT 4 | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
COUENNE 0.5 | ✔ | ✔ | ✔ | ✔ | ||
CPLEX 12.9 | 12.6 | ✔ | ✔ | ✔ | 12.6 | ✔ |
DECIS | ✔ | ✔ | ✔ | ✔ | ✔ | |
DICOPT | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
GLOMIQO 2.3 | ✔ | ✔ | ✔ | ✔ | ||
GUROBI 8.1 | 7.5 | ✔ | ✔ | ✔ | ✔ | |
GUSS | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
IPOPT 3.12 | ✔ | ✔ | ✔ | ✔ | ||
KESTREL | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
KNITRO 11.1 | 11.0 | ✔ | ✔ | ✔ | ||
LGO | ✔ | ✔ | ✔ | ✔ | ✔ | |
LINDO 12.0 | ✔ | ✔ | ✔ | ✔ | ||
LINDOGLOBAL 12.0 | ✔ | ✔ | ✔ | ✔ | ||
LOCALSOLVER 9.0 | 8.5 | ✔ | ✔ | ✔ | ||
MILES | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
MINOS | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
MOSEK 9 | ✔ | ✔ | ✔ | ✔ | ||
MSNLP | ✔ | ✔ | ✔ | ✔ | ✔ | |
NLPEC | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
ODHCPLEX 4 | ✔ | ✔ | ||||
PATH | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
SBB | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
SCIP 6.0 | ✔ | ✔ | ✔ | ✔ | ||
SNOPT | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
SOLVEENGINE | ✔ | ✔ | ✔ | ✔ | ||
SOPLEX 4.0 | ✔ | ✔ | ✔ | ✔ | ||
XA | ✔ | ✔ | ✔ | |||
XPRESS 33.01 | ✔ | ✔ | ✔ | ✔ | 32.01 | 29.01 |