Table of Contents
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
- (64-Bit) 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 parameterPF4
is not used (a value ofPF4=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 semi-integer 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 usePF4=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. SettingIterLim
toINF
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
andPROFILETOL=r
, a new GAMS parameterPROFILEFILE=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
Coin-OR
- New solver CoinCouenne
- CoinCouenne is a global optimization solver for non-convex mixed integer non-linear 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 non-linear branch and bound method and an implementation of the hybrid Quesada-Grossman 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 active-set and interior-point/barrier solvers
- Reorganized options into groups: general, barrier and MINLP.
MOSEK
- New libraries 5.0 rev 127
In-core communication solver links
Support of COINBONMIND, COINCBCD, COINIPOPTD and LGOD as in-core communication solvers.
Where a traditional link already exists, the newer in-core link version has a "D" appended to the name (D for DLL). These in-core links are very similar to their traditional predecessors. They may lack some functionality but offer in-core 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 executable
- Sudoku (69): Solve a Sudoku in Excel, using the GDX DLL (vba API) and the GAMS executable
- Samurai (70): Solve a Samurai Sudoku in Excel, using the GDX DLL (vba API) and the GAMS executable
- Samurai2 (71): Solve a Samurai Sudoku in Excel, using the GDX and GAMSX DLL (vba API) [not available anymore]
- CHP (72): Optimize combined heat and power generation in Excel, using vba API (gamsx and opt) and GDXXRW
- CHP2 (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 VI
- traffic2 (19): Traffic Assignment Model
- sequence (20): Sequencing on a single machine
GAMS Model Library
- secure (343): Secure Work Files - Example 2
- srpchase (344): Scenario Tree Construction Example
- tsp5 (345): Traveling Salesman Problem - Five
- bilinear (346): Convexification of bilinear term binary times x
- solveopt (347): option solveopt explained
GAMS Test Library
- minos01 (433): MINOS test suite - anti-cycling via expand frequency
- scnred02 (434): Scenred2 test - tree reduction and zero values
- empvi05 (435): Test for EMP's treatment of an odd variable
- nlcode3 (436): Wrong NL code generation for odd case
- set8 (437): Test the
set.id
set#id
#id
data macros - nlcode4 (438): More NL testing when code is deleted
- compile7 (439): Test and document some system.XXX macros
- mcp09 (440): Test inequalities with infinite bounds
- empadj01 (441): Test for EMPs AdjustEqu/NYslp option
- emp05 (442): Test for handling of constant equations
- examin03 (443): EXAMINER test suite - test returnInitPoint option
- compile8 (444): Test for a mapping error
- sl4mip01 (445): Test for known XPRESS bug, with solvelink=1,2,4,5
- macro02 (446): Multi-line macro test
- put10 (447): $on/offput inserted outside the loop
- set9 (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 RS-6000 AIX 4.3 |
Mac PowerPC Darwin |
Mac Intel32 Darwin |
Mac x86_64 Darwin |
HP 9000 HP-UX 111 |
SGI IRIX2 |
DEC Alpha Digital Unix 4.03 |
|
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/HP-UX 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