23.1.1 Major release (July 13, 2009)
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 Anibal Blanco, Wietse Dol, Arne Drud, Josef Kallrath, Erwin Kalvelagen, Niclas Mattsson, Bruce McCarl, Dominique van der Mensbrugghe, Renger van Nieuwkoop, Stefan Vigerske, and Tongxin Zheng.
New Platform
(64Bit) Intel Mac
GAMS System
GAMS
Default Upper Bound on Integer Variables
The default upper bound on integer variables has changed from 100 to +INF. Since some solve steps in a GAMS applications may inadvertently depend on the previous default value of 100, a the compatibility option, the GAMS parameter PF4=n
, has been introduced to control what values will be passed to the solver. If the GAMS parameter PF4
is not used (a value of PF4=1
is assumed) the solve steps will work as in previous releases.
Pf4=0
: The new default upper bound of +INF will be passed to the solver.Pf4=1
: The value of 100 instead of +INF will be passed to the solver. The solvers will operate as with older GAMS versions. In addition messages will be written to the log and listing to report on the number of integer or semiinteger variables which had the new default bound of +INF reset to 100.PF4=2
: The new default values of +INF will be used as withPF4=0
. When a solution is returned to GAMS and the level value of an integer variable exceeds the old bound value of 100, a message will be written to the log and listing.PF4=3
: The same asPF4=2
with an additional execution error issued if the solution reports a level value greater than 100 for any integer variable with a default bound of +INF.
Setting PF4
values to 2 and 3 is a convenient way to test if the application relies on the previous default bounds of 100. Future releases may use PF4=0
as the default.
An historic note: when GAMS was first introduced, some MIP solvers could only handle binary variable and GAMS applied transformations to simulate integers by using a power expansions. In addition, MIP solvers with integer variables imposed different restrictions on the largest upper bound value. Finally, solvers like DICOPT introduced integer cuts during the solution process, needing some finite upper bound on integer variables. What was once a good choice, turned over time into a source of confusion or resulted in unexpected model behavior.
Default Iteration Limit
The default iteration limit (IterLim
) has been increased from 10000 to 2e9. Setting IterLim
to INF
will not work since it is treated as an integer by GAMS and many solvers. Some solver, e.g. GAMS/Gurobi, recognize 2e9 and set the solver iteration limit to infinity.
Enhanced Profiling Options
In addition to PROFILE=n
and PROFILETOL=r
, a new GAMS parameter PROFILEFILE=file
has been introduced to write profiling information to a text file with some fixed format which can easily be imported into a spreadsheet for further analysis.
1 1 0.000 ExecInit 139 15 0.000 Assignment cnf 139 13 0.000 Assignment cnf . . . . . . . . . . . . 3549 432 0.000 Equation nbal 3621 39489 0.032 Solve Fini wsisn 3621 1 0.062 GAMS Fini 1 1 0.000 ExecInit 3621 1 0.047 Solve Read wsisn 3621 1 0.000 GAMS Fini
A summary report of the ten slowest execution steps will be written to the log and listing.
 Profile Summary (184 records processed) 0.062 3621 GAMS Fini 0.047 3621 Solve Read wsisn 0.046 3529 Equation divcnlsea (86) 0.032 3621 Solve Fini wsisn (39489) 0.016 3274 Assignment wnr (2502) 0.016 3447 Equation cost (15) 0.016 3475 Equation laborc (180) 0.016 3519 Equation waterbaln (180) 0.016 3546 Equation subirrc (84) 0.015 3030 Assignment gwtsa (273)
The timing on slow data definitions and gdx loads during compilation will be profiled as well.
Macros
Added a line continuation character (\
) for macro definitions. See test model macro02
.
Other
 Faster reading of data statements that are not sorted
 Reduced memory usage for projections
 GDX handles IEEE special values
GAMS Data Utilities
GDXDIFF
 Added FldOnly and DiffOnly parameters to write different formats
 Protection against overwriting an input file
GDXVIEWER
 Fixed problem with cubed view
GDXXRW
 Added RWAIT parameter to specify a delay to open Excel to avoid not ready problems
 Added CheckDate option to regenerate output only if input is more recent than output file
SCENRED2
 A libinclude file runscenred2 has been added to make the communication with Scenred2 simpler. See example
srpchase
.
GAMS IDE
 Changed the interface for dealing with tabs
 Tabs expanded to spaces will mark the file as modified
 Added command to select text from current position to a text marker
 Added checks to see if IDE is visible on the monitor
 Move and Size are available on TaskBar icon
Documentation
 Updated McCarl GAMS User's Guide
Solvers
AlphaECP
 New libraries 1.75.03
CoinOR
 New solver CoinCouenne
 CoinCouenne is a global optimization solver for nonconvex mixed integer nonlinear programs, similar to the commercial solvers BARON and LindoGlobal. The solver is still in an experimental phase and is hidden in the GAMS system.
 New libraries
 Cbc 2.3
 Glpk 4.37
 Ipopt 3.6
 Scip now uses Clp 1.10
EMP
Disjunctive programs can be solved via the following alternative automated reformulations without changes to the model
 Convex Hull
 BigM
 CPLEX indicators
Examples
 EMP Library
sequence (20)
: Sequencing on a single machine  Model Library
bilinear (346)
: Convexification of bilinear term binary times x
GUROBI
New libraries 1.1
KNITRO
New libraries 6.0
 Introduces MINLP capability: binary and integer variables are supported. Two algorithms are available, a nonlinear branch and bound method and an implementation of the hybrid QuesadaGrossman method for convex MINLP. The Knitro MINLP code is designed for convex mixed integer programming and is a heuristic for nonconvex problems.
 General performance improvements for both the activeset and interiorpoint/barrier solvers
 Reorganized options into groups: general, barrier and MINLP.
MOSEK
New libraries 5.0 rev 127
Incore communication solver links
 Support of COINBONMIND, COINCBCD, COINIPOPTD and LGOD as incore communication solvers.
Where a traditional link already exists, the newer incore link version has a "D" appended to the name (D for DLL). These incore links are very similar to their traditional predecessors. They may lack some functionality but offer incore communication between GAMS and the solver, making potentially large model scratch files unnecessary. This can save time if you solve many models in your GAMS program.
Model Libraries
GAMS Data Library
Portfolio (68)
: Determines an efficient frontier in Excel, using the GDX DLL (vba API) and the GAMS executableSudoku (69)
: Solve a Sudoku in Excel, using the GDX DLL (vba API) and the GAMS executableSamurai (70)
: Solve a Samurai Sudoku in Excel, using the GDX DLL (vba API) and the GAMS executableSamurai2 (71)
: Solve a Samurai Sudoku in Excel, using the GDX and GAMSX DLL (vba API)CHP (72)
: Optimize combined heat and power generation in Excel, using vba API (gamsx and opt) and GDXXRWCHP2 (73)
: Optimize combined heat and power generation in Excel, using vba API (gamsx, opt and gdx)
GAMS EMP Library
zerofunc (18)
: Match unmatched vars with zero functions in VItraffic2 (19)
: Traffic Assignment Modelsequence (20)
: Sequencing on a single machine
GAMS Model Library
secure (343)
: Secure Work Files  Example 2srpchase (344)
: Scenario Tree Construction Exampletsp5 (345)
: Traveling Salesman Problem  Fivebilinear (346)
: Convexification of bilinear term binary times xsolveopt (347)
: option solveopt explained
GAMS Test Library
minos01 (433)
: MINOS test suite  anticycling via expand frequencyscnred02 (434)
: Scenred2 test  tree reduction and zero valuesempvi05 (435)
: Test for EMP's treatment of an odd variablenlcode3 (436)
: Wrong NL code generation for odd caseset8 (437)
: Test the set.id set#id #id data macrosnlcode4 (438)
: More NL testing when code is deletedcompile7 (439)
: Test and document some system.XXX macrosmcp09 (440)
: Test inequalities with infinite boundsempadj01 (441)
: Test for EMPs AdjustEqu/NYslp optionemp05 (442)
: Test for handling of constant equationsexamin03 (443)
: EXAMINER test suite  test returnInitPoint optioncompile8 (444)
: Test for a mapping errorsl4mip01 (445)
: Test for known XPRESS bug, with solvelink=1,2,4,5macro02 (446)
: Multiline macro testput10 (447)
: $on/offput inserted outside the loopset9 (448)
: fast shifting of set elements
Solver/Platform Availability Matrix
Solver/Platform availability  23.1 July 13, 2009  

x86 MS Windows 
x86_64 MS Windows 
x86 Linux 
x86_64 Linux 
Sun Sparc SOLARIS 
Sun Sparc64 SOLARIS 
Sun Intel SOLARIS 
IBM RS6000 AIX 4.3 
Mac PowerPC Darwin 
Mac Intel32 Darwin 
Mac x86_64 Darwin 
HP 9000 HPUX 11^{1} 
SGI IRIX^{2} 
DEC Alpha Digital Unix 4.0^{3} 

ALPHAECP  
BARON 8.1  32bit  32bit  
BDMLP  
COIN  
CONOPT 3  
CPLEX 11.2  10.0  9.1  8.1  
DECIS  32bit  
DICOPT  
GUROBI 1.1  
KNITRO 6.0  5.2  32bit  5.1  
LINDOGLOBAL 5.0  
LGO  
MILES  
MINOS  
MOSEK 5  3.2  
MPSGE  
MSNLP  32bit  
NLPEC  
OQNLP  32bit  32bit  
OSL V3  32bit  32bit  32bit  V2  V2  
OSLSE  32bit  32bit  32bit  
PATH  
SBB  
SNOPT  
XA  32bit  32bit  
XPRESS 19.00  32bit  32bit  32bit  18.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. 
23.1.2 Maintenance release (July 23, 2009)
 MPSGE: MPSGE ignored the
m.workspace
andm.workfactor
settings  GAMSCHK: Fixed a problem with the layout of the reports in some models