23.4.1 Major release (May 21, 2010)
Table of Contents
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 nonlinearities at compile time and requires the user to specify using nlp
in the solve
statement. At run time these nonlinearities might disappear (cancelation, multiplication of nonlinear terms with 0, ...), but the using 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 nonlinearities 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 sameas
function was added. E.g.
$eval a sameas(xyz,xYz) $eval b sameas ( 'xyz' , "xyz" ) $eval c sameas (123,123) $eval d sameas (123,134) $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.Normal Completion%
2 %Solvestat.Iteration Interrupt%
3 %Solvestat.Resource Interrupt%
4 %Solvestat.Terminated By Solver%
5 %Solvestat.Evaluation Interrupt%
6 %Solvestat.Capability Problems%
7 %Solvestat.Licensing Problems%
8 %Solvestat.User Interrupt%
9 %Solvestat.Setup Failure%
10 %Solvestat.Solver Failure%
11 %Solvestat.Internal Solver Failure%
12 %Solvestat.Solve Processing Skipped%
13 %Solvestat.System Failure%  modelstat:
1 %ModelStat.Optimal%
2 %ModelStat.Locally Optimal%
3 %ModelStat.Unbounded%
4 %ModelStat.Infeasible%
5 %ModelStat.Locally Infeasible%
6 %ModelStat.Intermediate Infeasible%
7 %ModelStat.Intermediate Nonoptimal%
8 %ModelStat.Integer Solution%
9 %ModelStat.Intermediate NonInteger%
10 %ModelStat.Integer Infeasible%
11 %ModelStat.Licensing Problem%
12 %ModelStat.Error Unknown%
13 %ModelStat.Error No Solution%
14 %ModelStat.No Solution Returned%
15 %ModelStat.Solved Unique%
16 %ModelStat.Solved%
17 %ModelStat.Solved Singular%
18 %ModelStat.Unbounded  No Solution%
19 %ModelStat.Infeasible  No Solution%
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 agentbased 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
CoinOR
 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
 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 subMIPs, 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 nonCPLEX 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 branchandcut search
 New parameters
 AggFill: provides finergrain control of presolve aggregation.
 BarConvTol: barrier convergence tolerance.
 BarCorrectors: controls central corrections in barrier.
 BarIterLimit: limits the number of barrier iterations.
 BarOrder: controls the fillreducing 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 subMIP 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
Incore communication solver links
 All CoinOR solvers are now supported as incore communication solvers.
Model Libraries
GAMS Data Library
tsvngdx (75)
: Support GDX Files with TortoiseSVN diff
GAMS EMP Library
jointc1 (22)
: Educational bilevel modeljointc2 (23)
: Educational bilevel modelferris43 (24)
: Educational embedded complementarity system modelmultmpec (25)
: Educational bilevel model with VI followerstransbp (26)
: Transportation model with variable demand function using bilevel programmingflds911 (27)
: Princeton Bilevel Optimization Example 9.1.1flds912 (28)
: Princeton Bilevel Optimization Example 9.1.2flds913 (29)
: Princeton Bilevel Optimization Example 9.1.3flds914 (30)
: Princeton Bilevel Optimization Example 9.1.4flds915 (31)
: Princeton Bilevel Optimization Example 9.1.5flds916 (32)
: Princeton Bilevel Optimization Example 9.1.6flds917 (33)
: Princeton Bilevel Optimization Example 9.1.7flds918 (34)
: Princeton Bilevel Optimization Example 9.1.8flds919 (35)
: Princeton Bilevel Optimization Example 9.1.9flds921 (36)
: Princeton Bilevel Optimization Example 9.2.1flds922 (37)
: Princeton Bilevel Optimization Example 9.2.2flds923 (38)
: Princeton Bilevel Optimization Example 9.2.3flds924 (39)
: Princeton Bilevel Optimization Example 9.2.4flds925 (40)
: Princeton Bilevel Optimization Example 9.2.5flds926 (41)
: Princeton Bilevel Optimization Example 9.2.6flds927 (42)
: Princeton Bilevel Optimization Example 9.2.7flds928 (43)
: Princeton Bilevel Optimization Example 9.2.8flds929 (44)
: Princeton Bilevel Optimization Example 9.2.9transeql (45)
: Transportation model as equilibrium problemsimplevi (46)
: Simple Variational Inequalitysimplevi2 (47)
: Simple Nonlinear Variational Inequalityaffinevi (48)
: Affine Variational Inequalitysimpequil (49)
: Simple Equilibrium
GAMS Model Library
trnspwl (351)
: A Transportation Problem with discretized economies of scalefood (352)
: Food Manufacturing Problem  Blending of oils
GAMS Test Library
examin04 (464)
: EXAMINER test suite  test returnGamsPoint option and QCPempbp04 (465)
: Bilevel model with and without explicitly defined objective equationempbp05 (466)
: Bilevel model with MIN follower vs. VI followereval05 (467)
: constant expression test for ceil,floor,trunc,fraceval06 (468)
: matching operators in a column specemp06 (469)
: Test of EMP based on trnsport modelemp07 (470)
: Test of EMP based on trnsport modelemp08 (471)
: Test of EMP based on trnsport modelpgams01 (472)
: Test procdir deletion in pgamspgams02 (473)
: Test procdir deletion in pgamstabsubst (474)
: Tab and string substitution for long lineeval07 (475)
: Test evaluation of real constants  string2Double conversiondumpsol (476)
: Gurobi Alternate Solutions for a Simple Facility Location Problemifthen5 (477)
: $ifthen false without samelineifthen6 (478)
: $ifthen/elseif false without samelineutils02 (479)
: test MPS2GMS  it had range problemsutils03 (480)
: test MPS2GMS for reading the second range entry on a linempsge11 (481)
: MPSGE test  multiple fixed income levelstrylin01 (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 RS6000 AIX 5.3 
Mac Intel32 Darwin 
Mac x86_64 Darwin 
HP 9000 HPUX 11^{1} 
SGI IRIX^{2} 
DEC Alpha Digital Unix 4.0^{3} 
Mac PowerPC Darwin^{4} 

ALPHAECP  
BARON 9.0  
BDMLP  
COINOR  
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/HPUX 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. 