23.9 Distribution

23.9.1 Major release (July 04, 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 Steve Gabriel, Oyvind Hoveid and Renger van Nieuwkoop.

Platforms

• We added some instructions on how to install the GAMS Windows version (including the IDE) on the Mac using Wine. These instructions can be found at
http://support.gams.com/doku.php?id=platform:how_to_install_the_gams_windows_version_on_a_mac.
• The Unix installer has already been changed with 23.8. When running the installer, a subdirectory is created (e.g. gams23.9_linux_x86_32_sfx for the Linux 32bit installer). Previous versions unpacked the GAMS distribution into the current directory.

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#

• Gamsx, gdx and opt implement IDisposable interface
• New example example2.cs using APIs to gamsx, gdx and opt
• Several new examples using the new .NET API

GDX

• Added functions to get and set relaxed domain information
• Added function to get memory usage of a gdx object

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.

Minor enhancements

• GAMS solvers that provide a bound on the optimal solution (e.g. Branch-and-Cut based solvers) can return this bound to the calling GAMS model through the model attribute objest. In previous versions of GAMS this model attribute was not set if no solution was found. This has been fixed with this release.
• When GAMS/Base writes a GDX file containing a subset of all symbols present, it will now also write relaxed domain information to the GDX.

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

• The data viewer in the GAMSIDE shows the domain information
• New history combo box for alternate system directory

GDX2Access

• Use relaxed domain information to generate column names

GDXDUMP

• Added option to write CSV formatted file (Format=[normal, gamsbas, csv])
• Added option to use last dimension as a column header for CSV output (CDim=[Y, N])
• Added option to not filter default values (FilterDef=[Y, N])
• Option to show domain information (DomainInfo)

XLSDump

• Truncate long UELs

XLSTalk

• Allow for a relative path in the file specification

Solvers

Baron

• BARON 11: This version comes with a wealth of new branching, relaxation, convexity exploitation, local search, and range reduction techniques. You will see improvements in many problems, including convex ones. In addition, BARON 11 offers systematic treatment of missing bounds through safe LP relaxations. Users will see far fewer messages about missing bounds from BARON from now on, while many more problems will be guaranteed global.

Coin-OR

• new libraries Bonmin 1.6 and OS 2.5
• bugfixes in Cbc and Couenne

Conopt

• New libraries 3.15F

Cplex

• new libraries 12.4 fix pack 1

GloMIQO

• New library GloMIQO 2.0
• GloMIQO 2.0 alternatively uses Conopt or Snopt for finding feasible solutions (default Conopt).
• GloMIQO 2.0 fully integrates integer variables, discrete/discrete products, and discrete/continuous products
• GloMIQO 2.0 implements a branch-and-cut framework with cutting planes derived from edge-concave aggregations, alphaBB cuts, and convex terms. Cuts are based on both individual equations and the collection of quadratic and bilinear terms in MIQCQP.
• GloMIQO 2.0 automatically adds bilinear terms to the model formulation to create Reformulation-Linearization Technique (RLT-1) equations.
• The Boost Interval Arithmetic Library improves the reliability of the GloMIQO 2.0 bound tightening schemes.

Gurobi

• New library Gurobi 5.0.1
• Quadratic constraint support: You can now add Second-Order Cone constraints, rotated Second-Order Cone constraints, and general Quadratic Constraints to an optimization model. Continuous models containing these constraints are solved using a new barrier SOCP solver. Mixed-integer models are solved using a branch-and-cut algorithm, employing either QCP node relaxations or an outer-approximation algorithm.
• The new options are:
• BarQCPConvTol: Convergence tolerance for the barrier algorithm when solving a QCP.
• PreQLinearize: Controls linearization of Q matrices in the quadratic constraints or a quadratic objective.
• QCPDual: Determines whether dual variable values are computed for QCP models. Gurobi has this off by default. In GAMS/Gurobi this is on by default.
• MIQCPMethod: Determines whether outer approximation is used to solve an MIQCP model.
• Feasibility relaxation: Gurobi now provides a feasibility relaxation model for an infeasible model. This related model will find a solution that minimizes the violation of the original constraints. Check option FeasOpt for details.
• Simplex warm-starting from a solution: You can now warm-start the simplex method using a primal and dual solution vector. In previous versions, warm-starting was only possible if you had a simplex basis. Check option UseBasis for details.
• Barrier homogeneous algorithm: Gurobi now provides a homogeneous algorithm in the barrier solver. This version should be used when you are likely to ask the barrier solver to solve infeasible or unbounded models. Use the new BarHomogeneous option to select this.
• Gurobi now provides both exact and approximate condition number estimates for the optimal simplex basis. Use Kappa if you want a quick estimate, or KappaExact if you want to spend the sometimes substantial time required to compute the exact condition number.

GUSS

• Introduce option NoHotStart to suppress hot starts with hot start capable solver.
• Temporary scenario files are located now in the scratch directory, so multiple GUSS runs can take place in the same directory without interference.

MOSEK

• New libraries Mosek 6 rev 137

PATH

• Bug fix in preprocessor

SCIP

• New library SCIP 2.1.2

Xpress

• New libraries: Xpress Optimizer 23.0.05
• Improved Barrier performance, especially on modern Intel CPUs. The Barrier solver will now take advantage of Intel's Advanced Vector Extensions (AVX) when available.
• New symmetry detection and orbital branching for MIPs.
• Improved in-tree cutting strategy.
• Added some quick heuristics that will be run before the initial root LP is solved.
• New platform supported: Mac OSX 64-bit
• bugs fixed: handling of QCP models with equality constraints, interrupted solves
• pass the objective constant on to Xpress Optimizer
• add new options to control XPRESS symmetry detection

Documentation

• Updated Expanded GAMS Guide (McCarl) to reflect release 23.9
• The solver Manual has been split into two parts: I The Commercial Solvers and II The Free Solvers. Printed versions of the manual will only contain part I. The on-line/PDF version has both parts available.

Model Libraries

GAMS Data Library

• TrnsxcllStarter (83): Trnsxcll: Excel Spreadsheet in Charge of GAMS

GAMS Model Library

Updated:

• qp7 (271) and emfl (273): Both models use second order cone constraints. The constraints are written with the =c= syntax if MOSEK is the selected solver and as general quadratic constraints if CplexD or Gurobi are the selected solvers
• feasopt1 (314): This model has been modified so it can be used by Cplex and Gurobi. Both solvers support the FeasOpt option to find minimal relaxations for infeasible models

New:

• ps5_s_mn (377): Parts Supply Problem w/ 5 Types w/ Random p(i)
• iobalance (378): Updating and Projecting Coefficients: The RAS Approach
• fdesign (379): Linear Phase Lowpass Filter Design
• pmeanvar (380): Mean-Variance models with variable upper and lower bounds

GAMS Test Library

Updated:

• circlen (551): Added an SOCP formulation to the smallest circle problem

New:

• mpsge12 (558): MPSGE test - inter-mixed MPSGE and MCP rows in model
• gdxcomp2 (559): GDX - compressed and MT operation
• lagd1 (560): Lag and Lead operations on Dynamic Sets
• miqcp02 (561): Test of correctness of solvestat

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
BARON 11.1
BDMLP
COIN-OR
CONOPT 3
CPLEX 12.4
DECIS 32bit
DICOPT
GLOMIQO 2.0
GUROBI 5.0
KNITRO 8.0
LINDO 7.0
LINDOGLOBAL 7.0 6.0 6.0
LGO
MILES
MINOS
MOSEK 6
MPSGE
MSNLP 32bit
NLPEC
OQNLP 32bit 32bit
PATH
SBB
SCIP
SNOPT
SOPLEX
XA
XPRESS 23.01

23.9.2 Maintenance release (August 29, 2012)

GAMS System

APIs

.NET

• Additional flag createOutDB for method GAMSJob.Solve which allows to switch off automatic outDB creation
• New class GAMSModelInstanceOpt to customize method GAMSModelInstance.Solve
• Delete some temporary files, add GAMSWorkspace.ScratchFilePrefix (default: _gams_net) for temporary files
• GAMSJob no longer implements IDisposable; examples have changed because the using statement no longer works with GAMSJob

Java

• Now methods that returned long in Java but void in C also return void in 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

• Fixed objective estimate modelname.ObjEst

Baron

• New BARON 11.3.0 library (bugfixes)

Coin-OR

• New Couenne library (bugfixes)
• New Bonmin library (bugfix for B-OA as algorithm choice)

ConvertD

• New option DictMap in ConvertD

Cplex

• CplexD: fixed bug when registering an advanced basis

GloMIQO

• New GloMIQO library (bugfixes)

Gurobi

• New Gurobi 5.0.1 library for AIX
• OsiGurobi: fixed mipstart option (now only values for discrete variables are passed to Gurobi)

Jams

• New option DisjBinRelax in JAMS to allow continuous (but implicit binary) variables

Knitro

• Work around problems with knapsack cuts for MINLPs

Lindo

• New Lindo 7.0.1.487 library (bugfixes)

SCIP

• Fixed wrong sign of objective when maximizing a nonlinear objective

23.9.3 Maintenance release (September 26, 2012)

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

• New Couenne library (bugfixes)

23.9.4 Maintenance release (October 20, 2012)

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

23.9.5 Maintenance release (November 09, 2012)

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.