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

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 24.1

To use this distribution, the maintenance expiration date for your license must be later than May 30, 2013.

Distribution History

24.1.2 (Maintenance Release), Release Date June 16, 2013
24.1.1 (Major Release), Release Date May 30, 2013

GAMS Maintenance Release 24.1.2

Maintenance releases do not provide any new features. They are issued to provide bug fixes, performance improvements and maintenance releases of solver libraries. The License Check Date remains the same as for the prior major release. This means that any license file that worked with major release 24.1.1 will also work with this maintenance release.

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 Sergio Corvalan, George Mavrotas, Renger van Nieuwkoop, and Andres Ramos.

GAMS System

GAMS

Solvers

BARON

Cplex/CplexD

MOSEK

SULUM

Tools & APIs

GDXXRW

GAMS Major Release 24.1.1

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 Étienne Ayotte-Sauvé, Stephen Frank, Youngdae Kim, Andres Ramos, Steffen Rebennack, and Francisco Trespalacios.

GAMS System

Installer

Documentation

GAMS

GAMS IDE

Solvers

"D" Solvers

ALPHAECP

ANTIGONE

Bonmin, Couenne, Osi*, SCIP

Baron

CBC

Cplex

CONOPT

DICOPT

EMPSP

New experimental keywords making use of the extrinsic function library lsadclib to sample random variables with parametric distributions, any feedback will be appreciated:

GloMIQO

Gurobi

Ipopt, IpoptH

IpoptH

JAMS

KNITRO

Lindo, LindoGlobal

Mosek

MSNLP, OQNLP

OsiMosek

OSL/OSLSE

SCIP

SULUM

XPRESS

Tools & APIs

Object Oriented APIs

New features were added to the object oriented GAMS APIs including e.g. the capability to specify the domains of symbols, check for domain violations, copying ModelInstances, or setting the debug level using a environment variable. More details about new and modified functions can be found in the following sections about the different languages.

.NET

Java

Python

GDXXRW

GDXDUMP

CSV2GDX

MessageReceiverWindow

Model Libraries

GAMS Data Library

GAMS Model Library

GAMS Test Library

Solver/Platform Availability Matrix

Solver/Platform availability - 24.1    May 30, 2013
  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
Mac x86_64
Darwin
ALPHAECP x x x x x x x x x
ANTIGONE 1.0 x x x x          
BARON 12.3 x x x x          
BDMLP x x x x x x x x x
COIN-OR x x x x     x   x
CONOPT 3 x x x x x x x x x
CPLEX 12.5 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
GLOMIQO 2.2 x x x x          
GUROBI 5.5 x x 5.0 x       x x
KNITRO 8.1 x x x x     x   x
LINDO 8.0 x x x x     x   x
LINDOGLOBAL 8.0 x x x x 6.0 6.0 x   x
LGO x x x x x x x   x
MILES x x x x x x x x x
MINOS x x x x x x x x x
MOSEK 7 x x x x         x
MPSGE x x x x x x x x x
MSNLP x x x x x 32bit     x
NLPEC x x x x x x x x x
OQNLP x 32bit x 32bit          
PATH x x x x x x x x x
SBB x x x x x x x x x
SCIP 3.0 x x x x     x   x
SNOPT x x x x x x x x x
SOPLEX 1.7 x x x x     x   x
SULUM 2.0 x x x x          
XA x x x x          
XPRESS 24.01 x x x x x x x x x

GAMS Distribution 24.0

To use this distribution, the maintenance expiration date for your license must be later than December 24, 2012.

Distribution History

24.0.2 (Maintenance Release), Release Date February 14, 2013
24.0.1 (Major Release), Release Date December 18, 2012

GAMS Maintenance Release 24.0.2

Maintenance releases do not provide many new features. They are issued to provide bug fixes, performance improvements and maintenance releases of solver libraries. The License Check Date remains the same as for the prior major release. This means that any license file that worked with major release 24.0.1 will also work with this maintenance release.

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 Arne Drud, Michael Ferris, Erwin Kalvelagen, Aida Khajavirad, Ignacio Perez, Nick Sahinidis, and Dimitri Tomanos.

Platforms

  • removed dependency on GLIBC 2.7 in Linux systems

GAMS System

APIs

Object Oriented APIs

  • introduced new function CopySymbol (see individual languages for precise name)
  • label and symbol lookup is now case insensitve
  • fixed handling of infinite bounds for GAMSModifiers
.NET
  • added new function GAMSSymbol.CopySymbol
  • added new examples in Visual C++ and VB.NET
Java
  • added new function GAMSSymbol.copySymbol
Python
  • added new function _GamsSymbol.copy_symbol
  • on Windows and Linux, compiled libraries for both Python 2.6 and Python 2.7 are distributed
    while the Python 2.7 version can be found in <GAMSDir>\apifiles\Python\api as before, the Python 2.6 version is in <GAMSDir>\apifiles\Python\api_26

GDX

  • fixed a casing problems with the function gdxSymbolGet/SetDomainX for client languages C++, C#, Fortran, Java, Python, VBA, VB.NET

GMO

  • increased API version number to 11 (was forgotten in 24.0.1)

GAMS

  • the reason for ignoring an option in the GAMS options file reader is now printed
  • fix a bug when reading scalars from a compressed GDX file

GAMS IDE

  • changed the interface for the Text Differ to look like the GDXDiff interface
  • moved menu for Text Diff under Utilities menu

Utilities

GDXXRW

  • gdxxrw works now with Excel Binary Workbook files (file extension .xlsb)

Solvers

BARON

  • new library 11.9.1
  • fixed handling of workspace and workfactor options

BONMIN, CBC, Couenne, GloMIQO, SCIP

  • fixed too small value in 'seconds' column in solvetrace file
  • improved resolution of solvetrace file for Cbc and SCIP

CONOPT

  • new library 3.15I
  • major update of the CONOPT solver manual (pdf file only)
  • revised definition of workspace and workfactor options: workfactor is now ignored if workspace is defined
  • minimum memory allocation adjusted for some smaller machines
  • removed no longer used options GCFORM, GCPTB1, GCPTB2

GloMIQO

  • fixed bug in reporting of dual bound when optca tolerance is larger in magnitude than optcr

GUROBI

  • new library 5.1
  • new options
    • ImproveStartNodes: A new option for transitioning from tree exploration to solution improvement in MIP
    • Seed: Modifies the random number seed. This acts as a minor perturbation to the solver, which typically leads to a different solution path. This can be useful for experimentation (e.g., for testing the robustness of a particular set of parameter changes)
  • Gurobi dropped support for Linux 32bit, so GAMS/Gurobi uses Gurobi library 5.0.2 on Linux 32bit

MOSEK

  • write clearer text error message to log and listing file

MPSGE

  • fixed memory issues when both workspace and workfactor are set and when estimates are too high

MSNLP / OQNLP

  • fixed problems with LSGRG on instances with more than 10000 variables or more than 10000 equations

SCIP

  • new SCIP library 3.0 #0134f8c
  • fixed bug where the reported objective value did not equal the level value of the objective variable
  • improved cleanup of SCIP solutions that are not feasible in the original problem; the model status is now adjusted accordingly

XPRESS

  • fixed reporting of resused and iterused attributes for infeasible and unsolved models

Tools

ConvertD

  • in LocalSolver output, long linear parts of equations are now printed by using the sum() operator
  • added solution output option and functionality for LocalSolver (lspsol)
  • fixed bug when using objvar option in conversion to GAMS format
  • fixed bug with variable indices when writing nonlinear expressions

EXAMINER

  • fixed check of complementarity slackness for discrete variables in MIQCPs
  • added a consistency check on model attributes (currently only objval)

JAMS

  • fixed many problems with objective functions in equilibrium followers, especially those arising when variables were skipped or when the objective var was reformulated out
  • fixed problems with VI models and vars getting squeezed out that should not have been
GAMS Major Release 24.0.1

Acknowledgments

We would like to thank all of our users who have reported problems and made suggestions for improving this release.

Platforms

GAMS System

APIs

Documentation

Moved existing documentation about the APIs to <Path/To/GAMS>/docs/API. Also added new documentation there. In the GAMSIDE this documentation can be accessed at Help → Docs → API.

.NET

Add function Interrupt to GAMSJob: Sends interrupt signal to running GAMSJob

Java

This release contains a beta version of the object-oriented Java API that can be used to control GAMS from a Java program. It allows the seamless integration of GAMS into Java by providing appropriate classes for the interaction with GAMS. GAMS Java API objects allow a convenient way to exchange input data and model results with in-memory representation of data (GAMSDatabase), and to create and run GAMS models (GAMSJob) that can be customized by GAMS options (GAMSOptions). Furthermore, they introduce a way to solve a sequence of closely related model instances in the more efficient way (GAMSModelInstance).

Python

Installing the API and the required low level APIs:

cd <Path/To/GAMS>/apifiles/Python/api && python setup.py install && cd ..

Using the API without installing:

export PYTHONPATH=<Path/To/GAMS>/apifiles/Python/api  (Unix)
set PYTHONPATH=<Path\To\GAMS>\apifiles\Python\api  (Windows)

Running transport1.py example:

export LD_LIBRARY_PATH=<Path/To/GAMS>:$LD_LIBRARY_PATH (DYLD_LIBRARY_PATH on OS X, not required on Windows)
python transport1.py

Documentation about this API can be found in <Path/To/GAMS>/docs/API/GAMS_python.pdf.

Documentation

External Equations

Added a list of examples to the GAMS Test Library.

GAMS

GAMS IDE

GDXRRW

  • GDXRRW is a suite of utilities to import/export data between GAMS and R and to call GAMS conveniently from R. The software gives R users the ability to use all the optimization capabilities of GAMS, and allows visualization and other operations on GAMS data directly within R.
  • GDXRRW is unique among the GDX interface utilities in that it is an R extension made available as an R package. As such, it is run as part of an R session or script, not as part of a GAMS run, and it follows the usual R package conventions.
  • Source and binary packages for GDXRRW are part of the GAMS distribution. For the latest versions, along with a FAQ list, some hints and tips on common problems and solutions, and other helpful content, use the GDXRRW Wiki

Solvers

BARON

Bonmin

CBC

ConvertD

Couenne

Cplex/CplexD

CONOPT

GloMIQO

GUROBI

IPOPT and IPOPTH, BONMIN and BONMINH

LogMIP

MINOS

MOSEK

Optimization Services

OsiXpress

SCIP

SNOPT

SoPlex

Sulum

Xpress

Model Libraries

GAMS Data Library

GAMS EMP Library

GAMS Model Library

GAMS Test Library

Tools

SCENRED2

Solver/Platform Availability Matrix

Solver/Platform availability - 24.0    December 24, 2012
  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 x86_64
Darwin
ALPHAECP x x x x x x x x x
BARON 11.8 x x x x          
BDMLP x x x x x x x x x
COIN-OR x x x x     x   x
CONOPT 3 x x x x x x x x x
CPLEX 12.5 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
GLOMIQO 2.1 x x x x          
GUROBI 5.1 x x 5.0 x       x x
KNITRO 8.0 x x x x     x   x
LINDO 7.0 x x x x     x   x
LINDOGLOBAL 7.0 x x x x 6.0 6.0 x   x
LGO x x x x x x x   x
MILES x x x x x x x x x
MINOS x x x x x x x x x
MOSEK 6 x x x x     x   x
MPSGE x x x x x x x x x
MSNLP x x x x x 32bit     x
NLPEC x x x x x x x x x
OQNLP x 32bit x 32bit          
PATH x x x x x x x x x
SBB x x x x x x x x x
SCIP 3.0 x x x x     x   x
SNOPT x x x x x x x x x
SOPLEX 1.7 x x x x     x   x
SULUM 1.0 x x x x          
XA x x x x          
XPRESS 23.01 x x x x x x x x x

GAMS Distribution 23.9

To use this distribution, the maintenance expiration date for your license must be later than July 4, 2012.

Distribution History

23.9.5 (Maintenance Release), Released: November 09, 2012
23.9.4 (Maintenance Release), Released: October 20, 2012
23.9.3 (Maintenance Release), Released: September 26, 2012
23.9.2 (Maintenance Release), Released: August 29, 2012
23.9.1 (Major Release), Released: July 08, 2012

GAMS Maintenance Release 23.9.5

Maintenance releases do not provide any new features. They are issued to provide bug fixes, performance improvements and maintenance releases of solver libraries. The License Check Date remains the same as for the prior major release. This means that any license file that worked with major release 23.9.1 will also work with this maintenance release.

GAMS System

GDX

  • When importing a scalar variable or equation from a GDX file, the .scale attribute was set incorrectly. This has been fixed. Thanks go to Étienne Ayotte-Sauvé unearthing this problem.
  • Under some circumstances GAMS ended up with an inconsistent database when importing unsorted data. This has been fixed. Thanks go to Wolfgang Britz unearthing this problem.

Solvers

Baron

  • New libs 11.5.2
  • Fixed a reporting problem when no duals are available.

CplexD

  • GAMS/CplexD produced in some cases incorrect quadratically constraint and SOCP problems for the Cplex engine. This has been fixed.

LindoGlobal

  • Lindo's global solver cannot deal with SOS variables. If a model has SOS variables, the link automatically switches to the local solver.

LogMIP

  • Fixed bugs in bigm and indic reformulation of negated equality equations. The convex hull reformulation still has problems and has therefore been disabled for this case for now. Thanks go to Silvia Tomasi for reporting this problem.

GAMS Maintenance Release 23.9.4

Maintenance releases do not provide any new features. They are issued to provide bug fixes, performance improvements and maintenance releases of solver libraries. The License Check Date remains the same as for the prior major release. This means that any license file that worked with major release 23.9.1 will also work with this maintenance release.

GAMS System

GAMS

  • GAMS did not pass models with quadratic constraints containing the objective variable properly to some solvers (CplexD, Gurobi, Mosek and Xpress). Thanks goes to Erwin Kalvelagen bringing this to our attention. This has been fixed.
  • The GAMSIDE remembers the scope setting for text searches even after the IDE closes.

Solvers

Baron

  • New libs 11.5.0
  • Fixed a bug when using the external NLP solver on models without constraints
  • New speed ups in Baron's parser/reformulator for large scale problems
  • Improvements in local search that result in higher quality solutions identified earlier in the search
    • New dive-and-round heuristic for MINLPs. The number of rounds is selected dynamically and the search is activated and applied based on problem characteristics
    • For continuous problems, Baron introduces the ability to automatically select and switch back and forth between NLP solvers. Again, this is done in a dynamic strategy that exploits problem characteristics and solver performance for the problem at hand
    • The nlpsol option can now take the value of -1 in addition to the previously allowed values. -1, which is the default value, triggers the automatic NLP solver selection and switching strategy. If the user sets nlpsol to a solver that is not licensed, Baron sets it automatically to -1
    • The dolocal option can now take only two values (0: no local search; 1: BARON's automatic strategy). Default is 1 and will determine when/how to apply local search
    • Baron uses the most recent Snopt library (7.2-4)
    • Improvement for links to NLP solvers Minos, Snopt, and IpOpt.

Conopt

  • New 3.15G library with bug fixes

GloMIQO

  • A problem with parsing integer options has been fixed

Minos

  • Improved memory estimation calculations and logging

GAMS Maintenance Release 23.9.3

Maintenance releases do not provide any new features. They are issued to provide bug fixes, performance improvements and maintenance releases of solver libraries. The License Check Date remains the same as for the prior major release. This means that any license file that worked with major release 23.9.1 will also work with this maintenance release.

GAMS System

APIs

.NET

  • Constructor of GAMSWorkspace now appends conditionally the GAMS system directory to the PATH environment variable. This fixes a problem with applications that create and dispose many GAMSWorkspace instances.

GAMS

  • Spaces in Project/Current Directory: With 23.9.2 some solvers (e.g. BARON) do not work if the project/current directory name contains a space. This has been fixed.

Utilities

  • GDXMRW: Some bugfixes for the GAMS/MATLAB connector.

Solvers

Coin-OR

GAMS Maintenance Release 23.9.2

Maintenance releases do not provide any new features. They are issued to provide bug fixes, performance improvements and maintenance releases of solver libraries. The License Check Date remains the same as for the prior major release. This means that any license file that worked with major release 23.9.1 will also work with this maintenance release.

GAMS System

APIs

.NET

Java

GAMS

MaxProcDir

Changed default for GAMS parameter MaxProcDir from 26 to 700 which allow to have up to 700 scratch directories (225a, 225b, ...) in the project/current directory

Utilities

GAMSIDE

Double-click to open a file in the IDE works again (also fixes a single click in the McCarl guide)

Solvers

AlphaECP

Baron

Coin-OR

ConvertD

Cplex

GloMIQO

Gurobi

Jams

Knitro

Lindo

SCIP

GAMS Major Release 23.9.1

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 Steve Gabriel, Oyvind Hoveid and Renger van Nieuwkoop.

Platforms

GAMS System

APIs

.NET

This release contains a beta version of the object-oriented GAMS .NET API that can be used to control GAMS from within C# and other programming languages of the .NET framework 4. It allows the seamless integration of GAMS into the .NET environment by providing appropriate classes for the interaction with GAMS. The GAMSDatabase class for in-memory representation of data can be used for convenient exchange of input data and model results. Models written in GAMS can be run with the GAMSJob class and by using the GAMSModelInstance class a sequence of closely related model instances can be solved in the most efficient way.

To use this API one has to reference GAMS.net.dll which can be found in the GAMS system directory. Documentation about this API can be found in <GAMSDir>\apifiles\GAMS.net4.chm.

C#

GDX

GAMS

On/OffOrder

Lag and lead operations require the reference set to be ordered and constant. In some special cases one would want to use lags and leads on dynamic and/or unordered sets. A dollar control option on/offOrder has been added to locally relax the default requirements. The use of this option comes at a price: the system will not be able to diagnose odd and incorrect formulations and data sets. A small example in Test Library lagd1 illustrates the use of on/offOrder.

gamsbatch

Minor enhancements

Function libraries

The new extrinsic function library lsadclib was added to the system. It allows to use sampling routines from Lindo inside GAMS. A license for GAMS/Lindo is required to use this library. Without a license only a demo version is available which is restricted to the Normal and the Uniform distribution with not more than 10 sample points. Further information can be found in the GAMS User's Guide, Appendix J.

Utilities

GAMSIDE

GDX2Access

GDXDUMP

XLSDump

XLSTalk

Other

Solvers

Baron

Coin-OR

Conopt

Cplex

GloMIQO

Gurobi

GUSS

MOSEK

PATH

SCIP

Xpress

Documentation

Model Libraries

GAMS Data Library

GAMS EMP Library

GAMS Model Library

Updated:

New:

GAMS Test Library

Updated:

New:

Solver/Platform Availability Matrix

Solver/Platform availability - 23.9    July 4, 2012
  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 11.1 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.4 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
GLOMIQO 2.0 x x x x            
GUROBI 5.0 x x x x       x   x
KNITRO 8.0 x x x x     x     x
LINDO 7.0 x x x x     x   x x
LINDOGLOBAL 7.0 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
SOPLEX x x x x     x   x x
XA x x x x            
XPRESS 23.01 x x x x x x x x   x

GAMS Distribution 23.8 March 17, 2012

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 Alessandro Brozzi, Jan Philipp Dietrich, Michael Ferris, Christophe Gouel, Josef Kallrath, Cheng Khor, Brage Knudsen, Jeff Larson, Yanchao Liu, Alexander Mitos, Renger van Nieuwkoop, Stefan Vigerske.

Platforms

GAMS System

APIs

GAMS

New model definition features

Permutations via the option statement

Minor enhancements

Stochastic Programming

In this release we made a first cut at supporting stochastic programming in GAMS. With a few changes uncertainty can be added to an existing deterministic model. For this, the EMP framework is used to replace parameters in the model by random variables. This way (stagewise-independent) multi-stage recourse problems and chance constraint models can be formulated. Three solvers can be selected to solve those problems: DE, DECIS and LINDO.

Further information can be found in the document empsp.pdf

In addition, you can check examples of type SP from the GAMS EMP Library.

Utilities

Other

Solvers

AlphaECP

Baron

Bench

Coin-OR

Convert

Conopt

Cplex

DE

DECIS

DICOPT

GloMIQO

The new Global Mixed-Integer Quadratic Optimizer, GloMIQO (GLO-me-ko), solves Quadratically Constrained Programs (QCP) and Mixed-Integer Quadratically Constrained Programs (MIQCP) to epsilon-global optimality.

Gurobi

Guss

Ipopt

Jams

Knitro

Lindo

New solver Lindo, similar to LindoGlobal, but

LindoGlobal

MOSEK

SCIP

Snopt

SoPlex

XA

Xpress

Documentation

Amongst others, the following topics were revised in both, the GAMS Users Guide and the Bruce McCarl's Expanded GAMS Guide

Model Libraries

GAMS Data Library

GAMS EMP Library

GAMS Model Library

GAMS Test Library

Solver/Platform Availability Matrix

Solver/Platform availability - 23.8    March 17, 2012
  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 10.1 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.4 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
GLOMIQO x x x x            
GUROBI 4.6 x x x x       x   x
KNITRO 8.0 x x x x     x   x x
LINDO 7.0 x x x x     x   x x
LINDOGLOBAL 7.0 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
SOPLEX x x x x     x   x x
XA x x x x            
XPRESS 22.01 x x x x x x x x    

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 225a 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-linear problems has been added to the GAMS solver portfolio. AlphaECP is an implementation of the Extended Cutting Plane method by Tapio Westerlund and Toni Lastusilta from Abo Akademi University, Finland. The GAMS/AlphaECP solver requires the presence of a licensed MIP solver only.

  • BARON: New libraries (version 7.8) with improved local search routines.

  • COIN-OR Solvers: New libraries for CoinCbc, CoinGlpk, and CoinIpOpt. The experimental MINLP solver CoinBonmin has been introduced for the GAMS Windows and Linux systems. Bonmin (Basic Open-source Nonlinear Mixed INteger programming) provides an implementation of an NLP-based branch-and-bound algorithm, an outer-approximation decomposition algorithm, an implementation of Quesada and Grossmann's branch-and-cut algorithm, and a hybrid outer-approximation based branch-and-cut algorithm.

  • CONOPT: New libraries (version 3.14r).

  • CONVERT:
    • Added option 'NLP2MCP' that reformulates a non-integer program as a mixed complementarity problem (MCP)
    • Added option 'AmplNLC' that converts a model into C code for evaluating objectives, constraints, and their derivatives.
    • Added option 'Jacobian' that creates a GDX file containing the basic model data (matrix, initial point, evaluation of constraints at initial point and bounds)
    • Added option 'LindoMPI' that creates an MPI file which is readable by Lindo.

  • CPLEX: New libraries (version 10.20).

  • LINDOGLOBAL: The Global Optimization Solver (GAMS solver name is LINDOGLOBAL) from Lindo Systems, Inc. has been added to the GAMS solver portfolio. LINDOGLOBAL finds proven optimal solutions to non-convex mixed integer non-linear problems. The LINDOGLOBAL solver requires a license for GAMS/CONOPT. The size of a model solved by LINDOGLOBAL is limited to 2,000 equations and 3,000 variables.

  • MOSEK: New libraries (version 4.0.0.60)

  • XPRESS: New libraries (version 17.10.12)

Solver/Platform availability - 22.5    June 1, 2007
  x86
MS Windows
x86_64
MS Windows
x86
Linux
x86_64
Linux
Sun Sparc
SOLARIS
Sun Intel
SOLARIS
HP 9000
HP-UX 111
DEC Alpha
Digital Unix 4.0
IBM RS-6000
AIX 4.3
Mac PowerPC
Darwin
ALPHAECP x x x x x x   x x x
BARON 7.8 x 32bit x 32bit         x  
BDMLP x x x x x x x x x x
COIN x 32bit x x           x
CONOPT 3 x x x x x x x x x x
CPLEX 10.2 x x x x x x 10.0 8.1 x  
DECIS x x x x x x x x x  
DICOPT x x x x x x x x x x
KNITRO 5.1 x 32bit x x           x
LINDOGLOBAL 4.1 x x x 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 4 x x x x x   3.2     x
MPSGE x x x x x x x x x x
MSNLP x x x x x x x     x
NLPEC x x x x x x x x x x
OQNLP x 32bit x 32bit            
OSL V3 x 32bit x 32bit x x V2   x  
OSLSE x 32bit x 32bit x       x  
PATH x x x x x x x x x x
SBB x x x x x x x x x x
SNOPT x x x x x x x x x x
XA x 32bit x x x   x x x  
XPRESS 17.10 x 32bit x 32bit x   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.4   Feb 14, 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 Michael Ferris, Gary Goldstein, and Randy Wigle.

GAMS System

  • Compressed and Encrypted Input Files: Facilities to create and use encrypted and compressed input files have been added. The three new commands: $compress, $decompress and $encrypt are the respective utilities. For more details consult the User's Guide (Appendix I).

  • NonNegative Variable: This new keyword is a synonym for Positive Variable.

  • GAMS IDE:
    • Added spelling checker
    • Added search options for gdxviewer

  • GAMS model library: new models (cefiles, encrypt) demonstrate the new GAMS feature of compressing and encrypting GAMS input files.

  • TESTLIB library: new models to test new features

Solvers

  • COIN: new libraries and solver from the GAMSlinks project hosted at COIN-OR.
    • CoinGlpk: New COIN-OR and Glpk 4.9 libraries.
    • CoinCbc: New COIN-OR and Cbc 1.1.0 libraries.
    • CoinIpopt: A new interior point NLP solver from COIN-OR.
    • The GAMSlinks project (announced January 3 by Stefan Vigerske) was created to develop links between GAMS and the COIN-OR solvers.

  • CPLEX: New libraries (version 10.1.1).

  • KNITRO: New libraries (version 5.1).

  • MOSEK: New libraries (version 4.0.0.59)

  • XPRESS: New libraries (version 17.10.08)

GAMS Distribution 22.3   November 27, 2006

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, Michael Ferris, Josef Kallrath, Antti Lehtila, Scott Malcolm, and Renger van Nieuwkoop.

GAMS System

  • GAMS Grid Facility: The GAMS language has been extended to take advantage of systems with multiple CPUs and High Performance Computing Grids. New language features facilitate the management of asynchronous submission and collection of model solution tasks in a platform independent fashion. A simple architecture, relying on existing operating system functionality allows for rapid introduction of new environments and provides for an open research architecture. For details please consult our web site at: www.gams.com/docs/gridcomputing.htm

  • $LoadDC: Enhanced $load with domain checking. Any domain violations will be reported and flagged as compilation errors. In contrast, $Load ignores all domain violations and loads only data that meets the domain restrictions.

  • A new GAMS parameter, WorkSpace allows initializing all modelname.workspace attributes.

  • New functions:
    • arccos, arcsin, tan
    • arctan2(y,x): 4-quadrant arctan function, like the atan2(y,x) in the C math library or Matlab, or Mathematica's ArcTan[x,y]
    • binomial(x,y): generalized binomial function, like Mathematica's Binomial[x,y]
    • GamsVersion: returns the current gams version, for example 146 for this release
    • HeapFree: free GAMS heap space in Mbytes
    • HandleStatus, HandleDelete, HandleSubmit, HandleCollect: Grid facility functions, see the grid facility document for details
    • Sleep(sec): suspends GAMS execution for sec seconds, where sec has millisecond resolution.

  • GAMS solvers and other processes now inherit their priority from GAMS/Base or GAMSIDE: this is useful on heavily loaded machines where you want GAMS to run with below-normal priority.

  • GAMS IDE:
    • Removed size limit for the capacity of the clipboard for .lst viewer
    • Added a shape graph type (rectangle and ellipse) and multi-line parametric graph type
    • Added more context menus
    • Option to open .lst file in editor
    • Switching tabs or switching application will check for files that changed
    • When gamside.ini is not found in the 'My Documents\gamsdir' directory, new directories and an initial project will be created. The IDE will start maximized, and the edit window and process window position and size are initialized.
    • Added a GUI editor for solver option files. The editor also provides access to the solver specific help file.
    • When searching for text in files (Find in Files) the search window remains open to make switching between editor and search results faster.

  • File Compression:
    • Every program creating a GDX file (e.g. gdxxrw or gams) will look at the environment variable GDXCOMPRESS; if value is not zero, data will be written compressed.
    • Compressed workfiles can be created with parameter xsave.
    • Decompression of GDX or workfiles is handled automatically.
    • GDX and workfiles can exceed 2GB in size.
    • The new utility gdxcopy allows conversion between different formats. For example, a compressed GDX file can be converted so it is understood by older GAMS systems. Of course, all file formats (GDX and workfile) can be read by a current GAMS system.

  • GDXMERGE:
    • Added ability to process named identifiers only (id=id1, id=id2)
    • Added ability to process very large symbols separately by specifying a memory threshold to avoid memory issues.

  • GDXXRW: String explanatory text for sets is now quoted. (Text starting with '=' created problems.)

  • TESTLIB library: 66 new models, including
    • New solver-specific models/suites: 24 models, 21 suites
    • Tests for new intrinsic functions and utilities

Solvers

  • The processing of solver option files has been centralized/standardized. This allows for a uniform way of documenting and working with solver and options. The GAMS IDE provides a utility for visual processing of options.

  • BARON: New libraries (version 7.7) with improved range reduction for monomial functions.

  • CONOPT: New libraries (version 3.14q) with some minor bug fixes and performance improvements.

  • CPLEX: New libraries (version 10.1) with increased performance when solving models with indicator constraints.

  • KNITRO: New libraries (version 5.0) with improved efficiency and robustness, especially in the active-set algorithm.

  • MOSEK: New libraries (version 4.0)
    • There is a parallel extension (option MSK_IPAR_INTPNT_NUM_THREADS) for the interior solver. Moreover, it is possible to solve a problem concurrently with several of MOSEK's algorithms. The parallel extension comes free of charge.
    • Warm start capability for the mixed integer optimizer (option MSK_IPAR_MIO_CONSTRUCT_SOL) has been added.
    • A dual simplex optimizer has been added and the overall performance of the Simplex optimizers has been significantly improved. Moreover, an automatic (and transparent) dualizer has been added to the simplex optimizers.
    • The presolve has been improved especially for large stochastic optimization problems.

  • PATH: New libraries (version 4.6.07) with some minor bug fixes and performance improvements.

  • SNOPT: New libraries (version 7.2-4) with some minor bug fixes and performance improvements.

  • XA: New libraries (version 15.07) with improved presolve and new MIP heuristics.

  • XPRESS: New libraries (version 17.10)
    • GAMS/XPRESS now supports multiple threads for MIP and Barrier runs.
    • New option (loadmipsol) supports passing an integer feasible point to the MIP solver.
    • Improved factorization speed - yields faster primal and dual algorithms.
    • Improved MIP performance (via presolve and heuristics, e.g.)

Solver/Platform availability - 22.3    November 27, 2006
  x86
MS Windows
x86_64
MS Windows
x86
Linux
x86_64
Linux
Sun Sparc
SOLARIS
HP 90001
HP-UX 11
DEC Alpha
Digital Unix 4.0
IBM RS-6000
AIX 4.3
SGI
IRIX
Mac PowerPC
Darwin
BARON 7.7 x 32bit x 32bit       x    
BDMLP x x x x x x x x x x
COIN x x x x           x
CONOPT 3 x x x x x x x x x x
CPLEX 10.1 x x x x x 10.0 8.1 x 9.1  
DECIS x x x x x x x x x  
DICOPT x x x x x x x x x x
KNITRO 5.0 x 32bit 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 4 x x x x x 3.2       x
MPSGE x x x x x x x x x x
MSNLP x x x x x x     x x
NLPEC x x x x x x x x x x
OQNLP x 32bit x 32bit            
OSL V3 x 32bit x 32bit x V2   x V2  
OSLSE x 32bit x 32bit x     x    
PATH x x x x x x x x x x
SBB x x x x x x x x x x
SNOPT x x x x x x x x x x
XA x 32bit x x x x x x    
XPRESS 17.10 x 32bit x 32bit x 16.10   x    
1)GAMS distribution for HP 9000/HP-UX is 22.1.

Distribution 22.2   Apr 21, 2006

Distribution 22.2 is a maintenance release to correct some performance issues in the GAMS system and include newly available solver libraries.

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 (Bonn University), Paritosh Desai (DemandTec), Michael Ferris (UW-Madison), Edgar Ramirez (at hotmail.com), and Rich Roberts (SRS Technologies).

GAMS System

  • The limit on nonlinear instructions in a single block has been raised from 16 million to 64 million instructions.
  • Performance improvements for very large and complicated loop structures.
  • International characters in file and path names are now handled correctly.
  • GAMS IDE:
    • GDX data browser is faster and can sort indices by name vs. entry order
    • A symbol shown in the GDX data browser can be written to an Excel file

Solvers

  • CONOPT: New libraries are included which address minor fixes.

  • CPLEX: New libraries (version 10.0.1, a maintenance release)

  • LGO: New libraries
    • The built-in stochastic searches have been improved.
    • Some internal limits were increased to allow larger models to be solved.

Distribution 22.1   Mar 15, 2006

GAMS System

  • Relaxation of discrete variables (.prior=Inf):

    The priority attribute of a discrete variable can be used to relax a specific variable instance. The priority attribute .prior establishes in what order variables are to be fixed to integral values while searching for a solution. Variables with a specific .prior value will remain relaxed until all variables with a lower .prior values have been fixed. Setting the .prior value to +inf will relax this variable permanently. This relaxation is done independent of the model attribute .prioropt.

    This feature is useful in solving difficult discrete models. The Model Library model "Linear Recursive Sequence Optimization Model" (lrs.gms) illustrates the use of this feature that specifies that only the first n variables of k are binary, whereas the remaining ones are fractional. This is simply expressed as follows:

     SET t time horizon /1*350/, f(t) first N steps /1*48/;
    Binary Variable k(t);
    ...
    k.prior(t) = inf; k.prior(f) = 1;
  • Derived Variable and Equation Attributes (.slacklo,.slackup,.slack,.infeas):

    Calculations involving slacks and infeasibilities have been simplified with four new derived attributes. These attributes are defined on equations and variables as follows:

     x.slacklo = max(x.l-x.lo,0);
    x.slackup = max(x.up-x.l,0);
    x.slack = min(x.slacklo,x.slackup);
    x.infeas = - min(x.l-x.lo,x.lu-x.l,0);
    Note that the slacks or infeasibilities will always be zero or positive.

  • Enhanced Model List:

    The entries of a model list can now contain previously defined models. For example:

     Model one / e1,e2,e3 /
    two / one, e4 /
    three / two, e5 /;
    The model two will now contain equations e1,e2,e3,e4. The model three will contain all of model two plus equation e5.

  • New model type: RMPEC: The model type MPEC now allows discrete variables. The Relaxed Mathematical Program with Equilibrium Constraints (RMPEC) model relaxes the discrete variables as with RMIP and MIP models.

  • Enhanced $IF/IFI statement: A check for the existence of a directory has been added to the $if statement.
     $IF DEXIST directory command
    $IFI DEXIST directory command
  • GDX Utilities:
    • GDXDIFF: When a key value pair exists in one file and not in the other we use Eps to determine if the difference should be reported.
    • GDXDUMP: All unique elements in the output are now quoted to avoid problems with reserved words etc.
    • GDXMERGE: New options introduced to merge only specified identifiers, to merge very large data sets, and to read parameters from a file (@filename).
    • GDXXRW: Fixed problem with merging when only the top-left corner of the range was specified.

  • GAMS IDE:
    • Added a viewer for lst files. In contrast to the editor, this viewer does not load the complete file in memory.
    • Added a navigation tree for the lst file.
    • Added the option to generate charts using a gdx file.
    • All viewers, except the process window, are now organized as tabbed windows.
    • The gdxviewer remembers that last symbol viewed for a gdx file and will select the symbol when opening the file.
    • Expanded format for library file to use other entries in the library.

  • GAMS model library: new models
    • IDE charting facility (chartdat)
    • Cplex option feasopt (feasopt1)

  • TESTLIB library: new models
    • Tests for new GAMS intrinsic functions NCPVu***
    • Tests for GDXdiff utility
  • McCarl GAMS User's Guide
    • Extensive internal changes to allow better distribution formats
    • Now distributed as a single .chm file and a single .pdf file with fully linked topics

Solvers

  • BARON
    • XA can now be used as an LP solver inside BARON.
    • For the LP solvers Cplex and XA the user can specify the LP algorithm (primal/dual simplex, barrier) using the BARON option lpalg.
    • The user can control BARON's node selection scheme with the option nodesel. Available strategies include best bounds, DFS, minimum infeasibilities, and BARON's own mix.

  • CONOPT: New libraries (version 3.140)
    • The scaling method has been improved to work better with models with small levels and large derivatives (e.g. sqrt(x) for x close to 0).
    • Minor problems with previous versions corrected.

  • CPLEX: New libraries (version 10.0)
    • Dropped Platforms: ILOG dropped support for CPLEX 10.0 on the SGI platforms. Also support for Linux with glibc2.2 was dropped but will hopefully be available when GAMS 22.1 will be released. GAMS 22.1 for dropped platforms ships older versions of CPLEX.
    • Solution Polishing: Solution Polishing is appropriate for finding the best solutions to complex and difficult MIP models within a specified time. Solution Polishing is used to improve the best solution at the end of the branch-and-cut process if optimality has not been proven.
    • MIP Starts: The advanced restart capabilities of CPLEX have been improved to utilize initial solutions, partial solutions and partially correct solutions. If the user specifies values for only a portion of the discrete variables, CPLEX 10.0 will attempt to fill in the missing values or correct the wrong values in a way that leads to an integer-feasible solution, potentially reducing the time to solve the problem.
    • Infeasibility analysis tool: CPLEX provides an automatic approach to find the best feasible alternative to an infeasible model. This approach is turned on by an option called FeasOpt (for feasible optimization). With the FeasOpt option CPLEX accepts an infeasible model and selectively relaxes the bounds and constraints in a way that minimizes a weighted penalty function. In essence, the feasible relaxation tries to suggest the least change that would achieve feasibility. It returns an infeasible solution to GAMS and marks the relaxations of bounds and constraints with the INFES marker in the solution section.
    • For details check the GAMS/CPLEX 10 Release Notes.

  • DICOPT
    • New option infeasder: It allows for linearization of infeasible NLP subproblems.

  • Examiner
    • Default behavior changed: if no action is chosen, Examiner prints a warning message and defaults to "examineInitPoint yes"
    • Adjusted to handle new RMPEC model type. Currently MPEC models are not allowed.
    • Report format for examination of points changed:
      • better labeling of the point being examined - consistent with the naming scheme and options used to choose the examination
      • use GAMS notation (e.g. x.l(seattle,topeka), f.m(supply)) to specify rows/columns
      • add option 'showSlacks' to print slacks/differences explicitly when the difference is small compared to the values themselves

  • XPRESS: New libraries (version 16.10.03)
    • The dual pricing algorithm has been improved. For some difficult LP problems this has resulted in an order of magnitude speed improvement.
    • The speed and stability of the simplex factorization has been improved.
    • The barrier algorithm now requires less memory.
    • The cut generation has been improved.

GAMS Distribution 22.0   August 1, 2005

New platforms supported

  • 64 bit Windows (aka Windows 64-Extended, Windows EM64T) version introduced. Windows licensing includes both 32 and 64 bit systems at a single platform cost. Some solvers exist only in 32 bit mode and are included as such on the 64 bit version. See the solver platform matrix.

Updated build for the Linux platform

  • Previous 32-bit Linux GAMS Distributions (e.g. 21.X) were built using only an older Linux machine with version 2.2 of the GNU C Library. This distribution is compatible with both older and newer Linux systems. The installer for this software is located in the systems/lnx/lnx2.2 directory of the CD. The build code for this software is LXI (displayed on the solver audit lines, etc). This build is included in the current CD as it was before.
  • This distribution includes a new 32-bit Linux build (build code LX3) that parallels the previously-existing LXI build. The LX3 system is built on a newer Linux machine with version 2.3 of the GNU C Library, and is not compatible with older systems using GNU LIBC 2.2. The installer for this software is located in the systems/lnx/lnx2.3 directory of the CD.
  • Consider the following when choosing which Linux build to install:
    • Most Linux users will be using a system with GNU LIBC 2.3 and should use the newer build. You can check your LIBC version by running it. On my machine, I do "/lib/libc.so.6" but be aware your version number may vary.
    • These are builds of the same source, using different compilers. The "older" build uses older compilers, not older source. In cases where different vendor libraries are required, the same comment applies.
    • The different builds use a common GAMS license file.
    • While there is no scheduled end-of-life for the older build we expect that our algorithm vendors will stop supporting it at some point. When this happens, we can only ship updated versions of the new build.
    • If you wish to install both versions, install them in separate directories.

GAMS System

  • GDX Utilities:
    • GDXDIFF: Modified the comparison routine that determines if two numbers are equal wrt. an absolute or relative tolerance.

  • GAMS IDE:
    • Added option to save a file in Unix format.
    • Added option to save and email the current file.
    • Added option to launch Windows Explorer showing directory of the current file with the current file selected.
    • gamsdir is now a sub-directory of 'My documents'. gamside.ini file now stored in the gamsdir directory.
    • Reload file now also works for GDX files and RefFiles (in addition to regular source files).
    • When starting the IDE or opening a project, a scan is made for GAMS temporary directories which can be deleted. This option was also added under the Utilities menu.
    • Pressing F1 for help was broken.
    • $ONECHO/$OFFECHO work now like $OFFTEXT/$ONTEXT for syntax coloring.

Solvers

  • CPLEX: New libraries (version 9.1)
    • Option mipstart: It is no longer necessary to provide a compete integer solution as the starting point.
    • Option fraccuts: Settings of 1 or 2 will cause Gomory cuts to be generated for MIQCP models.
    • New Option lbheur: When set to 1 (default is 0), CPLEX will use a local branching heuristic to try to improve new incumbents.

  • KNITRO: New libraries are included which address minor fixes.

  • XA: New libraries are included which address minor fixes.

  • XPRESS: New libraries are included which address minor fixes.

Distribution 21.7   April 1, 2005

Acknowledgements

We would like to thank all of the users who have reported bugs or made suggestions in improving this release.

New platforms supported

  • 64 bit x86_64 (Linux) version introduced. Linux licensing includes both 32 and 64 bit at a single platform cost. Some solvers exist only in 32 bit mode and are included as 32 bit on the 64 bit version. See the solver platform matrix below.

  • Macintosh PowerPC (Darwin) version introduced.
See our sales page for available solvers by platform.

GAMS System

  • MODEL LIBRARY:

  • NEW WORKFILE FORMAT:
    • now a single file (G00 file extension). Files can be read that were created on different platforms. File is packed and only approx 50% of previous file size. Read and write is also substantially quicker.

  • TESTLIB LIBRARY:
    • Updates to quality model
      • take advantage of solver updates & fixes
      • added --QUICK=1 option to skip slow tests
      • test all solvers, using system.solverNames and filter list
      • allow skips of models in solver-specific test suites
    • New models
      • convert solver test suite
      • new cmex & MIP tests, test new workfile format save/restart
      See the testlib library for details.

Solvers

  • BARON: New libraries (version 7.2.5) which address minor bug fixes and enhancements.

  • BENCH: promoted from beta solver.

  • GAMS/AMPL Link: a GAMS/AMPL link has been introduced.

  • GAMS/LINGO Link: a GAMS/LINGO link has been introduced.

  • MOSEK: New libraries (version 3.2) which address minor bug fixes and enhancements.

  • NLPEC:
    • Relaxed the test for complementarity of the solution proposed by the reformulated model to work better for poorly-scaled models

  • XA:
    • update to documentation (nodelimit, log output)
    • numerous library updates to fix outstanding issues
    • improved handling of solver status 4=TERMINATED BY SOLVER

  • XPRESS:
    • deal with "recoverable errors" on return from barrier method
    • minor improvements and workarounds for library quirks in link

Solver/Platform availability - 21.7
  Intel
MS Windows
x86_64
Linux
Intel
Linux
Sun Sparc
SOLARIS
HP 9000
HP-UX 11
DEC Alpha
Digital Unix 4.0
IBM RS-6000
AIX 4.3
SGI
IRIX
Mac PowerPC
Darwin
BARON 7.2 32bit          
BDMLP
COIN          
CONOPT 3
CPLEX 9.0 8.1  
DECIS  
DICOPT
KNITRO 4.0 32bit            
LGO  
MILES
MINOS
MOSEK 3.2      
MPSGE
MSNLP    
OQNLP 32bit            
OSL V3 32bit V2   V2  
OSLSE 32bit        
PATH
SBB
SNOPT
XA 32bit    
XPRESS 15.25 32bit 15.20   15.20    


Distribution 21.6   January 26, 2005

Distribution 21.6 is a maintenance release to include newly available solver libraries.

Acknowledgments

We would like to thank all of the users, particularly Josef Kallrath, who have reported bugs or made suggestions in improving this release.

Solvers

  • BARON: New libraries are included. Several new features which are documented in the BARON solver manual.

  • CONVERT:
    • New model instance format CoinFML, Coin style XML model file.
    • LINGO format updated to include Version 9 features

  • COIN:
    • CoinGlpk: New COIN and GlpK 4.7 libraries.
    • CoinSbb: This is now called CoinCbc (Coin Branch & Cut). The name CoinSbb will remain for this and the next distribution.
    • Three new cuts classes: Clique, Flow Cover, Mixed Integer Rounding and all new libraries.

  • KNITRO: New libraries are included which address minor fixes.

  • XPRESS: New libraries are included which address minor fixes.

GAMS System

  • Model Library:
    • licememo: Generate your own license memorandum and solver matrix with this model.
    • deploy: Generate a minimal deployment GAMS system with necessary components only.

  • Testlib: 26 new quality assurance tests have been added to the suite.

  • Minor enhancements:
    • $onecho and $onput have new variants to specify verbatim or substitutions. The new names are: $onechoV, $onechoS, $onputV, $onputS.
    • Manipulation of system environment variables and prefixing of the search path:
       $SetEnv name value
      $DropEnv name
      $PrefixPath value

      %SysEnv.name%

      $if SetEnv name

  • fml2gms: converts a CoinFML style XML file into GAMS (courtesy of Leo Lopes, University of Arizona). An example showing how to convert from GAMS to CoinFML format and back to GAMS is shown below:
     > gamslib trnsport
    > echo coinfml > convert.opt
    > gams trnsport optfile=1 lp=convert
    > fml2gms coinfml.xml
    > gams fml2gms.gms

Documentation

  • Bruce McCarl User's Guide:
    • accessing the guide through the GAMS/IDE, will now launch the PDF file directly instead of through a web browser. This is due to possible incompatibility issues with Windows XP Service Pack 2 (securtiy settings). To launch via the web, users can go to File > Options and check the box "Launch docs using Explorer."

Distribution 21.5   November 11, 2004

Distribution 21.5 is a maintenance release to include newly available solver libraries and minor enhancements in the GAMS system, as well as introduce the interior-point NLP solver KNITRO from Ziena Optimization.

Acknowledgements

We would like to thank all of the users who have reported bugs or made suggestions in improving this release, especially Richard Roberts for catching an IDE bug.

Solvers

  • CONOPT
    • New libraries (14e) are included which address minor fixes.

  • CPLEX
    • New libraries (9.0.2) are included which address minor fixes.

  • KNITRO
    • New interior-point nonlinear programming solver added to the GAMS NLP solver portfolio.

  • MOSEK
    • New libraries (3.1) are included which address minor fixes.

  • XA
    • New libraries are included which address minor fixes.

  • XPRESS
    • New libraries are included which address minor fixes.

GAMS System

  • Model Library
    • A model showing a successive recalibration algorithm for solving general equilibrium models has been added (decomphh.gms).
    • A model illustrating numerical integration using trapezoidal approximations for Herves (transposable element) activity calculations is included (herves.gms).

  • Testlib
    • 27 new quality check models have been added. See the Testlib page for details.

  • New functions:
    • sinh, cosh, tanh

  • $ Dollar control options:
    • $on/offVerbatim
      • The $on/offVerbatim commands are used in conjunction with the GAMS parameter DUMPOPT to suppress the input preprocessing for input lines that are copied to the dmp file. This feature is mainly used to maintain different versions of related models in a central environment.

        The $on/offVerbatim commands are only recognized for DUMPOPT >= 10 and apply only to lines in the file the commands appeared.

        The use of $goto and $on/offVerbatim are incompatible and may produce unexpected results.

    • $on/offPut
      • This option simplifies the writing of put statements that copy text. Previously, to copy text into a put file one may have to write many lines similar to the ones below:

        put 'text A with a double quote "' "text A with a single quote '" /
        put 'text B with a double quote "' "text B with a single quote '" /
        put 'text C with a double quote "' "text C with a single quote '" /

        This may be cumbersome. The use of $on/offPut will result in the same text written to the put file without having to specify the 'put' explicitly for each line and allows you to specify mixed quotes in a single statement. Consider the following example:

         
        file fx;
        put fx 'text with " and ' "' required a split of the text" /
        $onput
        With the new on/off put we can freely
        mix and match ' and " characters.
        $offput
        ;

        It also works outside of the put statement:

        $onput
        It even works outisde the put statement,
        as long as a put file is assigned.
        $offput
    • $setDDlist
      • This statement catches misspelled 'double dash' GAMS parameters. For example, in the program below (ein.gms), the only 'double dash' options are 'one', 'two', 'three' and 'four' (note the use of the string macro for %two% automatically makes it part of the allowed list of double dash parameters):

        $if NOT set one $set one default value
        display '%two%';
        $setddlist three four

        The following GAMS invocation will cause an error since --five is not a valid 'double dash' option.

        > gams ein.gms --two=twovalue --five=20

        1 Display 'twovalue'
        **** --five=20

        3 $setddlist three four $620

  • Other new features:
    • alias(*,u1,u2,..)
      • The universe is assumed to be ordered and ordered operators like lag, leads and ORD can be applied.
    • Faster execution of GAMS statements using set(s) containing a single element.
    • SortedUels(*,*)
      • A new predefined tuple to report sets in sorted order. For example, to write in sorted order:
        >
        alias(*,u);
        loop(SortedUels(u,i),
        put / i.tl i.te(i) );

Distribution 21.4   September 6, 2004

Acknowledgements

We would like to thank all of the users who have reported bugs or made suggestions in improving this release.

GAMS System

  • Model Library
    • The model library keeps on growing! A model that implements a column generation scheme for the cutting stock problem (cutstock) has been added. There are two examples that demonstrate the multiple solution feature in BARON (mhw4dxx and bchfcnet).
    • The model library also has the new category "GAMS Tools". Models in this category show how to use tools designed to help modelers in their daily work. Three models (awkqap, seders, and awktsp) demonstrate the routine process to take a raw file from a web site and manipulate the text file into a format suitable to be read by GAMS using Unix-style tools SED & AWK.
    • Five new models (mingamma, quantum, procmean, mlbeta, and mlgamma) have been added to demonstrate the new statistical functions (discussed below).

  • Testlib
    • 33 new models were added to the test library.
    • Addition of solver-specific test suites. The models in a test suite are run not for all solvers but for the set of solvers associated with that particular suite.
    • Most of the new models test features in GAMS/Base.
    • A series of new models tests MCP syntax and matching rules.

  • Windows Setup.exe
    • A new Windows setup.exe installation program for GAMS is used adding new functionality and a more user friendly interface.
    • The McCarl GAMS User Guide is now part of the Windows installation (for UNIX platforms this must still be installed manually).

  • GDX Utilities:
    • GDXrank, a standalone sorting utility for GDX files, is now part of the distribution (all platforms)
    • A wrapper for GDXrank, called rank.gms, written by Tom Rutherford, is included with the distribution and can be called using the $LIBINCLUDE directive.

  • GAMS IDE
    • The IDE recognizes https as www string
    • The menu Help | About shows current license file
    • If there is a GAMS license file on the ClipBoard, selecting Help | About will prompt to write the ClipBoard to a license file.
    • Library files can now have multiple files with a numeric extension; previously,it was the first file only.
    • A library file can have have an extension of '.ignore' which will be removed so we can protect '.zip' files.
    • After running gdxdiff, an empty difference file will not be shown.

  • Additional functions:
    • gMilliSec(DayTime): milli seconds of a DayTime number
    • MaxExecError: a read/write access to the ExecError values
    • TimeElapsed: elapsed time in seconds since the start of a GAMS run
    • Gamma(a): Gamma function (DNLP)
    • LogGamma(a): Log Gamma function
    • GammaReg(x,a): Regularized gamma function
    • Beta(a,b): Beta function (DNLP)
    • LogBeta(a,b): Log Beta function
    • BetaReg(x,a,b): Regularized Beta function

      The definitions and notation for incomplete and regularized gamma and beta functions are not consistent, For example, note the differences with the definitions used in Mathematica:

       GAMS Mathematica

      Gamma(a) Gamma[a]
      LogGamma(a) LogGamma[a]
      GammaReg(x,a) GammaRegularized[a,0,x]
      Beta(a,b) Beta[a,b]
      LogBeta(a,b) Log[Beta[a,b]]
      BetaReg(x,a,b) BetaRegularized[x,a,b]
  • Speed-up for expressions containing constant indices or indices that are not in the natural order
    • The option sys11 controls this new feature. When we use option sys11=1, GAMS will execute without speedup features as in previous versions; using option sys11=0 will cause GAMS to use procedures that execute some statements faster at the cost of increased memory use (This is now the default value). The following GAMS code illustrates some of the speedups.
       
      Sets i / i1*i700 /
      j / j1*j700 /
      k / k1*k500 /
      ik(i,k);

      Parameters aij(i,j) bji(j,i), cjk(j,k), dij(i,j);

      ik(i,k)$(uniform(0,1) < 0.01) = yes;
      aij(i,j) = uniform(0,1);

      bji(j,i) = aij(i,j);

      cjk(j,k) = sum(ik(i,k), aij(i,j));
      dij(i,j) $(aij(i,'j700') > 0.5) = bji(j, 'i700')
      A comparison of the execution times in seconds:
       Assignment sys11=1 sys11=0
      Bji 2.7 0.36
      Cjk 25.0 2.38
      Dij 4.7 0.39
    • Faster execution of lag / lead operators. This improvement is visible for large sets only as illustrated in the following GAMS code:
       Set i /i1*i2000/,
      j /j1*j20000/;

      Parameter Ai(i),Bj(j);
      Ai(i - 1) = Ord(i);
      Bj(j - 1) = Ord(j);
      A comparison of execution times in seconds:
       Assignment previous current
      Ai 0.02 0.0
      Bj 3.2 0.0
  • Embedded set text and parameter values
    • The $on/offembedded option enables the use of embedded values in parameter and set data statements. For sets, the final text is concatenated with blank separators. For example, the element texts for the set and j will be identical:
       Set i(k,l) / a.a 'aaaa cccc dddd', b.a 'bbbb cccc dddd' /
      $onembedded
      Set j(k,l) / (a aaaa, b bbbb).(a cccc) dddd /
      For parameters, the final value will be the product of the embedded values. If no value is specified, a value of 1 is assumed. For example, the values for x and y will be the same:
       Parameter x(k,l) / a.a 24, b.a 12, c.a 4, c.b 4, d.a 6, d.b 6 /
      $onembedded
      Parameter y(k,l) / (a 2, b).(a 3) 4, (c 2,d 3).((a,b) 2) /
  • New suffixes for functions
    • New suffixes Grad and Hess have been introduced to get exact point derivatives from any function. These function suffixes are mainly intended for future testing of functions and cannot be used in equations.
    • The first argument gives the position of the element of the Hessian or gradient element desired in the form i or i:j, where i is the row element and j the column element.
    • The symbol ':' is used to separate the element position specification from the function argument list.
    • For example, the following will return the second derivative for the second and fourth argument, where 1,2,3,4,5 are the normal function arguments:
       h = EDist.hess(2:4:1,2,3,4,5);
      If the needed element position index is one, we can drop the argument as shown below:
       g = exp.grad(1:5) or g = exp.grad(5);
      h = log.hess(1:1:3) or h = log.hess(3);

      hess(i,j) = betareg.hess(ord(i):ord(j):expr1,expr2,expr3);

  • Some new minor and exotic features:
    • New %system.xxx% and system.xxx for put statements
      • system.date1: different date format: Feb 04, 2004
      • system.tab: inserst a tab character
    • New File attribute
      • file.silent: will suppress the logging of put files
    • New $IF option allows testing for existing solver at compile time
      • $IF SOLVER command
      • $if NOT solver baron $goto nobaron
    • Underflow Control
      • Release 21.0 introduced new math routines that work over a much wider numerical range than the older systems. The pre 21.0 systems rounded small function return values (less than 1e-30) to zero.
      • Some older models may use this rounding to zero feature and will now give slightly different results.
      • The new GAMS parameter ZeroRes=real allows you to change the threshold value for internal rounding in the GAMS calculation and the GAMS parameter ZeroResRep=1 will cause GAMS to issue warnings whenever such a rounding occurs.

Pricing

  • Global Packages
    • Similar to the NLP Packages (NLP-1 and NLP-2), GAMS now offers Global Packages: If you buy at least two of the Global solvers BARON, LGO, and MSNLP, the prices are reduced by 25%. Please check our pricelist or contact sales@gams.com.

Solvers

  • BARON
    • New libraries (version 7.2)
    • Branch-and-cut implementation (available only when using CPLEX as the LP solver)
    • Automatic exploitation of convexity
    • Modeling construct permits user to supply convexity information to the solver
    • Modeling construct permits user to have relaxation-only constraints
    • Improved local search implementation for large-scale models
    • GDX dumps can be used to provide output for the K best solutions
    • Several algorithmic fixes and improvements

  • COIN
    • GAMS has added a link to the Computational Infrastructure Operations Research (COIN-OR). The COIN-OR project is an initiative to spur the development of open-source software for the operations research community.
    • The GAMS/COIN-OR link allows GAMS users to connect their customized solution approaches using the COIN-OR Open Solver Interface (OSI) in a seamless manner.
    • The GAMS/COIN-OR Link for LP and MIP problems is available in source and free of charge to any licensed GAMS system.
    • Potentially all solvers connected to the COIN-OR/OSI can be made available through the GAMS/COIN-OR link. Currently,
      • CoinGlpk: Gnu Linear Programming Kit
      • CoinSbb: simple branch and bound, a branch and cut code
      are included in the latest Windows and Linux distributions. Please visit the GAMS/COIN web page at http://www.gams.com/gamscoin for details.

  • CONOPT
    • New libraries are included which address minor fixes and improvements.

  • MINOS
    • New libraries (MINOS 5.51 June 2004)
    • Fixed issues with scaled/unscaled infeasibilities/nonoptimal

  • MSNLP
    • MSNLP (Multi-Start NLP) is another stochastic search algorithm from Optimal Methods, Inc for global optimization problems. Like it's bigger brother OQNLP, MSNLP uses a point generator to create candidate starting points for a local NLP solver. Algorithm performance depends strongly on the starting point generator. MSNLP implements a generator creating uniformly distributed points and the Smart Random Generator. This generator uses an initial coarse search to define a promising region within which random starting points are concentrated. Two variants of Smart Random are currently implemented, one using univariate normal distributions, the other using triangular distributions. MSNLP also comes with the local NLP solver LSGRG. MSNLP is available in the Global Packages.

  • NLPEC
    • NLPEC has been promoted from beta solver status and has a write up in the solver documents.
    • The NLPEC solver for MPECs automates the process of model reformulation. NLPEC reformulates the original MPEC as an NLP (using one of 23 different reformulation strategies), solves the resulting NLP, and translates the results back for return as an MPEC solution.

  • PATHNLP
    • PATHNLP has been promoted from beta solver status. The PATHNLP solver suitable is for NLP programs. PATHNLP solves an NLP by internally constructing the Karush-Kuhn-Tucker (KKT) system of first-order optimality conditions associated with the NLP and solving this system using the PATH solver for complementarity problems.
    • Some improvements from the beta version include:
      • In some cases where PATHNLP fails to find a solution, it can now return a feasible point where before it would return no solution information whatsoever.
      • Information about the Hessian and it's inverse is now available.

  • OQNLP
    • OQNLP's merit and distance filters, which are respondible for starting the NLP solver at a small fraction of the candidate starting points, while still finding the global solution to most problems, have been improved. The dynamic merit filter logic and the basin overlap fix provide mechanisms for decreasing the radii of some attraction basins, focusing on those which reject points most often and those which overlap. These dynamic filters lead to a substantial improvement in OQNLP's ability to obtain a global optimum, with some increase in the number of solver calls. The OptQuest point generator has been supplemented by two new point generators (see MSNLP).

  • XPRESS
    • Updated to use XPRESS 2004 libraries - highlights include:
      • MIP heuristics
      • Lift-and-project cuts to give improved bound information
      • Strong branching
      • Extensive benchmarking & resultant performance improvements

Distribution 21.3   January 19, 2004

GAMS System

  • Model Library
    • Models from the "Handbook of Computible General Equilibrium Modeling", University of Tokyo Press, Tokyo (to appear) have been added to the model library.
    • Several QCP models have been added
    • A series of models that illustrate the BCH (Branch-and-Cut-and-Heuristic) Facility have been added

  • TESTLIB
    • New library of models developed for testing and quality control:
      • Solver correctness
      • Base module features
      • Performance
    • Designed for use by GAMS staff and our solver providers
    • Allows any user to reproduce our tests
    • To retrieve models from testlib: >testlib ....

  • GAMS IDE
    • The tabs showing the file names in the editor are maintainded in sorted order using the full path name.
    • Support for regular expressions in search, search and replace and search in files
    • When searching text using Ctrl-F, the word under the cursor will be used as the text to search for.
    • Added a viewer for reference files. A reference file is created using the rf option in the gams call. The IDE assumes that the file extension for the reference file is '.ref'
    • An option was added to emulate a subset of the Epsilon keyboard mapping.

  • GDX Utilities
    GDXMerge added; a utility to combine multiple gdx files into a single gdx file.
    GDX2Veda added; a utility to export GAMS data into the VErsatile Data Analyst (VEDA).

  • GAMS Branch-and-Cut-and-Heuristic (BCH) facility
    The GAMS Branch-and-Cut-and-Heuristic (BCH) facility allows GAMS users to interact with a running MIP/MINLP solver by supplying specialized GAMS programs to generate cutting planes and good integer feasible solutions. This allows GAMS users to apply complex solution stragies without having to have intimate knowledge about the inner workings of a specific MIP system. BCH strategies can now be implemented rapidly and reliably within a matter of days rather than weeks. Details and examples can be found here

  • Quadratically Constrained Program Types QCP, MIQCP and RMIQCP
    New model types for quadratically constrained problems are:
    • QCP: Quadratically Constrained Programs
    • MIQCP: Mixed Integer Quadratically Constrained Programs
    • RMIQCP: Relaxed Mixed Integer Quadratically Constrained Programs
    These model types are like NLP, MINLP and RMINLP with nonlinearities restricted to be quadratic forms. QCP problems can be solved with existing nonlinear solvers and large-scale LP solvers that offer quadratic extensions. For examples, look at the models qalan, qcp1, qdemo7, and qsambal in the model library.

  • Solver Link Options SOLVELINK
    This new option allows you to control the way solver's or subsystems are invoked. This may be helpful when solving a large number of models that are relatively small compared to the size of the overall database. The new options values are:
    • 0: Make an automatic save/restart for each solve (default - old behavior)
    • 1: Calls the subsystem using the shell method
    • 2: Call the subsystem using the spawn method
    This option can be specified as a gams parameter (>gams ... solvelink=n), as part of an option statement (option solvelink=n;) or specified as a model attribute (mymodel.solvelink=n;)

  • Some demo limits removed
    The demo version size restriction on the number of symbols and number of unique set elements has been removed. Previously, the demo/student versions were limited to 2000 symbols.

  • Save Point Options SAVEPOINT

    This new option directs GAMS to write solutions to GDX files for later use in the same or other programs. This may be helpful in cases when we want to provide good starting points or process large number of solutions at a later stage. The new option values are:

    • 0: Do not write point files (default)
    • 1: Write the solution the GDX file ‹workdir›‹modelname›_p.gdx
    • 2: Write the solution the GDX file ‹workdir‹›modelname›_p‹solvenumber›.gdx
    This option can be specified as a gams parameter (>gams ... savepoint=n), as part of an option statement (option savepoint=n;) or specified as a model attribute (mymodel.savepoint=n;). The execute_loadpoint allows you to merge solution points into any GAMS database.

  • Relaxed MCP and MPEC syntax.
    A variable can now appear in more than one equ.var pair in the model list, however, in the final instance of the model, all mappings have to be unique.

  • Enhancements to EXECUTE_LOAD and EXECUTE_UNLOAD
    • execute_load
      • gamspar = gdxvar.xx xx can be l m ...
      • gamsvar.xx = gdxvar.xx
    • execute_unload:
      • no arguments means dump all
      • allow multiple occurrence of the same symbol x.l x.up x a a
      • x.l=a a is the complete x variable

  • New EXECUTE_LOADPOINT
    This new command execute_loadpoint is similar to EXECUTE_LOAD, however, the new values are merged with the old values. If no arguments besides the name of the GDX file are given, all variables and equations that match variables and equations of the calling GAMS programs will be merged with the GDX level and marginal values. Bounds, scales and priorities will remain unchanged. This can be very useful in connection with the SAVEPOINT facility.

  • Nested GAMS parameter PF=xxx.
    The command line include parameter can now handle nested includes

  • New Functions
    A number of new functions have been added.
    • TimeStart: Accumulated restart time
    • TimeComp: Compilation time in seconds
    • TimeExec: Execution time in seconds
    • TimeClose: accumulated save time
    • Frac: frac(x) is the fractional part of x
    • ErrorLevel: Returns code of the most recently called external program
    • HeapSize: Current Heap size in Mbytes
    • Fact: Factorial
    • UniformInt: Uniform integer random number between UniformInt(low,high)
    • PI: The famous constant 3.14....
    • NcpF: NcpF(x,y,c) = sqrt(sqr(x) + sqr(y) + 2*c) - x - y Fisher
    • NcpCM: NcpCM(x,y,c) = x - c*ln(1+exp((x-y)/c) Chen-Mangasarian
    • Entropy: entropy(x) = -x*log(x)
    • Sigmoid: sigmoid(x) = 1/(1+exp(-x))
    • Log2: logarithm base 2
    • IfThen: ifthen(condition,true expression,false expression)
    • Edist: Edist(x,y,..) = sqrt(sqr(x)+sqr(y)+..)
    • CEntropy: centropy(x,c) = x*ln(x/c) Cross Entropy

  • Set Table.
    Allows to enter set data in tabular form similar to parameter data. The data entries can be numbers and special values including yes/no. To allow data tables to be interpreted as Parameters or sets, the special values of NO and YES will be interpreted as 0 and 1 respectively.

  • Some new minor and exotic features:
    • Dynamic reinterpretation of real powers. When using automatic translation it may be helpful to treat a real power as an integer power if the exponent is constant and within e-12 of an integer value. This can be enabled by setting Option sys10=1; and disabled by setting option sys10=0; (default).
    • File Name Casing. File names as passed to the operating system maintain the original casing. This can be changed with the GAMS parameter FILECASE=n, where
      n=0 means to retain original casing (default)
      n=1 uppercase the filename, and
      n=2 will lowercase the filename.
    • $CLEARERROR clear all compilation errors
    • $TERMINATE terminates compilation and skips executions
    • $SETNAMES filename filepath filename fileextension separates the string filename into its three components and stores then as GAMS environment variables. For example, $setname d:\gams\xxx.txt fp fn fe creates/updates three string variables fp, fn, fe which will combine into the original filename string by %fp%%fn%%fe%.
    • $SETCOMPS s1.s2.s3.. first second third separates the string s1.s2... into its components and stores them in the environment variables first, second,..
    • $IF WARNINGS command
    • $REMARK comment with string substitution
    • $ON/OFFUNDF allows the use of the special value UNDF in data statements and expression.
    • System.xxx and %system.xxx% have been enhanced and unified. The complete list is:
      DATE, TIME, TITLE, PAGE, SFILE, RTIME, RDATE, RFILE, IFILE, OFILE ,VERSION PLATFORM, LP, NLP, ...all model types, LICE1, LICE2, GSTRING, SSTRING, PFILE ILINE, OPAGE, VERID, ELAPSED, MEMORY, TSTART, TCLOSE, TCOMP, TEXEC, INCPARENT INCPARENTL, INCNAME, INCLINE, LINE, LISTLINE, FILESYS, PRLINE, PRPAGE, FE, FN FP, REDIRLOG, ERRORLEVEL
      The system.xxx form is used in PUT statements, the %system.xxx% form is used for string substitutions during compilation.
    • Fast Projections and Aggregations.
      The GAMS executions engine performs poorly on certain large data structures. This can be overcome with telling GAMS to 'pipeline' certain operations via an OPTION statement.
       Option left < right, left <= right,..;
      Where left and right are gams identifiers with conforming domain declarations. The dimensionality of the left symbol has to be equal or less than the dimensionality of the right side. If the left dimensionality is less than the right one, the operation performed is an aggregation or projection depending on the data type of the left side. In all cases, indices are permuted according to the domain definitions. If a symbol has identical domain definitions they are permuted right to left (<) or left to right (<=). For example, assume we have
       Set i, fromto(i,i), tofrom(i,i); alias(i,ii); parameter in(i),out(i);

      option tofrom < fromto, in < fromto, out <= fromto;
      is equivalent to
       tofrom(i,ii) = fromto(ii,i);
      in(i) = sum(fromto(ii,i),1);
      out(i) = sum(fromto(i,ii), 1);

Solvers

  • BARON 6.0
    • Improved memory management
    • Default bounds are new +/- infinity
    • CONOPT run not required to get marginals
    • Several algorithmic improvements

  • CPLEX 9.0
    GAMS/Cplex is now based on Cplex 9.0. In addition to performance improvements and enhancements of existing features, support is provided for the new GAMS model types QCP and MIQCP. Because of some compatibility issues, we still ship CPLEX 8.1 for Digital Unix. Details can be found here.

  • Large scale QCP Solvers
    • MOSEK handles QCP and MIQCP models
    • CPLEX handles QCP and MIQCP models.
    • XPRESS handles QCP with quadratic term in the objective only.
    • SBB handles MIQCP models.
    • PATHNLP takes advantage of quadratic forms for QCP models.

  • NLP solvers capable of solving QCPs
    • All NLP solvers (CONOPT, MINOS, SNOPT, ...) handle QCP and RMIQCP models.

  • AMPL and Lingo Wrappers are now part of the GAMS distribution

  • MOSEK 3.0

  • MPSGE
    • Improved reporting of formulation errors
    • There are new rules for choosing proper labels and identifiers in MPSGE models. The MPSGE engine was initially designed around the old 10-character limit for labels and identifiers imposed by GAMS/Base. When GAMS/Base relaxed these limits to 31 characters, a flag was added to check for compatibility with the old rules to avoid breaking MPSGE. We've now removed the check in GAMS/Base - the MPSGE engine makes its own check now. This means we can use long labels and identifiers under the new rules.
    • The testlib models mpsge01 * mpsge10 document and test the rules for identifiers in MPSGE models. E.g. do
       > testlib mpsge01
      > gams mpsge01

Distribution 21.2   September 3, 2003

Distribution 21.2 is a maintenance release.

Distribution 21.1   June 2, 2003

Distribution 21.1 is a maintenance release.

Distribution 21.0   May 15, 2003

GAMS System

  • GAMS Model Library
    We added quite a few global optimization models to the GAMS model library that demonstrate the power of the new suite of Global Optimizers available in GAMS: BARON, LGO, and OQNLP. In addition, we added a model that calculates the US holiday schedule (HOLIDAY) and a model for the Five Leaper Tour problem (FIVELEAP). The model NASH gives an example of a Mathematical Program with Equilibrium Constraints (MPEC) which can be solved by the beta solver NLPEC.

  • IDE
    • GDX data viewer: Symbols can be sorted by various attributes, and the display uses two grids to display the data. The top grid shows the plane index, the bottom grid the current data. The indices can be arranged using drag and drop. The arrangement is preserved in the project file. The data viewer can write a single symbol or all symbols to an html file.
    • Removed Setup button from the print dialog screen. Printer setup is now available from the window that follows this dialog. This allows more printer options to be selected, such as duplex printing.
    • Added option to update the GAMS system using a ZIP file in the GAMS system directory. (File | Options | Execute | Update)
    • Added entries on the help menu for easy access to some documentation files.
    • Revised the on-line help and added a number of screen shots.
    • Added file:/// as a recognized hyperlink.

  • GDX Utilities
    • New documentation includes GDX facilities in GAMS.
    • GDXXRW (Excel interface)
      - Added 'usage' output
      - Removed SSET as a type, and added Values option for a set.
    • GDXDIFF
      - Added option to specify a single field for comparison (for variables and equations)
      - Added option to ignore comparison of associated text
      - Added RelEps option for relative comparisons
    • GDXDUMP
      - Added UelTable option

Solvers

  • New Global Solvers

    NLP and MINLP problems frequently have multiple local optima. The three new solvers, BARON, LGO and OQNLP aim at finding the best possible local optima, the global optimum solution. The solvers differ in the methods they use, in whether they find globally optimal solution with proven optimality, in the size of models they can handle, and in the functional forms they accept.

    • BARON
      BARON is from The Optimization Firm, LLC and the University of Illinois at Urbana-Champaign. The Branch And Reduce Optimization Navigator derives its name from its combining interval analysis and duality in its reduce arsenal with enhanced branch and bound concepts as it winds its way through the hills and valleys of complex optimization problems in search of global solutions.

    • LGO
      LGO is from Pinter Consulting Services, Inc. This algorithm combines rigorous statistical methods with traditional mathematical programming methods to find solutions within well defined bounds. LGO stand for Lipschitz Global Optimization.

    • OQNLP
      OQNLP from Optimal Methods, Inc and OptTek Systems, Inc. is a solver for global optimization of non-linear problems with discrete and continuous variables. This multi start solver combines robust nonlinear optimization technologies with state-of-the-art meta heuristics like scatter search. In this official release of OQNLP, nonlinear subproblems with different starting points can be solved by any GAMS NLP solver as well as the build-in LSGRG solver.

  • CONOPT
    The CONOPT family of NLP solvers now have three members, CONOPT1, CONOPT2, and CONOPT3. The alias CONOPT which used to point to CONOPT2 will now call CONOPT3. In case you need to run an older version of CONOPT you must specify CONOPT1 or CONOPT2.

    CONOPT3 is an enhancement of CONOPT2. An additional solver component based on sequential quadratic programming (SQP) principles has been added and it uses the new 2nd order facilities in GAMS. In addition, an improved automatic scaling routines is now used as default.

    CONOPT3 is a true multi-method solver that combines its many solver components (SQP, SLP or sequential linear programming, Quasi-Newton, and Steepest Descend) with dynamic selection of the best component based on performance statistics.

    CONOPT2 is, apart from minor bug fixes, identical to CONOPT2 from the previous release. CONOPT1 has not been changed and it will not be updated any more. We encourage all CONOPT1 user to move on to CONOPT3 or CONOPT2.

  • CPLEX 8.0
    Find detailed release notes here

  • MINOS
    The new GAMS/MINOS, which is based on MINOS 5.51 uses a new LU factorization with Threshold Rook Pivoting. It also has better memory estimation and improved reporting of infeasibilities.

  • MOSEK
    MOSEK from MOSEK ApS, Copenhagen Denmark is a large scale system for solving linear, mixed-integer linear, and convex nonlinear mathematical optimization problems. MOSEK is particularly well suited for solving sparse large-scale problems using an extremely efficient interior point algorithm. This official release of MOSEK using library version 2.5 also solves second order conic programs. Please find details at www.gams.com/conic.

  • OSL
    The OSL optimizer family is now represented by its newest member, OSL3. You can still run OSL2 and OSL1 (where available) by specifying them explicitly, but the default OSL is OSL3.
    Improvements to OSL3 over past OSL versions include:
    • Better performance for the simplex, barrier, and MIP codes
    • Better memory management
    • More robustness, especially in the barrier code

  • PATH
    The PATH presolve has been extended and strengthened.

  • SNOPT
    The new GAMS/SNOPT, which is based on SNOPT 6.2-1 uses a new LU factorization with Threshold Rook Pivoting. Memory estimation, the reporting of infeasibilities, and the handling of LP's has been improved.

  • XPRESS
    GAMS/XPRESS now links to XPRESS 2003, the latest optimizer from DASH. Optimizer improvements include:
    • Completely redesigned and rewritten branch and bound framework
    • New code for the Newton Barrier optimizer
    • Enhanced branching technology, cut strategies and heuristics
    • Better memory management

Documentation

  • McCarl's GAMS User Guide
    The new McCarl's GAMS User Guide will be installed automatically with CD installation. If you download the GAMS system from our web site, you have to install it separately, see [not available anymore]

  • Solver Manuals
    There is a revised version for most of the solver manuals, all of them are in a uniform format. A composite manual, The Solver Manuals, is also available for printing.
Distribution 20.7   June 14, 2002

Distribution 20.7 is a maintenance release.

Distribution 20.6   May 25, 2002

GAMS System

  • MODLIB
    We have two new models (clearlak and srkandw) that demonstrate the use of scenred, an interesting MIP model for scheduling TV commercials, and an example that shows the use of some GDX utilities.

  • MPS2GMS
    This utility converts MPS files into a GAMS program making use of the GAMS GDX facility. This replaces the contributed utility mps2gams.

  • POSIX UTILITIES
    Starting with this distribution the GAMS system for Windows includes a collection of Posix utilities which are usually available for the different Unix systems and therefore help to write platform independent scripts. More information here.

  • SCENRED
    ScenRed (a new addition to the GAMS system) allows GAMS users easy access to the scenario reduction algorithms found in ScenRed. Given the event tree for a stochastic program, ScenRed determines a subset of scenarios and the optimal redistribution of probabilities for the preserved scenarios. This is useful when the stochastic program that results from using the original (complete) event tree is too large to solve. Making use of the new execution-time GAMS data interface (execute_load/execute_unload), GAMS/ScenRed takes the original tree from the modeler, along with parameters controlling the reduction, and returns a reduced tree for use in subsequent solves or data manipulation.

Solvers

  • SBB
    There are two new options (dfsstay and acceptnonopt) in SBB that can help to find good solutions more quickly as well as handle almost optimal subproblems which are ignored by default.

  • XA
    The GAMS/XA link has been modified to work with the new generation (Version 13) of XA libraries. All XA-supported architectures are now using this new version, and so will include a Newton-barrier capability.

Beta Solvers

  • BARON
    Complete primal and dual solutions values are now reported by using CONOPT as a post processor. The preprocessing has been enhanced to allow free (=N=) equations.

  • MOSEK
    MOSEK from MOSEK ApS is a large scale system for solving problems of the following classes:
    • Linear optimization
    • Mixed integer linear optimization
    • Convex quadratic optimization
    • Conic quadratic optimization
    The released version of MOSEK will also solve
    • Quadratically constrained convex optimization
    • Convex optimization
    More information about MOSEK can be found at www.mosek.com.

  • OQNLP
    OQNLP from Optimal Methods, Inc is a solver for global optimization of smooth constrained problems with either all continuous variables or a mixture of discrete and continuous variables. This multi start method combines mathematical programming approaches with meta heuristics like tabu search.

  • NLPEC
    NLPEC is a solver for MPEC models that works by reformulating the MPEC model as an NLP, solving the NLP using one of the GAMS NLP solvers, and then extracting the MPEC solution from the NLP solution. All of this happens automatically, although it is possible to access the intermediate NLP model. Like the CONVERT solver, the reformulated models NLPEC produces are in scalar form. Many different reformulations (currently around 20) are supported by the NLPEC solver. MPEC models are notorious for their difficultly, but the combination of different reformulations and NLP solvers give users a good chance to solve them.

  • PATHNLP
    • PATHNLP is now set up to allow the PATHLIB presolver to perform additional model reductions.
    • PATHNLP now uses the same libraries as PATH. Previous versions used an experimental version of PATHLIB (ver 5.X). Since the supported PATHLIB is now 4.6, it looks like PATHNLP now uses an older PATHLIB; this is not the case.
Distribution 20.5   January 28, 2002

Distribution 20.5 is a maintenance release.

Distribution 20.4   January 21, 2002

Distribution 20.4 is a maintenance release.

Distribution 20.3   December 24, 2001

GAMS System

  • GAMS
    Restrictions of number of symbols, set elements and execution code size have been completely removed.

    Performance enhancements for very large models with millions of rows and columns.

    Minor language enhancements: $on/offecho copies a block of lines to a file. The text is subject to string macro processing as well as inline and eol comment removal.
    For example:

    $onecho > myfile
    ...
    $offecho
    To append to a file use ">>".

  • IDE
    Contributed solver installation files (e.g. QPWRAP, DEA, ... see http://www.gams.com/contrib/contrib.htm) can now be installed using the IDE. Place the installation file (file extension *.zip or *.pck) in the GAMS system directory and click on the "Update" button in File->Options->Execute

Solvers

  • Uniform Solver Naming Conventions
    Since solvers are distributed with past, production, and beta versions (e.g. OSL, CONOPT, ...) a consistent naming convention has been adoped.
    The following simple rules apply:
    1. The base name of the solver does not change (e.g. CPLEX, OSL, CONOPT, ...) and refers to the current production version.
    2. Past and beta versions have names derived from the base name. For example, in this release we distribute CONOPT1 (past), CONOPT2 (production), and CONOPT3 (future). The base name CONOPT refers to CONOPT2.
    If you select the base name of a solver from now on you will get the most recent production version of the solver.

    For the following solvers the naming convention has changed:

    New Name (20.3-) Old Name (-20.2)
    CONOPT or CONOPT2 CONOPT2
    CONOPT3 CONOPT3
    CONOPT1 CONOPT
    OSL or OSL2 OSL2
    OSL3 OSL3
    OSL1 OSL
    MINOS or MINOS55 MINOS
    MINOS5 MINOS5
    PATH or PATHC PATHC
    PATHOLD PATH
    MILES or MILESE MILESE
    MILESOLD MILES

  • CONOPT
    The future version CONOPT3 is also available on Linux.

  • CONVERT
    For BARON and AMPL output GAMS/CONVERT eleminates the objective variable and uses a "true" objective function.

  • SBB
    NLP solvers sometimes have difficulties solving particular nodes and using up all the resources in this node. SBB provides options (see subres, subiter) to overcome these instances, but options have to be set in advance. Now, SBB keeps track of how much time is spend in the nodes, builds an average over time, and automatically controls the time spend in each node. The option avgresmult allows the user to customize this new feature.

  • XPRESS
    The XPRESS licensing for Windows, Linux, and Solaris is now much simplified; there is no XPRESS-specific licensing procedure for the user to follow. The GAMS/XPRESS solver takes care of licensing the XPRESS DLL, and does this automatically. Of course, as with other solvers, the GAMS/XPRESS must be licensed with your GAMS system.
Distribution 20.2   November 22, 2001

Distribution 20.2 is mostly a maintenance release.

  • CPLEX 7.5
    Find detailed release notes here

  • XPRESS 13.01
    The GAMS/XPRESS link has been updated to use the new 13.01 solver libraries from XPRESS.

Distribution 20.1   October 31, 2001

GAMS System

  • GAMS

    A new licensed Privacy and Security feature which allows to purge, hide or protect model data and model components from unauthorized use. Models and data that are saved with the privacy feature enabled are locked to a specific license and protected. For more details consult the corresponding appendix of the GAMS Users Guide..

    A new GAMS parameter EXECMODE can be used to reconfigure certain features when operating in an application service environment. $call/execute, $echo/put and $includes can be disabled or restricted to operate only on certain sub trees of the file system.

    Model options can be initialized from the command line or the GAMS parameter window in the IDE (bratio, iterlim, domlim, reslim, optcr, optca, sysout, solprint, optfile and all solvers for model types). For example:

     >gams myfile LP=BDMLP RESLIM=10
    will override the default solver to be BDMLP and force an interrupted after 10 seconds.

    Other minor language enhancements are:

    • Factorial function FACT
    • Implication operator ('->' or 'imp')
    • Equivalence operator ('<=>' or 'eqv')
    • $ECHON and echo without EOL
    • $IFi which makes case insensitive string comparisons

    A number of restrictions have been relaxed:

    • NLP model can have up to 8 million constants.
    • A GAMS program can have up to 1 million GAMS symbols or unique elements.
    • The internal code space has been increased to 32 million instructions.
    • The model size is limited by hardware addressing space only.

    GAMS environment variables can now be initialized or reset from the command line or parameter window. The prefix -- signals an environment variable. For example:

     >gams myfile --mypath="d:a b"
    is equivalent to inserting '$set mypath d:a b' in the GAMS input file. The GAMS parameter SETTYPE (ST) values of 0 (default), 1 and 2 change the implied $set command to $set/setlocal/setglobal respectively.

    The evaluation of nonlinear expressions inside solvers of the form ** are now interpreted more restrictive for the values of -1,0,1 and 2. The solver will issue domain violations when the value of an expression becomes negative. For example, x**0 will now require that x is always greater or equal to zero. The function power(expression,integer constant) should be used if this is not intended.

    Derivatives for 0**0 are not defined and may cause problems during the solution process. Warnings are issued when this case arises.

  • IDE
    Alternate license dialog was disabled
    Selecting 'GAMS model library' will no longer add this entry to the recently used list of libraries.
    Find/Replace dialogs no longer default to 'Selected Text' when text was selected in the editor.

  • GAMS Model Library
    The references for existing models have been updated which allows an indexing by author.

    We added a couple of MINLP models:

    • CSCHED Cyclic Scheduling of Continuous Parallel Units
    • GASNET Optimal Design of a Gas Transmission Network
    • WINDFAC Winding Factor of Electrical Machines
    • STOCKCC Minimizing Total Average Cycle Stock
    • NSHARPX Synthesis of General Distillation Sequences
    • MINLPHIX Heat Integrated Distillation Sequences
    The new model CESAM illustrates a cross entropy technique for estimating the cells of a consistent Social Accounting Matrix (SAM) assuming that the initial data are inconsistent and measured with error.

    The COPS models have been added:

    • POLYGON Largest small polygon COPS 2.0 #1
    • ELEC Distribution of electrons on a sphere COPS 2.0 #2
    • CHAIN Hanging Chain COPS 2.0 #3
    • CAMSHAPE Shape optimization of a cam COPS 2.0 #4
    • PINENE Isometrization of alpha-pinene COPS 2.0 #5
    • POPDYNM Marine population dynamics COPS 2.0 #6
    • FLOWCHAN Flow in a channel COPS 2.0 #7. Uses new function fact
    • ROBOT Robot arm COPS 2.0 #8
    • LNTS Particle steering COPS 2.0 #9
    • ROCKET Goddard rocket COPS 2.0 #10
    • GLIDER Hang glider COPS 2.0 #11
    • GASOIL Catalytic cracking of gas oil COPS 2.0 #12
    • METHANOL Methanol to hydrocarbons COPS 2.0 #13
    • CATMIX Catalyst Mixing COPS 2.0 #14
    • TORSION Elastic-plastic torsion COPS 2.0 #15
    • JBEARING Journal bearing COPS 2.0 #16
    • MINSURF Minimal surface with obstacle COPS 2.0 #17

Solvers

  • CONVERT
    This solver converts a GAMS model instance into a format used by other modeling and solutions systems. The transformed models have only scalar equations and variables with all original naming removed. This 'scalar' format hides the original model and data development and allows one to exchange confidential models for solver tuning and research. Currently, CONVERT can translate GAMS models into the following formats:
    • AMPL
    • BARON
    • CplexLP
    • CplexMPS
    • GAMS
    • LGO
    • LINGO
    • MINOPT

    This solver is also available as an e-mail based service from the GAMS World.

  • CPLEX 7.1
    Find detailed release notes here

  • MPSGE/MCP Solver
    There has been a reorganization of the MCP/MPSGE solvers. Central to this is the introduction of a new core library for MPSGE models. There are two MCP solvers compatible with this new scheme: PATHC and MILESE. Both of these solvers implement the same algorithms as their predecessors PATH and MILES: only their internal interface is changed. The old solvers, using the old interface, are still available for the time being. However, the new solvers offer certain advantages; for example, PATHC contains optional preprocessing of the MCP model that was not possible because of the structure of the old interface. The new interface also relies on the GAMS Base module to perform many more consistency checks on the MCP formulation and gives more immediate and extensive diagnostic information when modeling errors occur. Finally, the new interface will allow one to "plug in" an alternate version of the MPSGE core library to experiment with different MPSGE functional forms.
    It's important to note that backward compatibility is maintained, and that all four solvers (PATH, PATHC, MILES ,and MILESE) will accept the same GAMS files as input. The interface changes referred to above are all internal in nature.

  • OSL3
    The GAMS/OSL link has been updated to use the new OSL3 libraries from IBM.

  • PATHNLP
    PATHNLP is the latest NLP solver at GAMS. Essentially, it implements an SQP algorithm by automatically reformulating an NLP problem as a complementarity problem and solving this using the proven, reliable PATH solver. This allows second order information to be used in the solution of the model, which often results in greater solution efficiency. In addition, the marginal values are sometimes more exact than those provided by first-order methods. The advantages of this approach are most apparent on very large, sparse models with many nonlinear variables and degrees of freedom. In these cases, the superbasics limit of other NLP codes limits their effectiveness but is no barrier when using PATHNLP. The new PATHNLP solver allows the solution of certain previously unsolvable models (e.g. maximum entropy models).

  • SBB
    • SBB derives an implicit absolute termination tolerance if the model has a discrete objective row. This may speed up the overall time if the user has tight termination tolerances (optca, optcr).
    • SBB passes indicies of rows with domain violations back to the LST file. All domain violation from the root node as well as all sub nodes are reported and the user might take advantage of this information to overcome these violations.

  • XPRESS
    The GAMS/XPRESS link has been updated to use the new 12.50 solver libraries from XPRESS. Benefits include an improved pricing algorithm in dual simplex, improved sparse/dense data handling in all simplex codes, and a general 30% reduction in simplex solve time. The barrier solver incorporates row-wise Cholesky factorization, which gives improved performance on many problems, and has more efficient memory usage. The presolve has more efficient memory management, and the eliminator phase has been improved. The branch and bound algorithm has improved cut selection and faster clique cut generation.
    Improvements to the link itself allow for better detection and reporting of unbounded or infeasible models.

Solvers in Beta Version

  • BARON
    BARON is a computational system for solving non convex optimization problems to global optimality. Purely continuous, purely integer, and mixed-integer nonlinear problems can be solved with the software. The Branch And Reduce Optimization Navigator derives its name from its combining interval analysis and duality in its reduce arsenal with enhanced branch and bound concepts as it winds its way through the hills and valleys of complex optimization problems in search of global solutions.

    The demo size for this solver is reduced to 10 variables and 10 equations. The beta version of BARON is available on Windows, Linux and AIX.

  • CONOPT3
    A new version of CONOPT is available for beta testing, find release notes here. It is available on Windows only.