Table of Contents
- 23.9.1 Major release (July 04, 2012)
- 23.9.2 Maintenance release (August 29, 2012)
- 23.9.3 Maintenance release (September 26, 2012)
- 23.9.4 Maintenance release (October 20, 2012)
- 23.9.5 Maintenance release (November 09, 2012)
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.
- 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 ofon/offOrder
.
gamsbatch
- The script to run GAMS in the background (
gamsbatch
) has been removed from Unix distributions. This script was a source of confusion when multiple GAMS systems were installed. A GAMS job can be run in the background easily without this script.
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
Other
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.
- The new options are:
- 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, orKappaExact
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
- Minor updates to link
- 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): Excel Spreadsheet in Charge of GAMS
GAMS EMP Library
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
- qp7 (271) and emfl (273): Both models use second order cone constraints. The constraints are written with the
- 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
GAMSModelInstance.Instantiate
is now thread-safe- Additional flag
createOutDB
for methodGAMSJob.Solve
which allows to switch off automaticoutDB
creation - New class
GAMSModelInstanceOpt
to customize methodGAMSModelInstance.Solve
- Delete some temporary files, add
GAMSWorkspace.ScratchFilePrefix
(default:_gams_net
) for temporary files GAMSJob
no longer implementsIDisposable
; examples have changed because theusing
statement no longer works withGAMSJob
Java
- Now methods that returned
long
in Java butvoid
in C also returnvoid
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 manyGAMSWorkspace
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] (http://yetanothermathprogrammingconsultant.blogspot.com/2012/10/gamsgurobi-qcp-problems.html) 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 setsnlpsol
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 is1
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 <br>
- 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
andindic
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.