GAMS [ Home | Support | Sales | Solvers | Documentation | Model Libraries | Search | Contact Us ]


Release Notes

Each new release incorporates numerous fixes and improvements to the core GAMS system and its many components. A selected list of improvements and new components is given below.

GAMS Distribution 23.7 July 14, 2011

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, Michael Ferris, Josef Kallrath, Andreas Lundell, Renger van Nieuwkoop, Sabine Ritter, Stefan Vigerske, and Kent Zhao.

Platforms

GAMS System

GAMS

Asynchronous Execution

For a long time GAMS supports calling executables via the $call and Execute in a synchronous way. The new release also supports asynchronous job handling. This means you can start a job without waiting for the result. You can continue in your model and collect the return code of the job later. There are three ways to start a job asynchronously:

After each of those the function JobHandle can be used to get the Process ID (pid) of the last job started. With JobStatus(pid) one could check for the status of a job. Possible return values are:

With JobTerminate(pid) a interrupt signal can be sent to a running job. If this was successful the return value is one, otherwise it is zero.

With JobKill(pid) a kill signal can be sent to a running job. If this was successful the return value is one, otherwise it is zero.

The model asynexec from the GAMS Test Library demonstrates the use of this new feature.

Function Libraries

The new GAMS Function Library Facility allows users to import functions from an external library into a GAMS model. Apart from the import syntax, the imported functions can be used in the same way as intrinsic functions. In particular, they can be used in equation definitions. Some function libraries are included with the standard GAMS software distribution but GAMS users can also create their own libraries using an open programming interface. Simple examples in the programming languages C, Delphi and Fortran come with every GAMS system.

Function libraries are made available to a model using the compiler directive:

$FuncLibIn <InternalLibName> <ExternalLibName>

Similar to sets, parameters, variables, and equations, functions must be declared before they can be used:

Function <InternalFuncName> /<InternalLibName>.<FuncName>/;

There are a few libraries which come ready to use with the GAMS system:

Detailed information can be found in the GAMS User's Guide in chapter 6.3.

In addition, the following examples from the GAMS Test Library can be referred to:

If you need detailed instructions for connecting your library to GAMS please contact support@gams.com.

Other

Bug Fix

We found and corrected a bug related to the internal organization of non-linear code. This bug was introduced with version 23.6 but fortunately only occurs in rare cases.

Utilities

GAMSIDE

GAMSINST

GDXXRW

Solvers

AlphaECP

Baron

Conopt

Coin-OR

Cplex

DEA

Dicopt

Gurobi

Gather-Update-Solve-Scatter (GUSS)

Jams

LindoGlobal

LogMIP

Minos

Mosek

Msnlp/Oqnlp

Oslse

Path

SBB

Scip/Soplex

Snopt

Xpress

Model Libraries

GAMS Data Library

GAMS EMP Library

GAMS Model Library

GAMS Test Library

Solver/Platform Availability Matrix

Solver/Platform availability - 23.7    July 14, 2011
  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 x x x x x x x x x x
BARON 9.3 x x x x            
BDMLP x x x x x x x x x x
COIN-OR x x x x     x   x x
CONOPT 3 x x x x x x x x x x
CPLEX 12.3 x x x x x x x x x x
DECIS x x x x x 32bit        
DICOPT x x x x x x x x x x
GUROBI 4.5 x x x x       x   x
KNITRO 7.0 x x x x     x   x x
LINDOGLOBAL 6.1 x x x x 6.0 6.0 x   x x
LGO x x x x x x x   x x
MILES x x x x x x x x x x
MINOS x x x x x x x x x x
MOSEK 6 x x x x     x   x x
MPSGE x x x x x x x x x x
MSNLP x x x x x 32bit     x x
NLPEC x x x x x x x x x x
OQNLP x 32bit x 32bit            
PATH x x x x x x x x x x
SBB x x x x x x x x x x
SCIP x x x x     x   x x
SNOPT x x x x x x x x x x
XA x 32bit x x            
XPRESS 22.01 x x x x x x x x    

GAMS Distribution 23.6 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

APIs

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

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

Coin-OR

Conopt

Cplex

EMP

Gurobi

Knitro

Lgo

Mosek

Scip

Xa

Xpress

Model Libraries

GAMS Data Library

GAMS EMP Library

GAMS Model Library

GAMS Test Library

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 x x x x x x x x x x
BARON 9.0 x x x x            
BDMLP x x x x x x x x x x
COIN-OR x x x x     x   x x
CONOPT 3 x x x x x x x x x x
CPLEX 12.2 x x x x x x x x x x
DECIS x x x x x 32bit        
DICOPT x x x x x x x x x x
GUROBI 4.0 x x x x           x
KNITRO 7.0 x x x x     x   x x
LINDOGLOBAL 6.1 x x x x 6.0 6.0 x   x x
LGO x x x x x x x   x x
MILES x x x x x x x x x x
MINOS x x x x x x x x x x
MOSEK 6 x x x x     x   x x
MPSGE x x x x x x x x x x
MSNLP x x x x x 32bit     x x
NLPEC x x x x x x x x x x
OQNLP x 32bit x 32bit            
PATH x x x x x x x x x x
SBB x x x x x x x x x x
SCIP x x x x     x   x x
SNOPT x x x x x x x x x x
XA x 32bit x x            
XPRESS 21.01 x x x x x x x x    

GAMS Distribution 23.5 July 4, 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 Farhad Farnam and Alexander Gocht.

GAMS System

APIs

Solvers

BARON

CONOPT

CPLEX

GUROBI

LINDOGLOBAL

Model Libraries

GAMS Test Library

Solver/Platform Availability Matrix

Solver/Platform availability - 23.5    July 4, 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 x x x x x x x x x x     x x
BARON 9.0 x x x x                    
BDMLP x x x x x x x x x x x x x x
COIN-OR x x x x     x   x x        
CONOPT 3 x x x x x x x x x x x x x x
CPLEX 12.2 x x x x x x x x x x 10.0 9.1 8.1  
DECIS x x x x x 32bit         x x x  
DICOPT x x x x x x x x x x x x x  
GUROBI 3.0 x x x x           x        
KNITRO 6.0 x x x x 5.2 32bit     x          
LINDOGLOBAL 6.1 x x x x 6.0 6.0 x   x x       x
LGO x x x x x x x   x x x x x x
MILES x x x x x x x x x x x x x x
MINOS x x x x x x x x x x x x x x
MOSEK 6 x x x x 5.0 5.0 x   x x 3.2      
MPSGE x x x x x x x x x x x x x x
MSNLP x x x x x 32bit     x x x      
NLPEC x x x x x x x x x x x x x x
OQNLP x 32bit x 32bit                    
PATH x x x x x x x x x x x x x x
SBB x x x x x x x x x x x x x x
SCIP x x x x     x   x x        
SNOPT x x x x x x x x x x x x x x
XA x 32bit x x x 32bit         x   x x
XPRESS 20.00 x x x x x x x x     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.

GAMS Distribution 23.4 May 24, 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

Mac PowerPC

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 the solve statement. At run time these non-linearities might disappear (cancelation, multiplication of non-linear 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 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:

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 (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.

E.g. the statments following are the same

The GAMS model libraries were adjusted and now make use of these constants.

APIs

GDXDCLIB API

New entry points:

Data Utilities

GDX2ACCESS

GDXXRW

MDB2GMS

SQL2GMS

EMP

IDE

Libinclude

Solvers

BARON

Coin-OR

CPLEX

GUROBI

LINDOGLOBAL

MOSEK

XPRESS

In-core communication solver links

Model Libraries

GAMS Data Library

GAMS EMP Library

GAMS Model Library

GAMS Test Library

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 x x x x x x x x x x     x x
BARON 9.0 x x x x                    
BDMLP x x x x x x x x x x x x x x
COIN-OR x x x x     x   x x        
CONOPT 3 x x x x x x x x x x x x x x
CPLEX 12.1 x x x x x x x x x x 10.0 9.1 8.1  
DECIS x x x x x 32bit         x x x  
DICOPT x x x x x x x x x x x x x  
GUROBI 3.0 x x x x                    
KNITRO 6.0 x x x x 5.2 32bit     x          
LINDOGLOBAL 6.0 x x x x x x x   x         x
LGO x x x x x x x   x x x x x x
MILES x x x x x x x x x x x x x x
MINOS x x x x x x x x x x x x x x
MOSEK 6 x x x x 5.0 5.0 x   x x 3.2      
MPSGE x x x x x x x x x x x x x x
MSNLP x x x x x 32bit     x x x      
NLPEC x x x x x x x x x x x x x x
OQNLP x 32bit x 32bit                    
OSL V3 x 32bit x 32bit x 32bit   x     V2 V2    
OSLSE x 32bit x 32bit x 32bit                
PATH x x x x x x x x x x x x x x
SBB x x x x x x x x x x x x x x
SCIP x x x x     x   x x        
SNOPT x x x x x x x x x x x x x x
XA x 32bit x x x 32bit         x   x x
XPRESS 20.00 x x x x x x x x     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.

GAMS Distribution 23.3 November 1, 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 Wolfgang Britz, Wietse Dol, Daniel T. Fokum, Nuri Gokhan, Iiro Harjunkoski, Josef Kallrath, Lloyd R. Kelly, Kristina Konold, and Uwe Schneider.

GAMS System

GAMS

  • Assigning members to a set using the asterisk is now possible in decreasing order as well. For example, the following are valid set statements in GAMS.
Set years /bc2000*bc1,0*2009/;
Set years /"-20"*"-1"/;

  • The GAMS parameters ProcDir and MaxProcDir can be used to control the generation of process directories. ProcDir=abc will use abc instead of the 225?. The user is responsible to create and remove the directories. %gams.procdir% will now be defined and give you the actual process directory in use. MaxProcDir=100 will extend the usual 225? to 225z, 225aa, 225ab, etc. The defaults will be 26 for MaxProcDir and 225? for ProcDir to make everything work as before.
  • The GAMS parameter RunDir was removed.
  • The Dollar Control Options $hiddencall does the same as $call but makes sure that the statement is neither shown on the log nor the listing file. This is also true in case $ondollar or dp=2 is used. $hiddencall is especially useful in case of an encrypted model that e.g. reads/writes from an password-protected Excel file using gdxxrw password option.

GDXXRW

  • Support of the Excel 2007 file extension xlsm
  • The option password allows to pass down a password to a protect Excel file

Solvers

Baron

  • New libraries: version 9.0
  • Conopt can be used to solve nonlinear subproblems, but on 32bit platforms only (NLPSol=6)
  • More control over common linear subexpressions

Coin-OR

  • CoinScip version 1.2
    • The multi-commodity-flow network cut separator is now used by default
    • Improvements in heuristics, presolving, and branching
  • CoinGlpk version 4.39
  • CoinCouenne version 0.2
    • A separator for disjunctive cuts has been added
  • CoinCplex, CoinGurobi, CoinMosek, CoinXpress
    • These new bare bone solver links come free of charge with the GAMS Base system. General GAMS options (reslim, optcr, nodlim, iterlim) are supported. In addition an option file in the format required by the solver can be provided.
  • CoinOS 2.0
    • The new experimental link to the Optimization Services project allows you to convert instances of GAMS models into the OS instance language (OSiL) format and to let an Optimization Services Server solve your instances remotely.

GUROBI

  • New libraries: version 2.0
  • Simplex performance: The simplex optimizers are much faster in the release. The improvements are most pronounced in the dual simplex method.
  • MIP performance: The MIP solver is significantly faster as well. Part of this is a consequence of the increased speed of the dual simplex optimizer, and part is due to algorithmic improvements in the MIP itself.
  • MIP IIS: You can now compute an Irreducible Inconsistent Subsystem (IIS) for an infeasible MIP model. The previous release could only compute IISs for continuous models.
  • MIP node files: You can now store search tree nodes on disk. This allows you to solve much larger and more difficult MIP models. Use the new NodefileStart parameter to indicate how much memory you would like to devote to nodes before they are written to disk. The performance impact of putting nodes out to disk is typically quite small.

MINOS

MINOS5 (old version of MINOS) was dropped. MINOS5 now is an alias to MINOS (Version 5.51) in order to protect users that hard-coded the use of MINOS5.

MOSEK

  • New libraries: version 6.0
  • Improvement of speed and stability of the interior-point optimizer for linear and conic problems
  • More effective presolve for simplex optimizer with hot starts

XPRESS

  • New libraries: version 20.00
  • Updated licensing: multi-threaded runs and 64-bit versions now included in base license
  • Updated threads option allows specification of cores left free for non-XPRESS work.

In-core communication solver links

  • Lindoglobal supports in-core communication

Model Libraries

GAMS Data Library

  • transxls (74): Solve classical transportation problem in Excel, using vba API (gamsx, opt and gdx)

GAMS EMP Library

  • negishi (21): Pure exchange model solved with EMP, SJM, and CGE

GAMS Model Library

GAMS Test Library

Solver/Platform Availability Matrix

Solver/Platform availability - 23.3    November 1, 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.34
Mac PowerPC
Darwin
Mac Intel32
Darwin
Mac x86_64
Darwin
HP 9000
HP-UX 111
SGI
IRIX2
DEC Alpha
Digital Unix 4.03
ALPHAECP x x x x x x x x x x x     x
BARON 9.0 x 32bit x 32bit       8.1            
BDMLP x x x x x x x x x x x x x x
COIN x x x x     x   x x x      
CONOPT 3 x x x x x x x x x x x x x x
CPLEX 12.1 x x x x x x x 11.2   x x 10.0 9.1 8.1
DECIS x x x x x 32bit   x       x x x
DICOPT x x x x x x x x x x x x x x
GUROBI 2.0 x x x x                    
KNITRO 6.0 x x x x 5.2 32bit     5.1 x        
LINDOGLOBAL 6.0 x x x x x x     x x        
LGO x x x x x x x   x x x x x x
MILES x x x x x x x x x x x x x x
MINOS x x x x x x x x x x x x x x
MOSEK 6 x x x x 5.0 5.0 x   5.0 x x 3.2    
MPSGE x x x x x x x x x x x x x x
MSNLP x x x x x 32bit     x x x x    
NLPEC x x x x x x x x x x x x x x
OQNLP x 32bit x 32bit                    
OSL V3 x 32bit x 32bit x 32bit   x       V2 V2  
OSLSE x 32bit x 32bit x 32bit   x            
PATH x x x x x x x x x x x x x x
SBB x x x x x x x x x x x x x x
SNOPT x x x x x x x x x x x x x x
XA x 32bit x x x 32bit   x       x   x
XPRESS 20.00 x x x x x x x 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.
4)GAMS distribution for IBM RS-6000 AIX 4.3 is 23.1.

GAMS Distribution 23.2 August 14, 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 Shiro Takeda.

Solvers

Cplex

  • New libraries 12.1
  • Now also available on 64-Bit Intel Mac

LindoGlobal

  • New libraries 6.0.1.299

Solver/Platform Availability Matrix

Solver/Platform availability - 23.2    August 14, 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 x x x x x x x x x x       x
BARON 8.1 x 32bit x 32bit       x            
BDMLP x x x x x x x x x x x x x x
COIN x x x x     x   x x x      
CONOPT 3 x x x x x x x x x x x x x x
CPLEX 12.1 x x x x x x x x   x x 10.0 9.1 8.1
DECIS x x x x x 32bit   x       x x x
DICOPT x x x x x x x x x x x x x x
GUROBI 1.1 x x x x                    
KNITRO 6.0 x x x x 5.2 32bit     5.1 x        
LINDOGLOBAL 6.0 x x x x x x     x x        
LGO x x x x x x x   x x x x x x
MILES x x x x x x x x x x x x x x
MINOS x x x x x x x x x x x x x x
MOSEK 5 x x x x x x x   x x   3.2    
MPSGE x x x x x x x x x x x x x x
MSNLP x x x x x 32bit     x x x x    
NLPEC x x x x x x x x x x x x x x
OQNLP x 32bit x 32bit                    
OSL V3 x 32bit x 32bit x 32bit   x       V2 V2  
OSLSE x 32bit x 32bit x 32bit   x            
PATH x x x x x x x x x x x x x x
SBB x x x x x x x x x x x x x x
SNOPT x x x x x x x x x x x x x x
XA x 32bit x x x 32bit   x       x   x
XPRESS 19.00 x 32bit x 32bit x 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.

GAMS Distribution 23.1 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 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 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 with PF4=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 as PF4=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

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)
  • 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

GAMS Model Library

GAMS Test Library

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 x x x x x x x x x x       x
BARON 8.1 x 32bit x 32bit       x            
BDMLP x x x x x x x x x x x x x x
COIN x x x x     x   x x x      
CONOPT 3 x x x x x x x x x x x x x x
CPLEX 11.2 x x x x x x x x   x   10.0 9.1 8.1
DECIS x x x x x 32bit   x       x x x
DICOPT x x x x x x x x x x x x x x
GUROBI 1.1 x x x x                    
KNITRO 6.0 x x x x 5.2 32bit     5.1 x        
LINDOGLOBAL 5.0 x x x x x x     x x        
LGO x x x x x x x   x x x x x x
MILES x x x x x x x x x x x x x x
MINOS x x x x x x x x x x x x x x
MOSEK 5 x x x x x x x   x x   3.2    
MPSGE x x x x x x x x x x x x x x
MSNLP x x x x x 32bit     x x x x    
NLPEC x x x x x x x x x x x x x x
OQNLP x 32bit x 32bit                    
OSL V3 x 32bit x 32bit x 32bit   x       V2 V2  
OSLSE x 32bit x 32bit x 32bit   x            
PATH x x x x x x x x x x x x x x
SBB x x x x x x x x x x x x x x
SNOPT x x x x x x x x x x x x x x
XA x 32bit x x x 32bit   x       x   x
XPRESS 19.00 x 32bit x 32bit x 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.

GAMS Distribution 23.0 February 14, 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 Surendu Korgaokar, Tom Rutherford, Stefan Vigerske and Rich Roberts.

GAMS System

GAMS Data Utilities

GDXXRW
  • Fix to not limit the size of the block read to 65536 lines

Documentation

  • Updated McCarl GAMS User's Guide

Other

As announced earlier we dropped the following systems as of this GAMS Distribution.

  • GAMSBAS: The newer savepoint/loadpoint facility is easier to use and more robust.
  • MPSWRITE: The newer CONVERT utility includes this capability

Model Libraries

GAMS Model Library

  • poutil (342): Portfolio Optimization for Electric Utilities

GAMS Test Library

Solvers

As announced in the 22.9 release notes we dropped the following solvers as of this GAMS Distribution.

  • CONOPT1 (old version of CONOPT). The default CONOPT version, CONOPT 3, will not be dropped.
  • MILESOLD (old version of MILES). The default MILES version will not be dropped.
  • OSL1 and OSL2 (old versions of OSL). The default OSL version will not be dropped.
  • PATHOLD (old version of PATH). The default PATH version will not be dropped.

Due to user requests, and despite our earlier announcement, we did not drop the following components:

  • CONOPT 2 (old version of CONOPT).
  • DEA

CPLEX

New libraries 11.2.1

GUROBI

The new Gurobi solver provides state-of-the-art simplex-based linear programming (LP) and mixed-integer programming (MIP) capability.

The Gurobi MIP solver includes shared memory parallelism, capable of simultaneously exploiting any number of processors and cores per processor. The implementation will be deterministic: two separate runs on the same model will produce identical solution paths.

The Gurobi solver is available for the 32-bit and 64-bit versions of Windows and Linux. Please contact us for an evaluation license.

KNITRO

New libraries 5.2.0

LINDOGLOBAL

New libraries 5.0.1.345

MOSEK

New libraries 5.0 rev 112

XPRESS

New libraries 19.00.04

  • The primal algorithm has been improved and is now 40% faster on XPRESS' LP benchmark test set and 20% faster on XPRESS' large LP benchmark test set.
  • The dual algorithm has been improved and is now 22% faster on XPRESS' LP benchmark test set and 45% faster on XPRESS' large LP benchmark test set.
  • The MIP performance has been improved and is now 40% faster on XPRESS' MIP benchmark test set
  • Improvements to the Quadratic Primal algorithm to avoid cycling problems

In-core communication solver links

  • Support of GUROBI as an in-core communication solvers.
  • Experimental in-core link MINOSD
  • Enhancements and bug fixes for the in-core communication solver links BDMLPD, CONOPTD, and CPLEXD

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 unecessary. This can save time if you solve many models in your GAMS program.

Solver/Platform Availability Matrix

Solver/Platform availability - 23.0    February 14, 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
HP 9000
HP-UX 111
SGI
IRIX2
DEC Alpha
Digital Unix 4.03
ALPHAECP x x x x x x x x x x     x
BARON 8.1 x 32bit x 32bit       x          
BDMLP x x x x x x x x x x x x x
COIN x x x x     x   x x      
CONOPT 3 x x x x x x x x x x x x x
CPLEX 11.2 x x x x x x x x   x 10.0 9.1 8.1
DECIS x x x x x 32bit   x     x x x
DICOPT x x x x x x x x x x x x x
GUROBI 1.0 x x x x                  
KNITRO 5.2 x x x x x 32bit     x x      
LINDOGLOBAL 5.0 x x x x x x     x x      
LGO x x x x x x x   x x x x x
MILES x x x x x x x x x x x x x
MINOS x x x x x x x x x x x x x
MOSEK 5 x x x x x x x   x x 3.2    
MPSGE x x x x x x x x x x x x x
MSNLP x x x x x 32bit     x x x    
NLPEC x x x x x x x x x x x x x
OQNLP x 32bit x 32bit                  
OSL V3 x 32bit x 32bit x 32bit   x     V2 V2  
OSLSE x 32bit x 32bit x 32bit   x          
PATH x x x x x x x x x x x x x
SBB x x x x x x x x x x x x x
SNOPT x x x x x x x x x x x x x
XA x 32bit x x x 32bit   x     x   x
XPRESS 19.00 x 32bit x 32bit x 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.

GAMS Distribution 22.9   December 1, 2008

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 Stefan Boeters, Wolfgang Britz, Alexander Gocht, Josef Kallrath, Erwin Kalvelagen, Todd Munson, Yiqi Zhu.

Future Deprecation

We are planning to drop the following systems from our next GAMS Distribution 23.0. If you object please submit an email to support@gams.com!

  • CONOPT1 and CONOPT 2 (old versions of CONOPT)
  • DEA (capability will be offered by a more general scenario framework)
  • MILESOLD (old version of MILES)
  • MINOS5 (old version of MINOS)
  • OSL1 and OSL2 (old versions of OSL)
  • PATHOLD (old version of PATH)

GAMS System

GAMS

  • GAMS scratch file extension. Starting with distribution 22.9 the default file extension of intermediate files located in the 225? directories is .dat. The scratch extension is a parameter that can be changed with the GAMS option ScrExt, e.g gams trnsport scrext=tmp. Within GAMS code you get the scratch extension using %gams.scrext%.
  • GAMS Parameter ETlim (Elapsed Time limit). A GAMS job will terminate if the elapsed time in seconds exceeds the value of ETlim. The job elapsed time is checked before the execution of a $call, execute or solve statement. The system will terminate with a compilation or execution error if the limit (default INF) is reached.
  • GAMS Parameter AppendExpand (short form AE). Allows to control the file opening of the expand file. A value of 0 will open with rewrite, a value of 1, the default, will open with append.
  • New solveopt=clear option. A third option has been added to option solveopt=xxx. The related model attribute <model>.solveopt=n has been adjusted to match the new option values. If the model attribute is set to NA (default), the setting of the corresponding option statement will be used to determine the way solutions values are loaded back into the GAMS data space. The possible values are (the numeric value for the model attribute are given in parenthesis):
    • replace (0) all equations appearing in the model list will be completely replaced by the new model results. Variables are only replaced if they appear in the final model.
    • merge (1) the new model results are merged into the existing structures. This is the default.
    • clear (2) similar to the replace option; in addition, variables appearing in the symbolic equations but squeezed out in the final model, are removed.
  • New solprint=silent option. A third option has been added to option solprint=xxx. The related model attribute <model>.solprint=n and the GAMS parameter solprint=n have been adjusted to match the new option values. If the model attribute is set to NA (default), the setting of the corresponding option statement will be used to control the printing of model generation and solution information. Note that the GAMS parameter initializes the corresponding option statement values. The possible values are (the numeric value for the model attribute are given in parenthesis):
    • off (0) detailed solution output is suppressed.
    • on (1) the most detailed solution output. This is the default.
    • silent (2) all solve related output is suppressed.
  • New model attributes returning elapsed time information of the solution process:
    • ETsolve total elapsed time to execute a solve statement
    • ETsolver elapsed time that can be attributed to the solver only
    • ETalg elapsed time that can be attributed to the core algorithm
  • New suffix for abort.noerror. When using the suffix .noerror with the $abort statement, the error count will NOT be increased. When a save file is written, all remaining unexecuted code will be flushed. This allows effective reuse of the save file.
  • Added a test and error message to see if a restart file has not been closed yet when we try to use the file.

The GAMS Macro Facility

The GAMS macro facility has been inspired by the GAMS-F preprocessor for function definition developed by Ferris, Rutherford and Starkweather, 1998, 2005. The GAMS macro facility incorporates the major features of the GAMS-F preprocessor into the standard GAMS release. The GAMS macros acts like a standard macro when defined, however, its recognition for expansion is GAMS syntax driven.

Macros are widely used in computer science to define and automate structured text replacements. The GAMS macro processors functions similar to the popular C/C++ macro preprocessor. The definition takes the form

$macro name  macro body
$macro name(arg1,arg3,arg2,..) macro body with tokens arg1,..

The name of the macro has to be unique, similar to other GAMS data types like sets and parameters. A ( following immediately the macro name starts the list of replacement arguments. The macro body is not further analyzed after removing leading and trailing spaces.

The recognition and following expansion is directed by GAMS syntax. The tokens in the macro body to be replaced by the actual macro arguments follow the standard GAMS identifier conventions. For example:

$macro diff(y) system.cosh(y) - cosh(y)
$macro cosh(x) (exp(x) + exp(-x))/2
scalar z; z = diff(2/3); display z;

will expand into:

scalar z; z = system.cosh(2/3) - (exp(2/3) + exp(-2/3))/2; display z;

This expansion takes place in two steps, first GAMS recognizes diff as a macro and changes the input text to:

scalar z; z = system.cosh(2/3) - cosh(2/3); display z;

Gams will continue to process the modified input text. The first occurrence of cosh is not recognized by gams as a macro, only the second reference to cosh(2/3) will result in a second and final expansion.

The recognition of macros and expansion of arguments can further be controlled by the use of ampersands (&) in the macro body. A single ampersand (&) is used as a concatenation or separation symbol to recognize tokens to be replaced. Two ampersands (&&) immediately preceding a token will drop the most outer matching single or double quotes of the replacement argument. For example:

$macro  f(i)  sum(j, x(i,j))
$macro equ(q)  equation equ_&q; equ_&q.. q =e= 0;
equ(f(i))

will expand into:


equation equ_f(i); equ_f(i).. sum(j, x(i,j)) =e= 0;

The first step of the above expansion is shown below. GAMS will then only recognize the third occurrence of f(i) as a macro which will be expanded to give the above result.:

equation equ_f(i); equ_f(i).. f(i) =e= 0;

The actual calling arguments of macros can contain complex expressions and other macro calls. Multiple arguments are separated by commas. Pairs of parenthesis and quotes can be used freely to protect the separating comma.

$macro many(a,b) scalar x; x=a/&&b); display x;
many((3/5),'(mod(3,2)')

Note that the second argument has unbalanced parenthesis and therefor needs to be enclosed in quotes to give the result below.

scalar x; x=(3/5)/(mod(3,2)); display x;

Some macro use can result in an expansion of infinite length. For example:

$macro a  b,a
display a;

will expand into:

display b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,...

GAMS will eventually refuse to do more substitutions and issue a compilation error.

The use of deeply nested macros may require the use of aliased sets in indexed operations like sum and prod. A minor syntax extension allows the implicit use of aliases. The suffix .local on a controlling set will use an implicit alias within the scope of the indexed operation. For example:

$macro qq(i) sum(i.local, b(i))
c(q) = qq(q);

will expand into:


c(q) = sum(q.local, b(q));

The use of the .local modifier is not limited to macros and can be used in any context.

Another feature motivated by the use of macros is the implicit use of the .l suffix in data manipulation statements. This allows using the same algebra in model definitions and assignment statements. The following code snippet illustrates this feature:

$macro D(s,h) INCOME(h)*alpha[s,h]*sum{s.local, alpha[s,h]*P[s]*
.  .  .
cmkt(s)..    Y(s) =g= sum(h, D(s,h));
. .  .
$onDotL

dl(s,h) = d(s,h); display dl;

where INCOME is another macro which calls a number of other nested macros. D(s,h) is now used to define the equation cmky and is also used in an assignment after the model has been solved. The $ondotl enables the implicit .l suffix for variables. This feature was introduced to make macros more useful and is not limited to be used in macro bodies. Since this a new feature it has to be enabled. The matching $offdotl will disable this feature.

Three more switches are relevant to macros. The $show will list any GAMS macros defined. The $onmacro/$offmacro will enable or disable the expansion of macros; the default is $onmacro. Finally, the $on/offexpand will change the processing of macros appearing in the arguments of a macro call. The default operation is not to expand macros in the arguments. The switch $onexpand enables the recognition and expansion of macros in the macro argument list. $offexpand will restore the default behavior.

Macro definitions are preserved in a save/restart file and are available again when performing a continued compilation.

Comparison of GAMS-F with GAMS macros

The GAMS-F preprocessor combines aspects of traditional macros with that of functions and objects. The example 7 from the GAMS-F documentation using macros can be found in the GAMS model library under the name two3mac. Some of the main differences between GAMS macros and the GAMS-F preprocessor are:

  • A macro is a new GAMS data type and shares the name space of GAMS symbols, like sets, parameters, variables,etc.
  • Instead of using <id> == <body>; to recognize a macro, we use $macro <id> <body> with the $ in position 1.
  • Surrounding parenthesis are not automatically added to the macro body when the macro is expanded.
  • A macro is recognized and expanded anywhere a proper GAMS identifier can be used. This can be suppressed by $onmacro/offmacro.
  • No automatic definition of new aliased sets and their use in controlled index positions. The .local feature has been added to ensure local use and eliminates the need for new alias definitions.
  • No automatic equation definitions for MCP models.
  • The body of the macro is only used during expansion. Hence, the macro definitions are not order dependent.
  • Variables in macro bodies will have an implicit .L when using in assignment statements. This is not a macro expansion feature, but a new GAMS feature that needs to be activated by $onDotL/$offDotL

GAMSIDE

  • The model library open file no longer converts the file name to lowercase
  • The ViewClose command for IDECmds now allows closing for any file
  • Added option to execute command scripts (.cmd files) from the IDE
  • Pressing F3 (search again) after a search/replace will restart the replace dialog
  • Output of the put_utility 'title' option will be shown in the process window

GAMS Data Utilities

CHOLESKY
  • Compute the Cholesky factors of a symmetric positive-definite matrix
EIGENVALUE
  • Compute the eigenvalues of a symmetric matrix
EIGENVECTOR
  • Compute the eigenvalues and eigenvectors of a symmetric matrix
GDXCOPY
  • When we convert a gdx file using the -Replace option, and the file is open in the IDE, the IDE will be signaled to close the file and reopen the file after the conversion is complete.
GDXDUMP
  • Updated documentation.
GDXVIEWER
  • Allow resizing of the column width
GDXDCLIB
  • Reading an aliased set could return too many elements
GDXMERGE
  • Fixed a problem when we specify a list of identifiers

SCENRED2

Scenred2 is an updated and expanded version of the scenred utility for scenario reduction. Scenred2 is intended to be a replacement for the existing scenred, but we have made the newer version available as scenred2 due to some differences in the options used to control scenred's behavior. Having both available also facilitates comparisons between the two.

New features in scenred2 include:

  • Tree construction. Scenred could only reduce existing scenario trees, while scenred2 can create trees from collections of independent scenarios (i.e. from scenario "fans").
  • Visualization. Scenred2 contains new options to create input files for GNUPLOT.
  • Improved metrics. Tree reduction can now be carried out w.r.t. the Fortet-Mourier metric, instead of the upper bounds given by the Monge-Kantorovich metric.

Documentation

  • Updated McCarl GAMS User's Guide

Other

  • Semidefinite Programming Solver CSDP available for Windows, Linux and Macintosh on Intel distributions. Some examples are included in the GAMS Model Library:
  • Additional Lahey Fortan version of all API files does not depend on a C compiler

Model Libraries

GAMS Model Library

  • two3mac (341): Simple 2 x 2 x 2 General Equilibrium Model Using Macros
  • trnssdp (340): Solving the Transportation LP Problem using SDP
  • gqapsdp (339): SDP Convexifications of the Generalized Quadratic Assignment Problem
  • maxcut (338): Goemans/Williamson Randomized Approximation Algorithm for MaxCut

GAMS Test Library

Solvers

Coin-OR

  • New libraries
    • Bonmin 0.100
    • Cbc 2.2
    • Glpk 4.32
    • Ipopt 3.5
  • Scip 1.1
  • Mumps 4.8.3 (used by Ipopt and Bonmin)
  • CoinCbc can now use multiple threads (see new option "threads). This option is available for all platforms other than Windows.
  • Scip supports special ordered set of type 1 and 2 (SOS1 and SOS2). Further, a new heuristic and a new cutting plane separator has been added, the preprocessing has been improved, the Clp interface revised, and bugs were fixed.

Cplex

New libraries 11.2

CPLEX 11.2 offers finer control for solution polishing. In previous versions, the only stopping criterion for solution polishing was set by the parameter PolishTime to limit time spent polishing a solution. General stopping criteria, such as the time limit, absolute MIP gap, relative MIP gap, MIP node limit or MIP integer solution limit did not apply to solution polishing.

Now, however, CPLEX 11.2 allows the user to control more finely when solution polishing terminates. In other words, the usual tolerances (EpAGap and EpGapinitalized with GAMS parameters OptCA and OptCr) and limits (IntSolLim, NodeLim and TiLim initialized with GAMS paramter NodLim and ResLim) now apply to solution polishing.

In addition to those existing parameters that now control the termination of solution polishing, there are also new parameters specific to the starting conditions for solution polishing.

With these new parameters, a user can tell CPLEX when to switch from branch & cut to solution polishing. CPLEX is able to switch after it has found a feasible solution and put into place the MIP structures needed for solution polishing. When these two conditions are met (feasible solution and structures in place), CPLEX stops branch & cut and switches to solution polishing whenever the first of these starting conditions is met:

  • when CPLEX achieves a specified absolute MIP gap (PolishAfterEpAGap)
  • when CPLEX achieves a specified relative MIP gap (PolishAfterEpGap)
  • when CPLEX finds a specified number of integer solutions (PolishAfterIntSol)
  • when CPLEX processes a specified number of nodes (PolishAfterNode)
  • when CPLEX reaches a specified time limit on time spent in optimization (PolishAfterTime)

The new parameters are incompatible with the deprecated option PolishTime. If you use them together in an option file you will see an error like this:

Reading parameter(s) from "C:\tmp\cplex.opt"

>>  polishtime 5
*** Warning line 1: deprecated option "polishtime"; Use option polishafter... for finer solution polishing control.
>>  polishafterintsol 1
Finished reading from "cplex.opt"
CPLEX Error  1807: Incompatible parameters.
polishafterintsol: current = 2100000000, default = 2100000000, minimum = 1, maximum = 2100000000

A few examples with the corresponding GAMS/CPLEX option file:

  • As an example of how to manage time spent polishing a feasible solution, suppose the user wants to solve a problem by spending 100 seconds in branch & cut and an additional 200 seconds in polishing:
TiLim 300
PolishAfterTime 100
  • Switch to polishing after first feasible solution:
PolishAfterIntSol 1
  • For example, the following procedure applies branch & cut until it reaches a 10% gap. Then it starts solution polishing until it narrows the gap to 2%.
PolishAfterEpGap 0.1
EpGap 0.02

Lindoglobal

New libraries 5.0.1.292 now also for Sun Sparc Solaris

PATH

New libraries 4.7.01 fix preprocessing bug for both MCP and NLP front ends

BDMLPD, CPLEXD and CONOPTD

Enhancements and bug fixes for the three experimental in-core communication solver links BDMLPD, CPLEXD and CONOPTD.

Solver/Platform Availability Matrix

Solver/Platform availability - 22.9    December 1, 2008
  x86
MS Windows
x86_64
MS Windows
x86
Linux
x86_64
Linux
Sun Sparc
SOLARIS
Sun Sparc64
SOLARIS
Sun Intel
SOLARIS
HP 9000
HP-UX 111
DEC Alpha
Digital Unix 4.03
IBM RS-6000
AIX 4.3
Mac PowerPC
Darwin
Mac Intel32
Darwin
SGI
IRIX2
ALPHAECP x x x x x x x   x x x x  
BARON 8.1 x 32bit x 32bit           x      
BDMLP x x x x x x x x x x x x x
COIN x x x x     x       x x  
CONOPT 3 x x x x x x x x x x x x x
CPLEX 11.2 x x x x x x x 10.0 8.1 x   x 9.1
DECIS x x x x x 32bit   x x x     x
DICOPT x x x x x x x x x x x x x
KNITRO 5.1 x 32bit x x x 32bit         x x  
LINDOGLOBAL 5.0 x x x x x x         x x  
LGO x x x x x x x x x   x x x
MILES x x x x x x x x x x x x x
MINOS x x x x x x x x x x x x x
MOSEK 5 x x x x x x x 3.2     x x  
MPSGE x x x x x x x x x x x x x
MSNLP x x x x x 32bit   x     x x  
NLPEC x x x x x x x x x x x x x
OQNLP x 32bit x 32bit                  
OSL V3 x 32bit x 32bit x 32bit   V2   x     V2
OSLSE x 32bit x 32bit x 32bit       x      
PATH x x x x x x x x x x x x x
SBB x x x x x x x x x x x x x
SNOPT x x x x x x x x x x x x x
XA x 32bit x x x 32bit   x x x      
XPRESS 18.00 x 32bit x 32bit x 32bit   16.10   x      
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.

GAMS Distribution 22.8   August 1, 2008

Acknowledgements

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, Andrea Consiglio, Anton Eremeev, Mustafa Esen,Josef Kallrath, Erwin Kalvelagen, Todd Munson, Rich Roberts, and Andres Ramos.


GAMS System

GAMS

  • GAMS scratch file extension: Starting with distribution 22.9 the default file extension of intermediate files located in the 225? directories will change from .scr to .dat. For distribution 22.8 it is still .scr. The scratch extension now is a parameter that can be changed with the GAMS option ScrExt, e.g gams trnsport scrext=tmp. Within GAMS code you get the scratch extension using %gams.scrext%.
  • Increased the maximum input line length to 40,000 characters and the maximum number of columns in a table to 10,000.
  • Checking for an interrupt is now also done inside a GAMS looping constructs.
  • The $LOAD directive can read the universe from a gdx file by specifying $LOAD id=*.
  • Certain gdx file read operations are now faster and use less memory.
  • GAMS parameters gdxcompress and gdxconvert
    • Allow new gdx files to be written in an older format of the gdx file.
    • Usage through an environment variables (valid for all gdx related operations): gdxconvert = <value> and gdxcompress = <value> or via GAMS command line parameters: gdxconvert = <value> and gdxcompress = <value>.
    • Possible values for gdxcompress
      • 0 (or empty): no compression
      • 1: compression turned on
    • Possible values for gdxconvert:
      • V7: version 7
      • V6: version 6
      • V5: version 5
    • E. g. to get a compressed v6 gdx file enter: gams <model_name> gdxconvert=v6 gdxcompress=1 gdx=<gdx_file>.
    • Note:
      • With GAMS 22.8 the default format for gdx files is V7 uncompressed.
      • Only V6 and V7 support compression.
      • V7 formatted files were introduced with version 22.6 of GAMS; V6 formatted files were introduced with version 22.3 of GAMS. GAMS platforms that were introduced after 22.3/22.6 (e.g. Mac Intel or SunSparc64) do not support V5/V6.
      • The command line options have a higher precedence as the environment variables with the same name.

Utilities

  • New
    • gdx2xls: Converts an entire gdx data container to a Microsoft Excel spread sheet.
    • invert: Calculates the inverse of a matrix provided as a gdx file (for more information see gdxutils documentation).
    • msappavail: Checks which Microsoft Office programs are installed.
    • xlstalk: Allows some interaction with Excel to open/close/save Excel files.
  • Extended/Updated
    • gdxcopy: New option to replace existing gdx files.
    • gdxdiff New id option to compare specified ids only.
    • gdxmerge New optional output parameter to specify the name of the output file.
    • gdxviewer: Fixed problem with cube view.

GAMSIDE

Fixed problem when moving a column to the plane in the gdx data viewer.


Model Libraries

GAMS Test Library

New models, including tests for

  • invert utility
  • ls solver
  • poly function
  • gdxconvert and gdxcompress parameters

GAMS Data Utilities

GAMS introduces the new model library 'GAMS Data Utilities' containing models that demonstrate the various utilities to interface GAMS with other applications.

PRACTICAL FINANCIAL OPTIMIZATION Models

The models of the forthcoming book PRACTICAL FINANCIAL OPTIMIZATION - A Library of GAMS Models by Andrea Coniglio, Soren Nielsen, and Stavros A. Zenios have been included in the GAMS distribution. It is a companion volume to the book Practical Financial Optimization by Stavros A. Zenios.


Solvers

Baron

New libraries 8.1.5 for Windows, Linux, and AIX

BDMLPD

GAMS 22.8 introduces a third experimental solver BDMLPD besides CONOPTD and CPLEXD. They are very similar compared to their professional brothers BDMLP, CONOPT and CPLEX. They lack some functionality (e.g. CPLEXD does not solve QCP models) but offer in-core communication between GAMS and the solver. No large model scratch files need to be written to disk which can save time if you solve many models in your GAMS program. This in-core execution is activated by setting <modelname>.solvelink=5; before the solve statement.

Coin-OR

  • CoinBonmin
    • New libraries 0.99
    • Support of user-defined cut generators and heuristics via BCH (Branch and Cut Heuristic)
  • CoinCbc new libraries 2.1
  • CoinScip supports user-defined cut generators, heuristics, and incumbent report callbacks via BCH

Convert

New option hessian to dump the Hessian matrix into a GDX file. Similar to the option jacobian.

Cplex

New libraries 11.1.1

Lindoglobal

New libraries 5.0.1.292. Sun Sparc Solaris 5.0.1.274.

LS

Mosek

New libraries 5 Rev 90

XA

New libraries for Windows

Solver/Platform availability - 22.8    August 1, 2008
  x86
MS Windows
x86_64
MS Windows
x86
Linux
x86_64
Linux
Sun Sparc
SOLARIS
Sun Sparc64
SOLARIS
Sun Intel
SOLARIS
HP 9000
HP-UX 111
DEC Alpha
Digital Unix 4.03
IBM RS-6000
AIX 4.3
Mac PowerPC
Darwin
Mac Intel32
Darwin
SGI
IRIX2
ALPHAECP x x x x x x x   x x x x  
BARON 8.1 x 32bit x 32bit           x      
BDMLP x x x x x x x x x x x x x
COIN x x x x     x       x x  
CONOPT 3 x x x x x x x x x x x x x
CPLEX 11.1 x x x x x x x 10.0 8.1 x   x 9.1
DECIS x x x x x 32bit   x x x     x
DICOPT x x x x x x x x x x x x x
KNITRO 5.1 x 32bit x x x 32bit         x x  
LINDOGLOBAL 5.0 x x x x x x         x x  
LGO x x x x x x x x x   x x x
MILES x x x x x x x x x x x x x
MINOS x x x x x x x x x x x x x
MOSEK 5 x x x x x x x 3.2     x x  
MPSGE x x x x x x x x x x x x x
MSNLP x x x x x 32bit   x     x x  
NLPEC x x x x x x x x x x x x x
OQNLP x 32bit x 32bit                  
OSL V3 x 32bit x 32bit x 32bit   V2   x     V2
OSLSE x 32bit x 32bit x 32bit       x      
PATH x x x x x x x x x x x x x
SBB x x x x x x x x x x x x x
SNOPT x x x x x x x x x x x x x
XA x 32bit x x x 32bit   x x x      
XPRESS 18.00 x 32bit x 32bit x 32bit   16.10   x      
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.

GAMS Distribution 22.7   May 1, 2008

Acknowledgements

We would like to thank all of our users who have reported problems and made suggestions for improving this release. In particular, we thank Jens Baudach, Michael Ferris, Josef Kallrath, Aldo Vecchietti and Stefan Vigerske.

GAMS System

GAMS

Enhanced Data Statements

The data statements have been enhanced to allow initial values for equations and variables in addition to set and parameter data. Those new data statements follow the syntax for list and table data statement for parameters by adding an additional dimension to specify the specific data attribute. The variable and equation suffixes can be used in this additional dimension. For example, the solution values for the transport example could be written as:

variable x(i,j) / (seattle.(new-york 50, chicago 300)
                   san-diego.(new-york,topeka) 275   ).l
                  seattle.topeka.m     0.36
                  san-diego.chicago.m  0.009 /
variable z / l 153.6750 /

equation demand(j) / (new-york 0.2250
                      chicago  0.1530
                      topeka   0.1260).m /;

Only the non default values need to be specified. The following attributes can be used according to the variable type:

.l      level
.m      marginal
.lo     lower bound
.up     upper bound
.scale  scale value
.prior  priority for discrete variables
.fx     shorthand for setting .l,.lo and .up to the same value

With table style input all index positions have to appear in the row definition. For example we could write the above list oriented statement in table form as:

variable table x(i,j) initial values
                    l       m
seattle. new-york   50
seattle. chicago   300
seattle. topeka          0.36
san-diego.new-york 275
san-diego.topeka   275
san-diego.chicago       0.009

As with other data statements, $onmulti, $ondelim and $onempty can be used as well.

The Matching Operator

Mappings between n-tuples can be clumsy to enter via data statements and are often difficult to compute. Similar to the product operator (.) we introduced a match operator (:). For example, the two set data statements give the same result:

 Set I / t1*t6:s3*s5 /
Set j / t1.s3,t2.s4,t3.s5 /

In another example we may want to count "tuples" in some fashion:

 sets h /h1*h24/, d /d1*d365/, dh(d,h) /#d.#h/
sets t /t1*t8760/, tdh(t,d,h) /#t:#dh/

The resulting set tdh will then have the values:

 t1.d1.h1, t2.d1.h2, t3.d1.h3 ..

Currently there is no general matching operator for assignment statement. To facilitate some otherwise very clumsy and expensive calculations, one can use the following option statement:

 Set ijk(I,j,k), x(I,j,k,l) ..
Option ijk(i:j,k), x(ijk:l);

This statement will first clear the set ijk, then apply the matching operators to i and j and finally apply a product operation to the matched (i,j) with k which results in:

 i1.j1.k1, i1.j1.k2, ..
i2.j2.k1, i2.j2.k2, ..

And x will match ijk with the set l resulting in:

 i1.j1.k1.l1, i1.j1.k2.l2, ..

Limit on Memory Use - HeapLimit

In some applications it may be desirable to limit the amount of memory a GAMS job can use. HeapLimit (MB) is a new GAMS parameter and function/property that limits memory used to store dynamic data. If the dynamic data storage exceeds this limit, the job will be terminate with return code 10, out of memory. These features are especially useful in a server environment.

  • The GAMS parameter HeapLimit sets the limit of memory use at compile and execution time for a GAMS job
  • The function/property HeapLimit can be used to interrogate the current limit and allows it to be rest
  • The NLP solver CONOPT also has a HeapLimit option which ensures that the solver will not use more dynamic memory

Other enhancements

  • A symbol can have up to 20 dimensions and identifiers and labels can have up to 63 characters
  • The GAMS executable understands the ‘Keep’ and ‘CurDir’ parameters
  • New derived variable/equation attribute .range is defined as x.range=x.up−x.lo. This provides a convenient way to see if a variable is fixed
  • Additional references in compile time constant expression in $eval and $ife statement can now reference scalar parameters and the function card(id)
  • Added the tuple text if we display with the format x:0:0:1 which puts single items on one line
  • In table statements under $ondelim, we can drop the dummy element in the column definition
  • As in execution time GDX loads, we can extract the domain information with a load statement like $load setid=parameterid

Gams Data Exchange (GDX)

  • A symbol in a GDX file can have up to 20 dimensions and identifiers and labels can have up to 63 characters
  • A GDX file can store domain information for a symbol
  • A GDX file can save an aliased set

GDX Utilities

  • GDXDUMP writes now data for variables and equations (no longer surrounded by $ontext / $offtext)
  • MDB2GMS allows writing of an empty symbol
  • GDXXRW
    • No longer interprets a text field as a numeric value (because of international notation issues); the value returned for such a cell is NA
    • Fixed a problem with the default value for a field for a VAR and EQU
  • GDXMERGE did not merge an aliased set correctly
  • GDXVIEWER can export all symbols to Excel in command-line mode by specifying ID=*

GAMSIDE

  • Supports an optional file, ‘idecfg.ini’, to display additional items like:
    • Option to open a html document
    • Multiple model libraries
    • Display of an image in the process window
  • Fixed a problem matching parenthesis on an empty line
  • Fixed a problem deleting a 225 directory (when this was the last directory used for opening a file)

GAMS Model Library

GAMS Test Library

  • 30 new models, including
    • Tests for proper handling of domains larger than 10 and UEL names longer than 31 characters
    • Testing of gdxmerge with aliased sets
    • New tests for DECISC and DECISM
    • Several models testing EMP

Documentation

  • Updated McCarl GAMS User's Guide

Solvers

BARON:

New libraries (version 8.1.4)

CPLEX

New libraries (version 11.0.1)

COIN-OR

  • New MIP solver GAMS/SCIP from Zuse Institute Berlin (ZIB)
    • use as option mip=coinscip;
    • uses COIN-OR LP solver CLP
    • free for academic users.
  • Support of Windows 64-bit platform
  • CoinCbc supports user-defined cut generators and heuristics via BCH (Branch and Cut Heuristic)
  • CoinIpopt and CoinBonmin support dynamic load of linear solvers MA27, MA57 (HSL), and Pardiso.
  • Minor updates in the libraries and interfaces of CoinCbc, CoinGlpk, CoinIpopt, and CoinBonmin.

CONOPT

EMP - Extended Mathematical Programming

(Experimental) Framework for automated mathematical programming reformulations as

  • Bilevel Programs
  • Disjunctive Programs
  • Extended Nonlinear Programs
  • Embedded Optimization Complementarity Programs

Thereby new upcoming model types are reformulated into established math programming classes in order to use mature solver technology. EMP comes free of charge with any licensed GAMS system but needs a subsolver to solve the generated models.

LOGMIP

LogMIP 1.0 is a program for solving linear and nonlinear disjunctive programming problems involving binary variables and disjunction definitions for modeling discrete choices. While the modeling and solution of these disjunctive optimization problems has not yet reached the stage of maturity and reliability as LP, MIP and NLP modeling, these problems have a rich area of applications. LogMIP 1.0 has been developed by A. Vecchietti, J.J. Gil and L. Catania at INGAR (Santa Fe-Argentina) and Ignacio E. Grossmann at Carnegie Mellon University (Pittsburgh-USA) and is composed of:

  • a language compiler for the declaration and definition of disjunctions and logic constraints
  • solvers for linear and non-linear disjunctive models (lmbigm, lmchull, lmlboa)

LogMIP comes free of charge with any licensed Windows GAMS system but needs a subsolver to solve the generated MIP/MINLP models. For more information see

MOSEK

New libraries (version 5.0.0.79)

CPLEXD and CONOPTD

GAMS 22.7 introduces two experimental solvers: CPLEXD and CONOPTD. They are very similar compared to their professional brothers CPLEX and CONOPT. They lack some functionality (e.g. CPLEXD does not solve QCP models) but offer in-core communication between GAMS and the solver. No large model scratch files need to be written to disk which can save time if you solve many models in your GAMS program. This in-core execution is activated by setting modelname.solvelink=5; before the solve statement.

Solver/Platform Availability Matrix

Solver/Platform availability - 22.7: May 1, 2008
  x86
MS Windows
x86_64
MS Windows
x86
Linux
x86_64
Linux
Sun Sparc
SOLARIS
Sun Sparc64
SOLARIS
Sun Intel
SOLARIS
HP 9000
HP-UX 111
DEC Alpha
Digital Unix 4.0
IBM RS-6000
AIX 4.3
Mac PowerPC
Darwin
Mac Intel32
Darwin
SGI
IRIX2
ALPHAECP x x x x x x x   x x x x  
BARON 8.1 x 32bit x 32bit           x      
BDMLP x x x x x x x x x x x x x
COIN x x x x     x       x x  
CONOPT 3 x x x x x x x x x x x x x
CPLEX 11.0 x x x x x x x 10.0 8.1 x   x 9.1
DECIS x x x x x 32bit x x x x     x
DICOPT x x x x x x x x x x x x x
KNITRO 5.1 x 32bit x x x 32bit         x x  
LINDOGLOBAL 5.0 x x x x x x         x x  
LGO x x x x x x x x x   x x x
MILES x x x x x x x x x x x x x
MINOS x x x x x x x x x x x x x
MOSEK 5 x x x x x x x 3.2     x x  
MPSGE x x x x x x x x x x x x x
MSNLP x x x x x 32bit   x     x x  
NLPEC x x x x x x x x x x x x x
OQNLP x 32bit x 32bit                  
OSL V3 x 32bit x 32bit x 32bit   V2   x     V2
OSLSE x 32bit x 32bit x 32bit       x      
PATH x x x x x x x x x x x x x
SBB x x x x x x x x x x x x x
SNOPT x x x x x x x x x x x x x
XA x 32bit x x x 32bit   x x x      
XPRESS 18.00 x 32bit x 32bit x 32bit   16.10   x      
1)GAMS distribution for HP 9000/HP-UX is 22.1.
2)GAMS distribution for SGI IRIX is 22.3.

GAMS Distribution 22.6   December 24, 2007

Acknowledgements

We would like to thank all of our users who have reported problems and made suggestions for improving this release. In particular, we thank Anton Eremeev, Michael Ferris, Christian Gilow, Uwe Schneider, Monique Guignard-Spielberg and Stefan Vigerske.

New Platforms

  • Solaris on Sparc64 (64-bit)
  • Mac on Intel (32-bit)

GAMS System

  • Complete detailed GAMS Release Notes
  • Dollar Control Options

  • Additional Licensing Information

  • Put Writing Facility

  • Enhanced Functions on controlling Sets

  • Other Enhancements
    • Unlimited input string length for $call, execute and put_utility exec/shell.
    • The listing file can be redirected to the standard error stream by using the gams parameter ao=3
    • The model attribute .numvarproj was added to count bound projections during model generation. Some minor additions to MODEL STATISTICS and an enhanced column listing help identify potential problems (the variable attribute .infeas could also be used to display potential bound projections)

  • GAMS IDE:
    • GDXviewer supports Excel 2007 format xlsx
    • GDXviewer has an integrated symbol search

  • GAMS Model library: New models
    • Asynchronous Jacobi Methods (jacobi)
    • Dantzig Wolfe Decomposition and Grid Computing (danwolfe)
    • Portfolio Modeling with Parallel Solutions (qmeanvag)
    • Cplex Solution Pool for a Simple Facility Location Problem (solnpool)
    • Mission Planning for Synthetic Aperture Radar Surveillance (swath)
    • TSP tour plotting with LaTeX xy-pic environment (tsp2ltx)
    • Min Cost Flow with an Instance generated by NETGEN (netgen)

  • GDXXRW
    • Supports Excel 2007 format xlsx

  • GDX2HAR/HAR2GDX
    • GAMS distributes and supports utilities for converting HAR (header array) files used by GEMPACK: gdx2har and har2gdx. Details about these utilities can be found at Tom Rutherford's page here.

Solvers

  • AlphaECP:New libraries (version 1.63). AlphaECP can call an NLP solver during the optimization to improve convergence properties for continuous variables.

  • BARON:New libraries (version 8.1.1). XPRESS is available as a subsolver for LPs (option "lpsol=7"). Identification of common linear subexpressions in nonlinear functions that speeds up BARON's parsing time considerably for certain problems.

  • COIN-OR Solvers:New solver libraries of CBC/CLP (2.0), GLPK (4.22), IPOPT (3.3), BONMIN (0.9). The GAMS/CoinCBC link has been completely rewritten so that it offers the performance of the CBC standalone version. Many new options have been added. The GAMS/CoinGLPK link uses now the advanced B&B solver of GLPK. Support of Solaris 64bit Intel platform (SIG) and MacOS on Intel chips (DII).

  • CPLEX:New libraries (11.0). There are quite a few changes in Cplex 11 and the GAMS/CPLEX interface. Please check the detailed GAMS/CPLEX 11 release notes. The major enhancements are:
    • Improved Mixed Integer Programming (MIP) Performance
    • Enhanced Parallel MIP
    • Multiple MIP Solutions
    • Performance Tuning tool

  • LINDOGLOBAL:New libraries (version 5.0.1.183). Support of Solaris Sparc64 platform (SOX) and Intel Mac (DII).

  • MOSEK:New libraries (version 5.0.0.62). Support of Solaris Sparc64 platform (SOX) and MacOS on Intel chips (DII).

  • XPRESS:New libraries (version 18.00)

Solver/Platform availability - 22.6    December 24, 2007
  x86
MS Windows
x86_64
MS Windows
x86
Linux
x86_64
Linux
Sun Sparc
SOLARIS
Sun Sparc64
SOLARIS
Sun Intel
SOLARIS
HP 9000
HP-UX 111
DEC Alpha
Digital Unix 4.0
IBM RS-6000
AIX 4.3
Mac PowerPC
Darwin
Mac Intel32
Darwin
SGI
IRIX2
ALPHAECP x x x x x x x   x x x x  
BARON 8.1 x 32bit x 32bit           x      
BDMLP x x x x x x x x x x x x x
COIN x 32bit x x     x       x x  
CONOPT 3 x x x x x x x x x x x x x
CPLEX 11.0 x x x x x x x 10.0 8.1 x   x 9.1
DECIS x x x x x 32bit x x x x     x
DICOPT x x x x x x x x x x x x x
KNITRO 5.1 x 32bit x x x 32bit         x x  
LINDOGLOBAL 5.0 x x x x x x         x x  
LGO x x x x x x x x x   x x x
MILES x x x x x x x x x x x x x
MINOS x x x x x x x x x x x x x
MOSEK 5 x x x x x x x 3.2     x x  
MPSGE x x x x x x x x x x x x x
MSNLP x x x x x 32bit   x     x x  
NLPEC x x x x x x x x x x x x x
OQNLP x 32bit x 32bit                  
OSL V3 x 32bit x 32bit x 32bit   V2   x     V2
OSLSE x 32bit x 32bit x 32bit       x      
PATH x x x x x x x x x x x x x
SBB x x x x x x x x x x x x x
SNOPT x x x x x x x x x x x x x
XA x 32bit x x x 32bit   x x x      
XPRESS 18.00 x 32bit x 32bit x 32bit   16.10   x      
1)GAMS distribution for HP 9000/HP-UX is 22.1.
2)GAMS distribution for SGI IRIX is 22.3.

GAMS Distribution 22.5   June 1, 2007

Acknowledgements

We would like to thank all of our users who have reported problems and made suggestions for improving this release. In particular, we thank Christian Gilow and Josef Kallrath.

GAMS System

  • New functions and features
    • Added functions system.gamsrelease and gamsrelease
    • Added function poly(x,a0,a1,a2,a3..) = sum(i=0 to n, ai*x^i)
    • Appendout (ao)=2 will redirect the listing file to stdout. This feature is not available when running under the IDE.

  • GAMS IDE:
    • Open in new window creates now a single new window when multiple files have been selected
    • Spelling menu entry added to Edit menu
    • Gdxviewer can write a single symbol and all symbols to an Excel file

  • GAMS Model library: New models
    • eps-Constraint Method for Multiobjective Optimization (epscm)
    • Kissing Number Problem using Variable Neighborhood Search (knp)
    • Termination routine to ensure solvers stay with resource limit (schulz)
    • How to test for a GAMS version (version1)

Solvers

  • AlphaECP: A new solver called GAMS/AlphaECP for mixed integer non-lin