23.6 Distribution
Table of Contents
23.6.2 Major release (December 13, 2010)
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 Wolfgang Britz, Nico Keyaerts, Leon Lasdon, Xiang Li, Timo Lohmann, Sebastian Ritter, Yannick Rombauts, Tom Rutherford, Uwe Schneider, Stefan Vigerske, Achim Wechsung, and Gyeongbeom Yi.
GAMS System
GAMS
- Added the function
RandBinomial(n,p)
which generates random numbers from the Binomial distribution where n is the number of trials and p the probability of success for each trial. - Added the gams date and release functions to $eval and [..] constant evaluations:
jdate
,jtime
,gyear
,gmonth
,gday
,gdow
,gleap
,ghour
,gminute
,gsecond
,gmillisec
,jstart
,jnow
,gamsversion
,gamsrelease
. - Modified operator precedence binding of
IMP
(->),EQV
(<->),OR
andXOR
. These operator used to have the same precedence binding, so with the usual left to right evaluation an expression likea -> b OR c
used to be equivalent to(a -> b) OR c
.IMP
andEQV
have now a lower precedence binding, so the expressiona -> b OR c
is now equivalent toa -> (b OR c)
. - There is no longer a practical limit for the number of non-linear instructions for a single equation.
- New interpretation of value
default
for command line parametersgdx
andrf
:default
is interpreted as the input file name, this means for example, thatgams trnsport gdx=default
will write the filetrnsport.gdx
. Along the same lines,gams trnsport rf=default
will write the reference filetrnsport.ref
. - New command line parameter
Threads
: Controls the number of threads to be used by a solver. It can also be set as GAMS option or model attribute. The model attribute has the highest priority, the command line parameter the lowest. Non-positive values are interpreted as the number of cores to leave free so setting threads to 0 uses all available cores while setting threads to -1 leaves one core free for other tasks.
APIs
- Determine platform dependent library name automatically, no requirement for compiler flags anymore
- Delphi API files also support Delphi 2010
- Python API files comprehensively improved
- More Fortran examples
Utilities
Chk4Upd
- The new tool chk4upd checks if there is a newer version of GAMS available than the one you are running. It checks for the most recent version available as well as for the newest version you can run with your license in case your maintenance and support is expired. By default it reads gamslice.txt located next to it. Alternatively, you can specify another license on the command line. In addition to the command line tool you will find an integration in the GAMS IDE at Help -> Check for GAMS Update.
GamsIDE
- Integration of 'Check for GAMS Update' in the Help Menu
- The 'Find in Files' option now allows for one or more sub-directories to be excluded from the search
- The selection to use a different GAMS system has been changed. We no longer specify the gams.exe executable but define the alternate GAMS system directory instead.
GDXDiff
- The function to test if two values are different when Eps/RelEps has been specified was changed. The documentation describes the new implementation.
GDXMRW
- GDXMRW is a collection of utilities that make it easier and more reliable to share data between GAMS and Matlab and that allow the Matlab user to call GAMS using something similar to a subroutine interface. Formerly contributed software, these utilities were integrated into GAMS Distribution 23.4 and have been updated and improved since then.
XLSDump
- This new program will write all worksheets of an Excel workbook to a gdx file. Unlike GDXXRW, the program does not require that Excel is installed. Windows platforms only.
Solvers
Baron
- Option ExtNLPsolver allows to specify an option file for the GAMS NLP solver chosen (e.g.
ExtNLPSolver conopt.1
)
Coin-OR
- New libraries
- BONMIN 1.4
- CSDP 6.1.1
- CSDP now also available on Solaris x64 on Intel
- The old names COINCPLEX, COINGUROBI, COINMOSEK, and COINXPRESS are not available anymore. Please use the new names OSICPLEX, OSIGUROBI, OSIMOSEK, and OSIXPRESS introduced with distribution 23.4.
Conopt
- Supports in-core communication (
solvelink=5
) - Dropped support of Conopt 2 (old version of Conopt)
Cplex
- New libraries 12.2.0.1
EMP
- The emp information file now supports block-wise definition
- A flip operator (
-
) was introduced, see model flipper (50)
- A flip operator (
Gurobi
- New libraries 4.0
- Quadratic programming: The Gurobi Optimizer now supports models with quadratic objective functions. The new version includes primal simplex, dual simplex, and parallel barrier optimizers for continuous QP models, and a parallel branch-and-cut solver for Mixed Integer Quadratic Programming (MIQP) models.
- Concurrent optimizer: The Gurobi Optimizer now allows you to run multiple algorithms simultaneously when solving a linear continuous model on a multi-core machine. The optimizer returns when the first algorithm solves the model. We include both a standard concurrent optimizer and a deterministic concurrent optimizer. The latter returns the exact same solution every time you run it, while the former can sometimes return different optimal solutions from one run to the next. The former can sometimes be significantly faster.
- MIP performance: The MIP solver is faster in release 4.0. These improvements do not require any parameter changes.
- LP performance: The simplex and barrier solvers are slightly faster in release 4.0. We have also improved the numerical stability of the primal simplex solver and the barrier crossover algorithm.
- Delayed MIP strategy change: The Gurobi Optimizer now gives you the option to change a few MIP parameters in the middle of the optimization in order to dynamically shift the search strategy. Specifically, two new parameters, ImproveStartGap and ImproveStartTime, allow you to specify when the algorithm should modify the values of a few parameters that control the intensity of the MIP heuristics. By setting one or both of these parameters to non-default values, you can cause the MIP solver to switch from its standard parameter settings, where it tries to strike a balance between finding better solutions and proving that the current solution is optimal, to a set of parameter values that focus entirely on finding better solutions.
- New approach to choosing the LP algorithm: The functions previously controlled by parameters LPMethod and RootMethod are now controlled by parameters Method and NodeMethod. Use Method to choose the algorithm for solving a continuous model, or for solving the root relaxation in a MIP model. Use NodeMethod to choose the algorithm for solving node relaxations in a MIP model.
- Deprecated options:
LPMethod
andRootMethod
- New options
Method
: Controls the algorithm used to solve continuous linear and quadratic models. This parameter also selects the algorithm used to solve the root node of a MIP model.NodeMethod
: Chooses the algorithm used to solve node relaxations in a MIP model.ModKCuts
: Controls the generation of mod-k cuts.ImproveStartGap
: Allows you to specify the optimality gap at which the MIP solver resets a few MIP heuristics parameters in order to shift the attention of the MIP solver to finding the best possible feasible solution.ImproveStartTime
: Allows you to specify the elapsed time at which the MIP solver resets a few MIP heuristics parameters in order to shift the attention of the MIP solver to finding the best possible feasible solution.PreMIQPMethod
: Chooses the presolve transformation performed on MIQP models.PSDTol
: Sets a limit on the amount of diagonal perturbation that the optimizer is allowed to do on the Q matrix for a quadratic model. If a larger perturbation is required, the optimizer will terminate with a message that Q is not positive semi-definite.
Knitro
- New libraries 7.0.0
- Supports the MultiStart feature in Knitro
- Supports in-core communication (
solvelink=5
) - Supported on 64bit Mac and 64bit Solaris on Intel
- Dropped support on Solaris Sparc and Sparc64
Lgo
- supports in-core communication (
solvelink=5
) - support of external equations
Mosek
- New libraries 6.0.96
- Supports in-core communication (
solvelink=5
) - Dropped support on Solaris Sparc and Sparc64
Scip
- New libraries 2.0 ([more details] (https://www.scipopt.org/download/files/SCIP-release-notes-2.0))
- The GAMS/SCIP interface now also supports semicontinuous and semiinteger variables
- GAMS/SCIP now uses SoPlex 1.5.0 as LP solver
Xa
- Dropped support on Solaris Sparc and Sparc64
Xpress
- Supports in-core communication (
solvelink=5
) - New libraries 21.01
Model Libraries
GAMS Data Library
- GDXXRWExample15 (76): Write spreadsheet using a filter
- GDXXRWExample16 (77): Write spreadsheet using text and hyperlinks
- tompivot (78): Little GAMS Program from Tom Rutherford that Illustrates Report Generation with Excel
- readdata (79): Read Data from .inc, .xls, .mdb and .csv file
GAMS EMP Library
- flipper (50): Test of flipping equations
- scarfemp-dem (51): Scarf's Activity Analysis Example
- scarfemp-altdem (52): Scarf's Activity Analysis Example - non-closed form demand function
- scarfemp-primal (53): Scarf's Activity Analysis Example
- scarfemp-dual (54): Scarf's Activity Analysis Example
- scarfexpend (55): Scarf's Activity Analysis Example
- pies (56): PIES Energy Equilibrium
- exc2x2emp (57): pure exchange model (ie no production)
- exc2x2emp-dem (58): pure exchange model (ie no production)
GAMS Model Library
- relief (353): Relief Mission
- spatequ (354): Spatial Equilibrium
GAMS Test Library
- emp09 (492): Test initial levels for equilibrium EMP models
- xerr1 (493): External Function Errors: RHS wrong
- xerr2 (494): External Function Errors: Aij wrong
- cerr1 (495): Cone Equation Errors
- merr1 (496): Matrix Errors
- mip02 (497): Check on MIP solution value
- mip03 (498): Test for zero gap when optcr and optca set to zero
- emp10 (499): Test of EMP equilibrium models and flip operator
- emp11 (500): Test EMP formulations of scarfmcp
- empdisj2 (501): Test disjunctions involving the objective
- gdxxrw6 (502): Test for dset reading problem
- qcp06 (503): Nonlinear model cannot be solved as QCP
- gdxdump1 (504): Use GdxDump NoData on Transportation Problem
- lindorng (505): Test for LindoGlobal's CheckRange Option
Solver/Platform Availability Matrix
Solver/Platform availability - 23.6 December 13, 2010 | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
x86 MS Windows |
x86_64 MS Windows |
x86 Linux |
x86_64 Linux |
Sun Sparc SOLARIS |
Sun Sparc64 SOLARIS |
Sun Intel SOLARIS |
IBM RS-6000 AIX 5.3 |
Mac Intel32 Darwin |
Mac x86_64 Darwin |
|||||
ALPHAECP | ||||||||||||||
BARON 9.0 | ||||||||||||||
BDMLP | ||||||||||||||
COIN-OR | ||||||||||||||
CONOPT 3 | ||||||||||||||
CPLEX 12.2 | ||||||||||||||
DECIS | 32bit | |||||||||||||
DICOPT | ||||||||||||||
GUROBI 4.0 | ||||||||||||||
KNITRO 7.0 | ||||||||||||||
LINDOGLOBAL 6.1 | 6.0 | 6.0 | ||||||||||||
LGO | ||||||||||||||
MILES | ||||||||||||||
MINOS | ||||||||||||||
MOSEK 6 | ||||||||||||||
MPSGE | ||||||||||||||
MSNLP | 32bit | |||||||||||||
NLPEC | ||||||||||||||
OQNLP | 32bit | 32bit | ||||||||||||
PATH | ||||||||||||||
SBB | ||||||||||||||
SCIP | ||||||||||||||
SNOPT | ||||||||||||||
XA | 32bit | |||||||||||||
XPRESS 21.01 |
23.6.3 Maintenance release (February 15, 2011)
- Cmex: Fix for variable level projection
- Bonmin: Several fixes for outer-approximation based algorithms
- Cplex: New version 12.2.0.2
- Gurobi: New version 4.0.1
- Knitro: Documentation update
- Scip: New version 2.0.1
- Xpress: Fix for crash on 64 bit Solaris
- McCarl Guide: Updates for 23.6
- Gdxxrw: Includes system error message when we cannot start Excel
- Gdxmrw: Minor bugfixes
23.6.4 Maintenance release (April 01, 2011)
- CMEX: Maximal nested includes were raised to 40
- Mosek: New Version6 Rev 105
- Lindoglobal: New Version 6.1.1.553
- Conopt: New Version 3.14W
- Xpress: Memory leak fix
- Coin: Solver fixes
- JAMS: Updates for disjunctions
- GDXXRW: Fixes
- GDXMRW: Updates
- McCarl and GDXUtils: Documentation updates
- Model Libraries: Updates
23.6.5 Maintenance release (April 08, 2011)
- CMEX: Bug fix related to situations with very large number of labels in connection with a restart with continued compilation