23.4 Distribution
Table of Contents
23.4.1 Major release (May 21, 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 Phil Bishop, Stefan Boeters, Pavel Borisovski, Wolfgang Britz, Michael Ferris, David Grace, Sascha Herrmann, Alexander Mitsos, Sebastian Ritter, and Tom Rutherford. We also thank Marcel Roelofs for helpful and insightful comments and discussions on Hessian computations.
Platforms
AIX
- Now built on AIX 5.3
- 64 bit
- New AIX system no longer supports the following products BARON, CONOPT2, DECIS, OSL3, OSLSE, SCENRED, SCENRED2, and XA
Mac PowerPC
- Dropped support of the Macintosh PowerPC GAMS System. Version 23.3 and older are still available for download
GAMS System
GAMS
GridScript
- The GAMS parameter
gridscript
allows to point to a customized grid submission script.
TryLinear
- GAMS checks a model for non-linearities at compile time and requires the user to specify
using nlp
in thesolve
statement. At run time these non-linearities might disappear (cancelation, multiplication of non-linear terms with 0, ...), but theusing nlp
prevented the use of a pure LP solver. The new model attribute<model>.TryLinear = 1
checks at run time whether a nonlinear model has any non-linearities and then calls the default/chosen solver for the resulting model type. - Depending on the original model type the resulting model type is:
- QCP/DNLP/NLP -> LP
- MIQCP/MINLP -> MIP
- RMIQCP/RMINLP -> RMIP
- An example was added to the Test Library: trylin01 (482)
Compile Time String Comparison
- A compile time equivalent of the predefined symbol
sameas
was added. E.g.$eval a sameas(xyz,xYz) $eval b sameas ( 'xyz' , "xyz" ) $eval c sameas (12-3,12-3) $eval d sameas (12-3,13-4) $log %a% %b% %c% %d%
will yield:1 1 1 0
Compile Time Constants
For various GAMS options compile time constants were added in order to ease the reading code if used.
- solPrint:
0%solPrint.summary%
1%solPrint.report%
2%solPrint.quiet%
- handleStatus:
0%handleStatus.unknown%
1%handleStatus.running%
2%handleStatus.ready%
3%handleStatus.failure%
- solveLink:
0%solveLink.chainScript%
1%solveLink.callScript%
2%solveLink.callModule%
3%solveLink.asyncGrid%
4%solveLink.asyncSimulate%
5%solveLink.loadLibrary%
- solveStat:
1%solveStat.normalCompletion%
2%solveStat.iterationInterrupt%
3%solveStat.resourceInterrupt%
4%solveStat.terminatedBySolver%
5%solveStat.evaluationInterrupt%
6%solveStat.capabilityProblems%
7%solveStat.licensingProblems%
8%solveStat.userInterrupt%
9%solveStat.setupFailure%
10%solveStat.solverFailure%
11%solveStat.internalSolverFailure%
12%solveStat.solveProcessingSkipped%
13%solveStat.systemFailure%
- modelStat:
1%modelStat.optimal%
2%modelStat.locallyOptimal%
3%modelStat.unbounded%
4%modelStat.infeasible%
5%modelStat.locallyInfeasible%
6%modelStat.intermediateInfeasible%
7%modelStat.intermediateNonoptimal%
8%modelStat.integerSolution%
9%modelStat.intermediateNonInteger%
10%modelStat.integerInfeasible%
11%modelStat.licensingProblem%
12%modelStat.errorUnknown%
13%modelStat.errorNoSolution%
14%modelStat.noSolutionReturned%
15%modelStat.solvedUnique%
16%modelStat.solved%
17%modelStat.solvedSingular%
18%modelStat.unboundedNoSolution%
19%modelStat.infeasibleNoSolution%
- E.g. the statments following are the same
modelname.solveLink=3; modelname.solPrint=0;
modelname.solveLink=%solveLink.asyncGrid%; modelname.solPrint=%solPrint.summary%;
- The GAMS model libraries were adjusted and now make use of these constants.
APIs
- new C# example using GDX API: apifiles\examples\example1.cs
- added C++, C# and VB.net project files to make it easier to compile the examples in Visual Studio
- added Delphi Option and Project Configuration Files to make it easier to compile the examples in the Delphi IDE and on the command line
- added Java Native Interface libraries
apifiles\common
: dropped file gamsglobals.h, use gclgms.h instead
GDXDCLIB API
- New entry points:
gdxOpenAppend
To add symbols to an existing GDX containergdxDataReadRawFast
To read data in raw mode using a callback function
Data Utilities
GDX2ACCESS
gdx2access
now supports saving the text associated with set entries in the database.- Added parameter to indicate which version of the database should be created (.mdb or .accdb)
GDXXRW
gdxxrw
now supports writing an Excel file with filters. Filtering can be switched on/off for the symbols that follow the filter option:
execute 'gdxxrw.exe test.gdx par=A rdim=3 cdim=0 rng=sheet1!a1 filter=1 par=B rdim=3 cdim=0 rng=sheet2!a1';
- Added options to write texts and hyperlinks to a spreadsheet.
MDB2GMS
mdb2gms
now supports writing of the text associated with set entries.
SQL2GMS
sql2gms
now supports writing of the text associated with set entries.
EMP
- A new model type
EMP
was added in order to provide the flexibility required for the extended mathematical programming framework. - The former solver EMP was renamed to JAMS to avoid confusion. JAMS is the default solver for EMP models.
- EMP bilevel programming now supports Variational Inequality (VI) followers in addition to maximization/minimization followers. Example: multmpec (25)
- EMP now supports equilibrium models. In contrast to bilevel programs these agent-based systems don't require a leader. Example: transeql (45)
- Lots of EMP models were added to the GAMS EMP Library.
IDE
- Fixed bug with writing a symbol with many elements to a spreadsheet
- Opening many .lst files is faster
Libinclude
- McCarl's
put_toexcel
andput_tohtml
were added to inclib subdirectory of the GAMS system directory and therefore can be used using$libinclude
. These tools allow greater control when writing multi dimensional symbols to Excel or HTML files. More information can be found here
Solvers
BARON
- New Libraries 9.0.5
- Native 64bit Baron libraries in 64bit windows and linux system
- New option
ExtNLPsolver
allows to call any GAMS NLP Solver available - Dropped support of Baron on platform AIX
Coin-OR
- Renaming
- of solver links as follows
- COINBONMIN -> BONMIN
- COINCBC -> CBC
- COINCOUENNE -> COUENNE
- COINGLPK -> GLPK
- COINIPOPT -> IPOPT
- COINOS -> OS
- COINSCIP -> SCIP
- of bare bone solver links as follows
- COINCPLEX -> OSICPLEX
- COINGUROBI -> OSIGUROBI
- COINMOSEK -> OSIMOSEK
- COINXPRESS -> OSIXPRESS
- For convenience of our users we keep the old names as aliases to the new names for the next distribution.
- Note: The temporary names COINBONMIND, COINCBCD, and COINIPOPTD are not available anymore
- of solver links as follows
- New libraries
- CBC 2.4
- Bonmin 1.3
- Couenne 0.3
- Ipopt 3.8
- GLPK 4.43
- Mumps 4.9 (used by Ipopt and Bonmin)
- OS 2.1
- The new BONMIN version brings various new MINLP heuristics (Feasibility pump, diving based heuristics, RINS, local branching).
- BONMIN can now use CPLEX as solver for sub-MIPs, see option
milp_solver
- SCIP now supports convex and nonconvex quadratic constraints (model types QCP, RMIQCP, MIQCP).
- BCH has temporarily been disabled for CBC, BONMIN, and SCIP.
- The OS link now supports only remote solvers via an Optimization Services Server.
- Native CSDP executables were added to the 64bit Windows and Linux system.
CPLEX
- Updated threads option allows specification of cores left free for non-CPLEX work
GUROBI
- New libraries GUROBI 3.0
- New parallel barrier solver
- New MIP features include symmetry handling, improved and additional cutting planes, and additional heuristics.
- Alternate MIP solutions: retrieve all of the feasible solutions found during the branch-and-cut search
- New parameters
- AggFill: provides finer-grain control of presolve aggregation.
- BarConvTol: barrier convergence tolerance.
- BarCorrectors: controls central corrections in barrier.
- BarIterLimit: limits the number of barrier iterations.
- BarOrder: controls the fill-reducing ordering in barrier.
- PreDepRow: controls the presolve dependent row reduction.
- Crossover: controls barrier crossover.
- CrossoverBasis: controls the generation of the initial crossover basis.
- MIPFocus: allows you to modify the MIP solution strategy to better suit the needs of different model types.
- MIPGapAbs: absolute MIP termination tolerance (GAMS OptCA)
- NetworkCuts: controls the generation of network cutting planes.
- PreDual: determines whether presolve should form the dual of the input model.
- PrePasses: controls the number of passes performed by presolve.
- PumpPasses: controls the feasibility pump heuristic.
- RINS: controls the RINS heuristic.
- Symmetry: controls the new MIP symmetry handling.
- SubMIPCuts: controls the generation of sub-MIP cutting planes.
- Threads: allows specification of how many cores to use.
LINDOGLOBAL
- New libraries Lindo 6.0.1.406
- Now also available on Solaris on x64
- Significant improved performance with some models when Mosek is licensed as well
MOSEK
- New libraries MOSEK 6 rev 71
XPRESS
- New libraries XPRESS 20.00
In-core communication solver links
- All Coin-OR solvers are now supported as in-core communication solvers.
Model Libraries
GAMS Data Library
- tsvngdx (75): Support GDX Files with TortoiseSVN diff
GAMS EMP Library
- jointc1 (22): Educational bilevel model
- jointc2 (23): Educational bilevel model
- ferris43 (24): Educational embedded complementarity system model
- multmpec (25): Educational bilevel model with VI followers
- transbp (26): Transportation model with variable demand function using bilevel programming
- flds911 (27): Princeton Bilevel Optimization Example 9.1.1
- flds912 (28): Princeton Bilevel Optimization Example 9.1.2
- flds913 (29): Princeton Bilevel Optimization Example 9.1.3
- flds914 (30): Princeton Bilevel Optimization Example 9.1.4
- flds915 (31): Princeton Bilevel Optimization Example 9.1.5
- flds916 (32): Princeton Bilevel Optimization Example 9.1.6
- flds917 (33): Princeton Bilevel Optimization Example 9.1.7
- flds918 (34): Princeton Bilevel Optimization Example 9.1.8
- flds919 (35): Princeton Bilevel Optimization Example 9.1.9
- flds921 (36): Princeton Bilevel Optimization Example 9.2.1
- flds922 (37): Princeton Bilevel Optimization Example 9.2.2
- flds923 (38): Princeton Bilevel Optimization Example 9.2.3
- flds924 (39): Princeton Bilevel Optimization Example 9.2.4
- flds925 (40): Princeton Bilevel Optimization Example 9.2.5
- flds926 (41): Princeton Bilevel Optimization Example 9.2.6
- flds927 (42): Princeton Bilevel Optimization Example 9.2.7
- flds928 (43): Princeton Bilevel Optimization Example 9.2.8
- flds929 (44): Princeton Bilevel Optimization Example 9.2.9
- transeql (45): Transportation model as equilibrium problem
- simplevi (46): Simple Variational Inequality
- simplevi2 (47): Simple Nonlinear Variational Inequality
- affinevi (48): Affine Variational Inequality
- simpequil (49): Simple Equilibrium
GAMS Model Library
- trnspwl (351): A Transportation Problem with discretized economies of scale
- food (352): Food Manufacturing Problem - Blending of oils
GAMS Test Library
- examin04 (464): EXAMINER test suite - test returnGamsPoint option and QCP
- empbp04 (465): Bilevel model with and without explicitly defined objective equation
- empbp05 (466): Bilevel model with MIN follower vs. VI follower
- eval05 (467): constant expression test for ceil,floor,trunc,frac
- eval06 (468): matching operators in a column spec
- emp06 (469): Test of EMP based on trnsport model
- emp07 (470): Test of EMP based on trnsport model
- emp08 (471): Test of EMP based on trnsport model
- pgams01 (472): Test procdir deletion in pgams
- pgams02 (473): Test procdir deletion in pgams
- tabsubst (474): Tab and string substitution for long line
- eval07 (475): Test evaluation of real constants - string2Double conversion
- dumpsol (476): Gurobi Alternate Solutions for a Simple Facility Location Problem
- ifthen5 (477): $ifthen false without sameline
- ifthen6 (478): $ifthen/elseif false without sameline
- utils02 (479): test MPS2GMS - it had range problems
- utils03 (480): test MPS2GMS for reading the second range entry on a line
- mpsge11 (481): MPSGE test - multiple fixed income levels
- trylin01 (482): Test model attribute tryLinear
Solver/Platform Availability Matrix
Solver/Platform availability - 23.4 May 24, 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 |
HP 9000 HP-UX 111 |
SGI IRIX2 |
DEC Alpha Digital Unix 4.03 |
Mac PowerPC Darwin4 |
|
ALPHAECP | ||||||||||||||
BARON 9.0 | ||||||||||||||
BDMLP | ||||||||||||||
COIN-OR | ||||||||||||||
CONOPT 3 | ||||||||||||||
CPLEX 12.1 | 10.0 | 9.1 | 8.1 | |||||||||||
DECIS | 32bit | |||||||||||||
DICOPT | ||||||||||||||
GUROBI 3.0 | ||||||||||||||
KNITRO 6.0 | 5.2 | 32bit | ||||||||||||
LINDOGLOBAL 6.0 | ||||||||||||||
LGO | ||||||||||||||
MILES | ||||||||||||||
MINOS | ||||||||||||||
MOSEK 6 | 5.0 | 5.0 | 3.2 | |||||||||||
MPSGE | ||||||||||||||
MSNLP | 32bit | |||||||||||||
NLPEC | ||||||||||||||
OQNLP | 32bit | 32bit | ||||||||||||
OSL V3 | 32bit | 32bit | 32bit | V2 | V2 | |||||||||
OSLSE | 32bit | 32bit | 32bit | |||||||||||
PATH | ||||||||||||||
SBB | ||||||||||||||
SCIP | ||||||||||||||
SNOPT | ||||||||||||||
XA | 32bit | 32bit | ||||||||||||
XPRESS 20.00 | 16.10 | |||||||||||||
1)GAMS distribution for HP 9000/HP-UX is 22.1. | ||||||||||||||
2)GAMS distribution for SGI IRIX is 22.3. | ||||||||||||||
3)GAMS distribution for DEC Alpha is 22.7. | ||||||||||||||
4)GAMS distribution for Mac PowerPC is 23.3. |