Table of Contents
24.1.1 Major release (May 30, 2013)
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
- The GAMS installer for Windows is now digitally signed which allows to verify the authenticity
Documentation
- McCarl guide has been updated
GAMS
- new log output option lo=4 has been added: writes simultaneously to log file and stdout.
- Memory leak for GUSS/ScenarioSolver fixed. This also was a problem for the GAMSModelInstance in the OO-API.
- Command line option
OptFile
does not overwritemodel.optfile
anymore.OptFile
now behaves as other GAMS options e.g. likeResLim
. A new command line optionForceOptFile
overwrites all other methods of setting a solver option. - New option
NoNewVarEqu
will trigger a compilation error when new equation or variable symbols are introduced. This is useful for testing GAMS run-time environments. - New option
SymPrefix
that prefixes all user symbols compiled in this run with the string value of this option before saving to a save/restart file. This is useful when merging multiple models together to avoid name clashes.
GAMS IDE
- The text comparison utility menu has been changed and now has a structure similar to the GDXDIFF menu; previous file selections are available in the drop-down fields
- The help menu has a link to the search page on the GAMS website
Solvers
"D" Solvers
- The "D" solvers GAMS/ConvertD and GAMS/CplexD started as research and development versions of the production solvers GAMS/Convert and GAMS/Cplex and offer some interesting new features that eventually will migrate into the production version.
ALPHAECP
- Alpha-ECP v2.10.02. New option ECPmaster and minor performance improvements.
ANTIGONE
- The new solver ANTIGONE (Algorithms for coNTinuous / Integer Global Optimization of Nonlinear Equations) is a computational framework for deterministic global optimization of nonconvex MINLP. ANTIGONE performs equivalently to GloMIQO when all nonlinearities in MINLP are quadratic.
- ANTIGONE has been developed by Computer-Aided Systems Laboratory at Princeton University; it was completed in collaboration with the Centre for Process Systems Engineering at Imperial College.
- GAMS/ANTIGONE is available for the 32-bit and 64-bit versions of Windows and Linux.
- GAMS/ANTIGONE requires the presence of a GAMS/CPLEX license and either a GAMS/CONOPT or a GAMS/SNOPT license.
Bonmin, Couenne, Osi*, SCIP
- Marginals are now reported as 'NA', if not available, instead of 0.
Baron
- New libraries 12.3
- New relaxations for certain types of quadratic problems
- Clp 1.14.8
- Farkas infeasibility test to validate LP subsolver claims of infeasibility (Cplex and Clp only)
- Dynamic memory allocation, options workspace and workfactor have been removed
- Improved integer presolve
- Incorporation of convex envelopes for certain low-dimensional functions
CBC
- New libraries Clp 1.15 and Cbc 2.8
- An implementation of zero-half cuts is now available. So far, they may help only on a small subset of problems and may need some tuning, so they are off by default. The new option zerohalfcuts can be used to enable them.
- Alternative implementations of Gomory mixed-integer and reduce and split cuts are now available. By default, these cuts are off. The new options gomorycuts2 and reduceandsplitcuts2 can be used to enable them.
- Added new parameter cut_passes_slow to encourage the use of some of the more exotic/expensive cut generators.
- The random seeds for CLP and CBC can now be set by user via the new options randomseedclp and randomseedcbc.
- Cbc can now solve the root node multiple times, each with its own different seed. This can be enabled via the new option multiplerootpasses.
- New option extravariables that switches on a trivial re-formulation that introduces extra integer variables to group together variables with same cost.
- New option cutoffconstraint to add the objective function as a constraint which right hand side is set to the current cutoff value to the problem.
- New option parallelmode to switch between deterministic and opportunistic parallelization. NOTE: The default is deterministic, while it was opportunistic in the past.
Cplex
- New libraries 12.5.0.1 (fix pack 1)
- New link option
solnpoolmerge
to write all solutions into a single GDX file - Solutions from the solution pool are written in sorted order from best to worst
- GAMS/CplexD supports the Cplex remote object. See option
ComputeServer
.
CONOPT
- New libraries 3.15K
- Fixed a system error (303) related to inversion of very large matrices.
- Adjusted some test output to handle more than 1 mill rows and columns.
- If the directional 2nd-derivative routines returned an error and should be turned off they were not turned off after all and the result was poor performance and many strange messages. Problem Fixed.
- The final model could be infeasible and still declared feasible if the initial and final scaling factors were very different. Problem Fixed.
DICOPT
- added parameter 'infbnd' to control which value to use for missing bounds in integer cuts (default is 10000)
EMPSP
New experimental keywords making use of the extrinsic function library lsadclib
to sample random variables with parametric distributions, any feedback will be appreciated:
sample <rv1> [rv2 ... rvn] <sampleSize> [varRedGroup]
sample
: keywordrv?
: name of random variablesampleSize
: size of samplevarRed
: variance reduction group, mapped to variance reduction method using solver option file- Example:
- %emp.info%:
sample d 5 group1
- %emp.info%:
- lindo.opt
SVR_LS_ANTITHETIC=group1
setSeed <seed>
- Sets the seed for
sample
- Sets the seed for
GloMIQO
- New libraries 2.2
- Fixed bug in detecting when aBB cuts should be generated.
Gurobi
- New libraries 5.5
- New options
- GAMS/Gurobi support Gurobi's Compute Server. See options
ComputeServer
and options starting withCS
- Parameter Tuning Tool: See option
Tuning
and options starting withTune
ConcurrentMIP
: This new feature launches multiple, independent solves on the same MIP model, using different settings for each. The solve returns when the first one finishes. This approach allows you to exploit multiple cores to explore a diverse set of search strategiesNumericFocus
: This new parameter allows you to indicate that a model is likely to experience numerical trouble, which then causes our internal algorithms to favor numerical robustness over speed
- GAMS/Gurobi support Gurobi's Compute Server. See options
Ipopt, IpoptH
- New libraries 3.11
- default for option ma57_automatic_scaling changed to no
- new options print_frequency_iter and print_frequency_time to adjust amount of iteration summary output
- fixed assignment of INFES markers in listing file (infeasibilities between constraint violation tolerance and acceptable constraint tolerance were not marked)
IpoptH
- Added a new linear system solver HSL_MA97
- Updated linear system solver HSL_MA86
- Both MA57 and HSL_MA97 should be considered as alternative to the default MA27 (see Ipopt option linear_solver)
JAMS
- fixed a bug in substituting variables in a nonlinear equation during a convex-hull reformulation
KNITRO
- new libraries 8.1.1
Lindo, LindoGlobal
- New libraries Lindo 8.0
- Multithreading support
- The new GAMS/Lindo/LindoGlobal option
num_threads
defines the number of threads to be used, it is initialized by the GAMS optionthreads
- The new GAMS/Lindo/LindoGlobal option
multithread_mode
defines the threading mode (auto, concurrent or parallel)
- The new GAMS/Lindo/LindoGlobal option
- Stochastic Solver Improvements
- Nested Benders Decomposition implementation has been improved significantly, achieving speed factors up to 6X compared to the previous version
- The Chance-programming solver adds a Genetic Algorithm to find high-quality feasible solutions to large-scale instances. Models in this class can now also be solved using the Simple Benders Decomposition method
- Multithreading with Nested Benders Decomposition (NBD) solver leads to speed improvements from 2.5 to 3.5 when using 4 threads
- MIP Solver Improvements
- The heuristics are improved significantly, simple rounding and feasibility pump now use bound propagation to improve the current path to a new feasible MIP solution
- Multithreading can lead to speed improvements from 1.5 to 3.0 times on difficult problems using 4 threads rather than 1, for easy MIP problems, e.g., < 600 seconds, multi-threading may give not much speedup
- Multistart Solver Improvements
- Multistart solver has been improved significantly, achieving speed factors up to 2X compared to the previous version
- The likelihood of getting the global optimum has improved by 10-15% over a wide range of nonconvex models
- Multithreading often leads to speed improvements from 2.0 to 3.0 times when using 4 threads, speed improvements tend to improve as the model size and the number of multistarts increase
- Changed meaning of
objwgt
in chance constraints (CC): now it gets multiplied by the violation ratio of the CC before it was added to the objective, in previous versons it was multiplied by (1 - the violation ratio) - Further new options
find_block
: graph partitioning method to find block structuresgop_linearz
: flag indicating if GOP exploits linearizable model
Mosek
- Mosek 7.0.0.65
- An additional parallelized mixed integer optimizer has been added. This optimizer is chosen for MIP solves if no Mosek/MIP license is available. See also option MSK_IPAR_OPTIMIZER.
- Recognizes some quadratic constraints as cone constraints, so
=c=
equations can be avoided. - AVX instructions in the latest INTEL CPUs are now exploited.
- Dropped support for Solaris Intel 64bit platform.
- The option writembt is now deprecated. Please consider using the option MSK_SPAR_DATA_FILE_NAME instead.
- The option mipstart is now a synonym for MSK_IPAR_MIO_CONSTRUCT_SOL and thus takes values MSK_ON and MSK_OFF.
- Numeric values for options with symbolic constants (e.g. MSK_IPAR_INTPNT_BASIS) are not supported anymore.
MSNLP, OQNLP
- fixed function evaluation issues in lsgrg when using external equations
OsiMosek
- dropped OsiMosek on Solaris Intel 64bit platform
OSL/OSLSE
- dropped OSL and OSLSE from this and future GAMS distributions
SCIP
- New libraries 3.0 #a4a627b
SULUM
- New libraries 2.0.263 (Beta)
- The new SULUM libraries comes with support for mixed-integer linear programs (MIP). The new MIP optimizer is an advanced implementation of a branch and cut method, with many performance enhancements added. The key features of the MIP optimizer can be highlighted as :
- Advanced MIP presolve to reduce the problem size and provide a better formulation for the optimizer.
- Tight integration with the Sulum LP optimizer to efficiently solve LP's in node and during heuristics.
- Various branching and node selection methods from computational inexpensive to more expensive schemes.
- Cutting plane generation and filtering if deemed necessary.
- Heuristics to either find an initial solution or improve the current incumbent, which includes rounding, diving and sub-mipping heuristics types.
- Improvements to ensure numerical stability.
XPRESS
- New libraries 24.01.04
- Improved concurrent LP solve
- Improved performance when using the parallel barrier solver
- Fix faulty dispatch of SSE3 instructions in QP
- New link option
solnpoolmerge
to write all solutions into a single GDX file
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
- Documentation
- Add tutorial (
GAMS.net4.Tutorial.chm
) to<Path/To/GAMS>/docs/API
. From the GAMSIDE this document can be accessed at Help → Docs → API.
- Add tutorial (
- GAMSDatabase
- New function CheckDomains: Check for all symbols if all records are within the specified domain of the symbol
- New function GetDatabaseDVs: Return all GAMSDatabaseDomainViolations
- New property SuppressAutoDomainChecking: Controls whether domain checking is called in GAMSDatabase export
- New variants of the functions AddEquation, AddParameter, AddSet, AddVariable: Allow to specify domain information
- Function Compact becomes obsolete and will be dropped in future
- GAMSModelinstance
- New function CopyModelInstance: Copies a ModelInstance to a new ModelInstance which gets constructed at this call
- New function Interrupt: Sends interrupt signal to running GAMSModelInstance
- GAMSModifier
- Allow to define SymbolUpdateType for each GAMSModifier separately
- GAMSSymbol (GAMSEquation, GAMSParameter, GAMSSet, GAMSVariable):
- New function CheckDomains: Check if all records are within the specified domain of the symbol
- New function CopyToArray: Copies values of a dense symbol into a dense array
- New function CopyToSqzdArray: Copies values of a sparse symbol into a squeezed array
- New function CopySparseToDenseArray: Copies values of a sparse symbol into a dense array
- New function CopyFromDenseArray: Copies values from dense array into a symbol
- New function CopySliceFromDenseArray: Copies values from slice of dense array into a symbol
- New function GetSymbolDVs: Return all GAMSSymbolDomainViolations
- New function MergeRecord: Finds record in GAMSSymbol if it exists, adds it if not
- New property Domains: Domains of Symbol, each element is either a GAMSSet (real domain) or a string (relaxed domain)
- GAMSWorkspace
- Change the Debug parameter from a Boolean flag to an enum type called DebugLevel
- The Debug parameter can be overwritten by the system environment variable "GAMSOOAPIDEBUG" if set to one of the following: Off, KeepFiles, ShowLog, Verbose
- Improve performance significantly for function AddDatabase(GAMSDatabase)
- New functions: AddJobFromGamsLib, AddJobFromTestLib, AddJobFromEmpLib, AddJobFromDataLib and AddJobFromFinLib
- New properties: Version, MajorRelNumber, MinorRelNumber and GOLDRelNumber
- New optional parameter inModelName for functions AddDatabaseFromGDX/AddDatabase: GAMS string constant that is used to access this database
- Add new sub class of GAMSException: GAMSExceptionExecution. This provides additional info about the reason of the failed execution.
- New examples:
- C#: DomainChecking, Markowitz, SimpleCutstock, Transport13, TSP, MessageReceiverWindow
- C++: Transport Sequence
- VB.NET: Transport Sequence
Java
- Changes in GAMSDatabase:
- deprecates the compact method, as it has no effect anymore.
- Changes in GAMSGlobals:
- the default value of working directory has been changed from System.getProperty("user.dir") to System.getProperty("java.io.tmpdir").
- Changes in GAMSModelInstance:
- deprecates the instantiate(GAMSOptions options), instantiate(GAMSModifier[]), and instantiate(GAMSOptions, GAMSModifier[]) methods and replaced by instantiate(String, GAMSModifier ...) and instantiate(String, GAMSOptions, GAMSModifier ...) methods.
- Changes in GAMSWorkspace and GAMSWorkspaceInfo:
- deprecates boolean debug flag and replaced by a debug level flag (type of a new class GAMSGlobals.DebugLevel).
- allows an override of debug level flag from an environment variable "GAMSOOAPIDEBUG"
- Fixed a bug when iterating through the records of a GAMSSymbol.
- New enumeration class GAMSGlobals.DebugLevel:
- defines values of different GAMS Debug Levels.
- New enumerated value of GAMSModelInstance.SymbolUpdateType:
- GAMSModelInstance.SymbolUpdateType.INHERIT: to specify SymbolUpdateType separately for each GAMSModifier.
- New methods in GAMSDatabase:
- addEquation, addParameter, addSet, and addVariable: to add symbols with domain information.
- checkDomains: to check whether or not all records of all symbols are within the specified domain of the symbols.
- getDatabaseDomainViolations: to retrieve a domain violation information as a list of GAMSDatabaseDomainViolation objects.
- isAutoDomainCheckingSuppressed and suppressAutoDomainChecking: to control whether domain checking will be called when exporting a database.
- Changes in GAMSDatabase:
- the compact method is obsolete and has no effect anymore. It will be removed in the future.
- New class GAMSDatabaseDomainViolation:
- contains domain violation information of all symbols (if any) in the database.
- returns call from a new method GAMSDatabase.getDatabaseDomainViolations.
- New methods in GAMSModelInstance:
- copyModelInstance: to copy a GAMSModelInstance object.
- interrupt: to send an interrupt signal to a running GAMSModelInstance.
- new methods in GAMSModifier:
- constructor: to specify SymbolUpdateType for each GAMSModifier object.
- getUpdateType: to retrieve SymbolUpdateType property of the object.
- New methods in GAMSSymbol:
- checkDomains: to check whether or not all records of the symbol are within the specified domain.
- getDomains: to retrieve a list of domains of the symbol, each element is either a GAMSSet (real domain) or a String (relaxed domain).
- getSymbolDomainViolations: to retrieve a domain violation information as a list of GAMSSymbolDomainViolation objects.
- mergeRecord: to add a new symbol record in case the record does not exist.
- Fixed a bug when iterating through the records of a GAMSSymbol.
- New class GAMSSymbolDomainViolation:
- contains domain violation information of the symbol (if any).
- returns call from a new method GAMSSymbol.getSymbolDomainViolations.
- New methods in GAMSWorkspace:
- getGAMSVersion: to retrieve information about GAMS Version.
- getGoldReleaseNumber: to retrieve GAMS GOLD Release Number.
- getMajorReleaseNumber: to retrieve GAMS Major Release Number.
- getMinorReleaseNumber: to retrieve GAMS Minor Release Number.
- Changes of location of examples:
- from <Path/To/GAMS>/apifiles/Java/Benders*.java to <Path/To/GAMS>/apifiles/Java/benders/Benders*.java
- from <Path/To/GAMS>/apifiles/Java/Custock.java to <Path/To/GAMS>/apifiles/Java/cutstock/Cutstock.java
- from <Path/To/GAMS>/apifiles/Java/ConsoleInterrupt.java to <Path/To/GAMS>/apifiles/Java/interrupt/ConsoleInterrupt.java
- from <Path/To/GAMS>/apifiles/Java/Transport*.java to <Path/To/GAMS>/apifiles/Java/transport/Transport*.java
- from <Path/To/GAMS>/apifiles/Java/Warehouse.java to <Path/To/GAMS>/apifiles/Java/warehouse/Warehouse.java
- New examples:
- <Path/To/GAMS>/apifiles/Java/cutstock/SimpleCutstock.java
- <Path/To/GAMS>/apifiles/Java/domain/DomainCheck.java
- <Path/To/GAMS>/apifiles/Java/transport/Transport13.java
- <Path/To/GAMS>/apifiles/Java/tsp/Tsp.java
Python
- New examples: markowitz.py, tsp.py, transport13.py, simple_cutstock.py, domain_checking.py
- New facility for GamsSymbols with domain information:
- GamsDatabase:
- New functions add_parameter_dc, add_variable_dc, add_equation_dc and add_set_dc: Create GamsSymbols with domain information
- New function check_domains: Check for all symbols if all records are within the specified domain of the symbol
- New function get_database_dvs: Return all GamsDatabaseDomainViolations
- New property suppress_auto_domain_checking: Controls whether domain checking is called in GamsDatabase export
- _GamsSymbol and its derived classes:
- New function check_domains: Check if all records are within the specified domain of the symbol
- New function get_symbol_dvs: Return all GamsDatabaseDomainViolations
- New property domains: Domains of Symbol, each element is either a GamsSet (real domain) or a string (relaxed domain)
- New classes GamsDatabaseDomainViolation and GamsSymbolDomainViolation that are returned by GamsDatabase.get_database_dvs and _GamsSymbol.get_symbol_dvs
- GamsDatabase:
- New functions in GamsModelInstance:
- copy_modelinstance: Copies a GamsModelInstance to a new GamsModelInstance which gets constructed at this call
- interrupt: Sends interrupt signal to running GamsModelInstance
- New function in _GamsSymbol and its derived classes: merge_record finds a record if it exists and adds it if not
- New functions in GamsWorkspace: add_job_from_gamslib, add_job_from_testlib, add_job_from_emplib, add_job_from_datalib and add_job_from_finlib
- New properties in GamsWorkspace: version, major_rel_number, minor_rel_number, gold_rel_number
- New optional parameter in_model_name for functions add_database_from_gdx/add_database in GamsWorkspace: GAMS string constant that is used to access this database
- Changed the debug argument passed to the GamsWorkspace constructor. Use members of class DebugLevel: Off, KeepFiles, ShowLog and Verbose instead of True and False
- New sub class of GamsException: GamsExceptionExecution, which provides additional info about the reason of the failed execution
- Allow to define SymbolUpdateType for each GamsModifier seperately
- Significant performance improvement for function GamsWorkspace.add_database when creating from an already existing database
- Changed the unicode settings on Linux from UCS2 to UCS4
- The Debug parameter of GamsWorkspace can be overwritten by the system environment variable "GAMSOOAPIDEBUG" if set to one of the following: Off, KeepFiles, ShowLog, Verbose
- The compact method of GamsDatabase is obsolete and has no effect anymore. It will be removed in the future
- Fixed a bug in GamsModelInstance.solve()
- Fixed a bug in GamsDatabase, where the special value for undefined was set to 0 instead of 1.0E300 (SV_UNDEF)
- Fixed a bug when iterating through the records of a GamsSymbol
GDXXRW
- Some format of range names are now recognized
- More details in error message for a bad range
GDXDUMP
- Option to replace header
- Option EpsOut
- Performance improvement when writing a large CSV file
CSV2GDX
- New utility to convert a CSV file to a GDX file
- A simple example is in the GAMS data library
MessageReceiverWindow
- New Windows tool that receives messages from GAMS. The GAMS Test Library model mrw01 demonstrates its usage.
Model Libraries
GAMS Data Library
- SpawnGAMSExcel (84): Spawn an arbitrary model from Excel
- csv2gdx1 (85): testing CSV file conversions
GAMS Model Library
- cpack (387): Packing identical size circles in the unit circle
- trigx (388): Another Trigonometric Example
- stablem (389): Stable Marriage Problem
- srtree (390): Simple Scenario Tree Construction Example
- tgridmix (391): Grid Transportation Problem with Single Submit and Collect Loop
- prisoner (392): Prisoners dilemma as EMP and MCP
- cesam2 (393): Cross Entropy SAM Estimation
- solmpool (394): Cplex Solution Pool for a Simple Facility Location Problem with Merged GDX Solution File
GAMS Test Library
- nlcode7 (586): Test for NL code bug from Dist 24.0.1
- n3707 (587): MIP model used by CTRLC test
- mod011 (588): MIP model used by CTRLC test
- fuzzy (589): MINLP model used by CTRLC test
- nuclear49b (590): MINLP model used by CTRLC test
- enpro56 (591): MINLP model used by CTRLC test
- popdynmMCP25 (592): MCP model used by CTRLC test
- popdynmMCP250 (593): MCP model used by CTRLC test
- popdynmMCP1000 (594): MCP model used by CTRLC test
- gft (595): MPSGE model used by CTRLC test
- pf4mip (596): Test unbounded integer variables (MIP)
- pf4minlp (597): Test unbounded integer variables (MINLP)
- emp12 (598): Test of EMP equilibrium models and fixed vars
- emp13 (599): Test of EMP equilibrium models and fixed vars
- emp14 (600): Test of EMP equilibrium model with vi func
- emp15 (601): Test of EMP equilibrium model with vi func
- emp16 (602): Test of NLP -> MCP via JAMS
- miqcp03 (603): Test modsolstat & solution correctness - multiple QCons & binaries
- mcp10 (604): MCP model with negative equ.var
- convert8 (605): Test that eps in nonlinear code is kept by convert
- gurobi01 (606): GUROBI test suite - tuning test
- lp15 (607): LP with many zeros at solution
- convert9 (608): CONVERT test suite - handling of fixed vars for nlp2mcp
- lsalib01 (609): Test extrinsic functions in lsadclib
- mrw01 (610): Test MessageReceiverWindow.exe
- rs01 (611): Solving a Transportation Problem using Cplex and Gurobi remote server
- xpress06 (612): Solution enumerator example with solnPoolMerge
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 | |||||||||
ANTIGONE 1.0 | |||||||||
BARON 12.3 | |||||||||
BDMLP | |||||||||
COIN-OR | |||||||||
CONOPT 3 | |||||||||
CPLEX 12.5 | |||||||||
DECIS | 32bit | ||||||||
DICOPT | |||||||||
GLOMIQO 2.2 | |||||||||
GUROBI 5.5 | 5.0 | ||||||||
KNITRO 8.1 | |||||||||
LINDO 8.0 | |||||||||
LINDOGLOBAL 8.0 | 6.0 | 6.0 | |||||||
LGO | |||||||||
MILES | |||||||||
MINOS | |||||||||
MOSEK 7 | |||||||||
MPSGE | |||||||||
MSNLP | 32bit | ||||||||
NLPEC | |||||||||
OQNLP | 32bit | 32bit | |||||||
PATH | |||||||||
SBB | |||||||||
SCIP 3.0 | |||||||||
SNOPT | |||||||||
SOPLEX 1.7 | |||||||||
SULUM 2.0 | |||||||||
XA | |||||||||
XPRESS 24.01 |
24.1.2 Maintenance release (June 16, 2013)
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
- Fixed a problem when restarting from restart files from 24.0 and previous if extrinsic functions were present
Solvers
BARON
- New libs 12.3.3
- SNOPT 7.2-12.1 with fixes
- New defaults for options
PreLPDo
(0) andPDo
(-2) which lets BARON decide about probing
- Fixed an issue with reporting the correct solve time back to GAMS
Cplex/CplexD
- new libs 12.5.1
- new parameters
LiftProjCuts
andCalcQCPDuals
- Fixed a problem in CplexD where models with all discrete variables relaxed (prior=inf) were still solved as discrete problems
MOSEK
- New libraries 7.0.0.70
SULUM
- New libraries 2.0.284 (Beta)
Tools & APIs
GDXXRW
- Fixed a bug where a range like B5:B5 became a single anchor point
24.1.3 Maintenance release (July 26, 2013)
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, Sebastian Dilly, Sascha Herrmann, Aida Khajavirad, and Johan Villaume.
GAMS System
Installer
- The GAMS installer for Windows now asks if an existing GAMSDIR environment variable from a previous installation should be updated.
GAMS
- Fix crash with huge dictionary files
GAMS IDE
- Fixed formatting of Ipopt, Bonmin, and Couenne options files when written by options editor.
- Using Help | About now uses the project directory for temporary files avoiding issues with a write protected system directory.
Solvers
ANTIGONE and GloMIQO
- New libraries ANTIGONE 1.1 and GloMIQO 2.3
- eliminate constraint on the number of variables (ANTIGONE/GloMIQO was previously limited to 45,000 variables)
- improve nonlinear term bound inferences
- improve automatic scaling of problems with many disparate scales
- track numerically sensitive variables for possible instability associated with optimality-based bounds tightening
COIN-OR / SCIP / SoPlex
- fixed an issue loading coincclib64.dll on some Windows 64bit machines
CONOPT
- New Libraries 3.15L
IPOPTH
- New HSL libraries MA57 3.8, HSL_MC68 3.3, HSL_MA86 1.5, HSL_MA97 2.2
- Changed default of option ma27_meminc_factor from 10 to 2
MOSEK
- New library 7.0.0.75
SCIP
- New library 3.0 #0b46aef
SULUM
- New library 2.0.314
Tools & APIs
Object Oriented APIs
Java
Improve data iterator:
- New classes:
GAMSDatabaseIterator
implementsjava.util.Iterator
GAMSSymbolIterator
implementsjava.util.Iterator
- Deprecated class:
GAMSSymbolIterable
- Changes in
GAMSDatabase
:GAMSDatabase
implementsGAMSDatabaseIterator
instead ofGAMSSymbolIterable
- deprecated the implemented methods of
GAMSSymbolIterable
:next()
,hasnext()
, andremove()
- Changes in
GAMSSymbol
:GAMSSymbol
implementsGAMSSymbolIterator
instead ofGAMSSymbolIterable
- deprecated the implemented methods of
GAMSSymbolIterable
:next()
,hasnext()
, andremove()
- new methods in
GAMSSymbolRecord
:moveNext()
: to iterate to the next record using the current data iterator criterionmovePrevious()
: to iterate to the previous record using the current data iterator criterion
Updated example:
<Path/To/GAMS>/apifiles/Java/transport/Transport12.java
GDXXRW
- Better error reporting for certain range errors
- Issue a warning when writing to an XLSX file by default when there is a file with the same name that has the extension .XLS