23.4 Distribution

23.4.1 Major release (May 21, 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

  • Now built on AIX 5.3
  • 64 bit
  • New AIX system no longer supports the following products BARON, CONOPT2, DECIS, OSL3, OSLSE, SCENRED, SCENRED2, and XA

Mac PowerPC

  • Dropped support of the Macintosh PowerPC GAMS System. Version 23.3 and older are still available for download

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:
    • QCP/DNLP/NLP -> LP
    • MIQCP/MINLP -> MIP
    • RMIQCP/RMINLP -> RMIP
  • An example was added to the Test Library: trylin01 (482)

Compile Time String Comparison

  • A compile time equivalent of the predefined symbol sameas 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.

  • solPrint:
    0 %solPrint.summary%
    1 %solPrint.report%
    2 %solPrint.quiet%
  • handleStatus:
    0 %handleStatus.unknown%
    1 %handleStatus.running%
    2 %handleStatus.ready%
    3 %handleStatus.failure%
  • solveLink:
    0 %solveLink.chainScript%
    1 %solveLink.callScript%
    2 %solveLink.callModule%
    3 %solveLink.asyncGrid%
    4 %solveLink.asyncSimulate%
    5 %solveLink.loadLibrary%
  • solveStat:
    1 %solveStat.normalCompletion%
    2 %solveStat.iterationInterrupt%
    3 %solveStat.resourceInterrupt%
    4 %solveStat.terminatedBySolver%
    5 %solveStat.evaluationInterrupt%
    6 %solveStat.capabilityProblems%
    7 %solveStat.licensingProblems%
    8 %solveStat.userInterrupt%
    9 %solveStat.setupFailure%
    10 %solveStat.solverFailure%
    11 %solveStat.internalSolverFailure%
    12 %solveStat.solveProcessingSkipped%
    13 %solveStat.systemFailure%
  • modelStat:
    1 %modelStat.optimal%
    2 %modelStat.locallyOptimal%
    3 %modelStat.unbounded%
    4 %modelStat.infeasible%
    5 %modelStat.locallyInfeasible%
    6 %modelStat.intermediateInfeasible%
    7 %modelStat.intermediateNonoptimal%
    8 %modelStat.integerSolution%
    9 %modelStat.intermediateNonInteger%
    10 %modelStat.integerInfeasible%
    11 %modelStat.licensingProblem%
    12 %modelStat.errorUnknown%
    13 %modelStat.errorNoSolution%
    14 %modelStat.noSolutionReturned%
    15 %modelStat.solvedUnique%
    16 %modelStat.solved%
    17 %modelStat.solvedSingular%
    18 %modelStat.unboundedNoSolution%
    19 %modelStat.infeasibleNoSolution%
  • E.g. the statments following are the same
    modelname.solveLink=3; modelname.solPrint=0;
    modelname.solveLink=%solveLink.asyncGrid%; modelname.solPrint=%solPrint.summary%;
  • The GAMS model libraries were adjusted and now make use of these constants.

APIs

  • new C# example using GDX API: apifiles\examples\example1.cs
  • added C++, C# and VB.net project files to make it easier to compile the examples in Visual Studio
  • added Delphi Option and Project Configuration Files to make it easier to compile the examples in the Delphi IDE and on the command line
  • added Java Native Interface libraries
  • apifiles\common: dropped file gamsglobals.h, use gclgms.h instead

GDXDCLIB API

  • New entry points:
  • gdxOpenAppend To add symbols to an existing GDX container
  • gdxDataReadRawFast To read data in raw mode using a callback function

Data Utilities

GDX2ACCESS

  • gdx2access now supports saving the text associated with set entries in the database.
  • Added parameter to indicate which version of the database should be created (.mdb or .accdb)

GDXXRW

  • gdxxrw now supports writing an Excel file with filters. Filtering can be switched on/off for the symbols that follow the filter option:
    execute 'gdxxrw.exe test.gdx par=A rdim=3 cdim=0 rng=sheet1!a1 filter=1 par=B rdim=3 cdim=0 rng=sheet2!a1';
    
  • Added options to write texts and hyperlinks to a spreadsheet.

MDB2GMS

  • mdb2gms now supports writing of the text associated with set entries.

SQL2GMS

  • sql2gms now supports writing of the text associated with set entries.

EMP

  • A new model type EMP was added in order to provide the flexibility required for the extended mathematical programming framework.
  • The former solver EMP was renamed to JAMS to avoid confusion. JAMS is the default solver for EMP models.
  • EMP bilevel programming now supports Variational Inequality (VI) followers in addition to maximization/minimization followers. Example: multmpec (25)
  • EMP now supports equilibrium models. In contrast to bilevel programs these agent-based systems don't require a leader. Example: transeql (45)
  • Lots of EMP models were added to the GAMS EMP Library.

IDE

  • Fixed bug with writing a symbol with many elements to a spreadsheet
  • Opening many .lst files is faster

Libinclude

  • McCarl's put_toexcel and put_tohtml were added to inclib subdirectory of the GAMS system directory and therefore can be used using $libinclude. These tools allow greater control when writing multi dimensional symbols to Excel or HTML files. More information can be found here

Solvers

BARON

  • New Libraries 9.0.5
  • Native 64bit Baron libraries in 64bit windows and linux system
  • New option ExtNLPsolver allows to call any GAMS NLP Solver available
  • Dropped support of Baron on platform AIX

Coin-OR

  • Renaming
    • of solver links as follows
      • COINBONMIN -> BONMIN
      • COINCBC -> CBC
      • COINCOUENNE -> COUENNE
      • COINGLPK -> GLPK
      • COINIPOPT -> IPOPT
      • COINOS -> OS
      • COINSCIP -> SCIP
    • of bare bone solver links as follows
      • COINCPLEX -> OSICPLEX
      • COINGUROBI -> OSIGUROBI
      • COINMOSEK -> OSIMOSEK
      • COINXPRESS -> OSIXPRESS
    • For convenience of our users we keep the old names as aliases to the new names for the next distribution.
    • Note: The temporary names COINBONMIND, COINCBCD, and COINIPOPTD are not available anymore
  • New libraries
    • CBC 2.4
    • Bonmin 1.3
    • Couenne 0.3
    • Ipopt 3.8
    • GLPK 4.43
    • Mumps 4.9 (used by Ipopt and Bonmin)
    • OS 2.1
  • The new BONMIN version brings various new MINLP heuristics (Feasibility pump, diving based heuristics, RINS, local branching).
  • BONMIN can now use CPLEX as solver for sub-MIPs, see option milp_solver
  • SCIP now supports convex and nonconvex quadratic constraints (model types QCP, RMIQCP, MIQCP).
  • BCH has temporarily been disabled for CBC, BONMIN, and SCIP.
  • The OS link now supports only remote solvers via an Optimization Services Server.
  • Native CSDP executables were added to the 64bit Windows and Linux system.

CPLEX

  • Updated threads option allows specification of cores left free for non-CPLEX work

GUROBI

  • New libraries GUROBI 3.0
  • New parallel barrier solver
  • New MIP features include symmetry handling, improved and additional cutting planes, and additional heuristics.
  • Alternate MIP solutions: retrieve all of the feasible solutions found during the branch-and-cut search
  • New parameters
    • AggFill: provides finer-grain control of presolve aggregation.
    • BarConvTol: barrier convergence tolerance.
    • BarCorrectors: controls central corrections in barrier.
    • BarIterLimit: limits the number of barrier iterations.
    • BarOrder: controls the fill-reducing ordering in barrier.
    • PreDepRow: controls the presolve dependent row reduction.
    • Crossover: controls barrier crossover.
    • CrossoverBasis: controls the generation of the initial crossover basis.
    • MIPFocus: allows you to modify the MIP solution strategy to better suit the needs of different model types.
    • MIPGapAbs: absolute MIP termination tolerance (GAMS OptCA)
    • NetworkCuts: controls the generation of network cutting planes.
    • PreDual: determines whether presolve should form the dual of the input model.
    • PrePasses: controls the number of passes performed by presolve.
    • PumpPasses: controls the feasibility pump heuristic.
    • RINS: controls the RINS heuristic.
    • Symmetry: controls the new MIP symmetry handling.
    • SubMIPCuts: controls the generation of sub-MIP cutting planes.
    • Threads: allows specification of how many cores to use.

LINDOGLOBAL

  • New libraries Lindo 6.0.1.406
  • Now also available on Solaris on x64
  • Significant improved performance with some models when Mosek is licensed as well

MOSEK

  • New libraries MOSEK 6 rev 71

XPRESS

  • New libraries XPRESS 20.00

In-core communication solver links

  • All Coin-OR solvers are now supported as in-core communication solvers.

Model Libraries

GAMS Data Library

GAMS EMP Library

GAMS Model Library

  • trnspwl (351): A Transportation Problem with discretized economies of scale
  • food (352): Food Manufacturing Problem - Blending of oils

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.

23.4.3 Maintenance release (May 24, 2010)