Major releases contain substantial changes to the GAMS system. The License Check date is set to the release date of the major release.
Minor releases are mainly issued to provide bug fixes, performance improvements, and maintenance releases of solver libraries. Additionally, they can provide a few new features that do not change existing behavior. The License Check Date remains the same as for the prior major release. This means that any license file that worked with the prior major release will also work with this minor release.
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 the prior major release will also work with this maintenance release.
GAMS Distribution 24.0
|24.0.2||(Maintenance release)||February 14, 2013|
|24.0.1||(Major release)||December 24, 2012|
GAMS Maintenance Release 24.0.2 - February 14, 2013
Table of Contents
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.
- removed dependency on GLIBC 2.7 in Linux systems
- 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
- added new function GAMSSymbol.CopySymbol
- added new examples in Visual C++ and VB.NET
- added new function GAMSSymbol.copySymbol
- 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
- fixed a casing problems with the function gdxSymbolGet/SetDomainX for client languages C++, C#, Fortran, Java, Python, VBA, VB.NET
- increased API version number to 11 (was forgotten in 24.0.1)
- 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
- changed the interface for the Text Differ to look like the GDXDiff interface
- moved menu for Text Diff under Utilities menu
- gdxxrw works now with Excel Binary Workbook files (file extension .xlsb)
- new library 11.9.1
- fixed handling of workspace and workfactor options
- fixed too small value in 'seconds' column in solvetrace file
- improved resolution of solvetrace file for Cbc and SCIP
- 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
- fixed bug in reporting of dual bound when optca tolerance is larger in magnitude than optcr
- 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
- write clearer text error message to log and listing file
- fixed memory issues when both workspace and workfactor are set and when estimates are too high
- fixed problems with LSGRG on instances with more than 10000 variables or more than 10000 equations
- 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
- fixed reporting of resused and iterused attributes for infeasible and unsolved models
- 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
- fixed check of complementarity slackness for discrete variables in MIQCPs
- added a consistency check on model attributes (currently only objval)
- 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 - December 24, 2012
Table of Contents
We would like to thank all of our users who have reported problems and made suggestions for improving this release.
- Dropped Mac OS X 32bit build
- Mac OS X 64bit build now on Lion (10.7)
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.
GAMSJob: Sends interrupt signal to running GAMSJob
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).
- A Java program that uses object-oriented Java API requires at least Java SE 5 to compile and run.
- All classes are distributed within one single jar file
GAMSJavaAPI.jarwith a namespace
com.gams.api, located under the
- Java program examples are distributed with a namespace
com.gams.examples, located under the
- Installation and detailed documents can be found in
- Javadoc for
GAMSJavaAPI.jarcan be found under the
- In the API to the option object the signature of the function
optGetStrStrhas changed from:
value = optGetStrStr(optHandle, "GDX", dummyString)to
value = optGetStrStr(optHandle, "GDX")
- The compiled Python libraries are built with Python 2.7 now.
- This release contains a beta version of the object-oriented Python API that can be used to control GAMS from within Python 2.7. It allows the seamless integration of GAMS into Python 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 an efficient way. To use this API one has to perform one of the following steps:
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.
- added separate GAMS installation notes for Mac OS X
Added a list of examples to the GAMS Test Library.
- If Solvelink is set to a non-default value. The GAMS log prints out the solvelink selection:
--- Executing SOLVER (Solvelink=i): elapsed 0:00:00.000
- New date in audit line. Each GAMS component writes an audit line to the GAMS log, e.g. GAMS/Cplex write
IBM ILOG CPLEX Jul 14, 2011 23.7.3 WIN 27723.27726 VS8 x86/MS Windows. The date in this line used to be the license check date, which does not change with maintenance releases (23.9.X). Starting with 24.0.1 the date displayed in the audit line is the build date of the system and changes with every release including maintenance releases.
- When GAMS is run from the command line on Windows systems and a solver is interrupted, the OS issued a message
Terminate batch job (Y/N)?and the user had to interact. Now the message is still printed, but GAMS does not wait for a user action anymore. This has a rare side effect that solver keyboard interactions (e.g. in GAMS/Cplex with option
Interactiveand GAMS/SCIP with option
GAMS/Interactive) will not work unless the new GAMS option
InteractiveSolveris set to 1.
- For compile time commands like
$had to be in column 1. Leading blanks are now allowed for such commands, but require an additonal
$$can only be used for the first dollar command in a line. For example,
$set a 'aa' $$set b 'bb' does not work.
- GAMS has added UserName and ComputerName to the recorded fields of the GAMS Trace facility. Besides many uses in quality assurance testing, the trace facility e.g. can be used to audit the GAMS activities in a multi user environment with a shared GAMS installation. For details please check our support wiki
- Report equations with general non-linearity in lst file for QCP models
WinMsgallows to send a Windows message to a window:
put_utility fx 'WinMsg' / 'WindowTitle' / 'Message';
- Asynchronous calls on Windows can be started with a new console rather than sharing the console of the parent process.
Shell.AsyncNChave been added.
NCcalls behave identical on non-Windows platforms.
- The IDE has now an integrated Text differ to compare two text files; see File | Diff Textfiles
- 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
- New libs 11.8.0
- BARON uses an improved link to Clp
- BARON uses latest SNOPT 7.2-12
- BARON uses latest IPOPT 3.10.3
- Memory requirements have been significantly reduced
- Faster reaction to user interrupt during solve of initial NLP relaxation.
- Changed default setting for parameters variable_selection and milp_strategy to strong-branching and solve_to_optimality, respectively.
- Renamed miptrace options to solvetrace.
- New library 2.8
- A new primal heuristic "Proximity Search" (proposed by Fischetti and Monaci, 2012) has been added. The idea is to define a sub-MIP without additional constraints but with a modified objective function intended to attract the search in the proximity of the incumbent. The heuristic is off by default and can be enabled by setting
proximitysearch 1in a GAMS/Cbc options file.
- Parallel branch-and-bound search (multithreading) is now also possible under Windows by using POSIX threads for Win32.
- New option dumpsolutions to output alternative solutions to gdx files.
- The miptrace options have been renamed to solvetrace and activating them does not affect the solving process anymore.
- Added option
localsolverto convert GAMS models into LocalSolver language. This is still an experimental feature, i.e., it may not always be possible to process the created .lsp files with LocalSolver. A major limitation is the restriction to binary and bounded integer variables in LocalSolver. To allow for continuous variables that can be defined via other variables, ConvertD can read information about defined variables from a ConvertD options file. In such an option file, a line
defvar x1 e1denotes that the continuous variable x1 is defined via equation e1. Equation e1 then needs to be an equality constraint which contains x1 in a linear expression. Analogously, a statement
defvar y(n,i,j) e(n,i,j)indicates that variable y(n,i,j) is defined via equation e(n,i,j) for all (n,i,j).
- Couenne is now linked against the nauty library, which enables symmetry recognition for MINLPs and their utilization for orbital branching.
- The miptrace options have been renamed to solvetrace.
- New library 12.5
- The number of threads for CPLEX to use can now be set to any positive integer number, even if this number exceeds the number of cores on the machine. The default behavior of GAMS/CPLEX with respect to the number of threads and cores remains unchanged. That is, by default, GAMS/CPLEX continues to run with a single thread. Setting
THREADSto 0, result in setting the threads to the number of cores.
- New parameters:
ProbeDetTime: Limits the amount of time (expressed in deterministic ticks) spent probing
PolishAfterDetTime: Sets the amount of time expressed in deterministic ticks to spend during a normal mixed integer optimization after which CPLEX starts to polish a feasible solution
TuningDetTiLim: Sets a time limit in deterministic ticks per model and per test set (that is, suite of models) applicable in tuning
RandomSeed: Sets the random seed differently for diversity of solutions.
- GAMS/Cplex prints the time spend in Cplex optimization calls. The time is printed in elapsed seconds and elapsed deterministic time in ticks.
- GAMS/CplexD returns proper duals for QCP models
- new library 3.15H
- new library GloMIQO 2.1:
- improved reformulation strategies
- better recognition of special mathematical structure allowing for dominant polyhedral cuts
- additional strategies for deterministically inferring missing variable bounds
- new option cplex_optfile specifies a GAMS/CPLEX options file that will be applied to every LP and MILP subsolve
- new option dumpsolutions to output alternative solutions to gdx files
- New library 5.0.2
- IPOPT is now available in two variations. The Open Source IPOPT is part of the Base Module. IPOPTH uses higher performance (but not Open Source) linear algebra routines (HSL) and is separately priced.
- Analogously, BONMIN is part of the Base Module and uses IPOPT. BONMINH requires a license for IPOPTH.
- For Couenne and SCIP, IPOPTH is used to solve NLP subproblems if a corresponding license is available, otherwise IPOPT is used.
- Fixed a bug when reformulating disjunctions with terms that are indicated by a negated variable (disjunction not y1 e1 else ...).
- Maintenance updates, primarily for memory allocation issues.
- New libs Mosek 6 Rev 148.
- New library 2.6
- OsiXpress is now also available on Mac OS X.
- New library 3.0.1
- New presolvers have been added, among them one that recognizes and utilizes block structures in an instance.
- New primal heuristics NLP diving (for MINLPs) and Zero-Objective ("Hail Mary") have been added.
- New propagators for optimization-based bound tightening for MINLPs have been added.
- The variable bounds propagator has been extended to cliques and implications.
- Memory limits are now better handled, especially for larger problems.
- The probing algorithm has been revised and should give better performance.
- The performance for pseudo-boolean optimization problems has been improved.
- The GAMS workspace option can now be used to set the SCIP memory limit ('limits/memory' in optionfile).
gams/miptraceoptions have been renamed to
gams/printstatisticsoption has been renamed to
gams/interactiveoption is now a string option that takes commands for the SCIP shell as arguments. If the commands do not end with a 'quit' command, the SCIP shell still open for user interaction. Note, that in order to be able to input commands interactively on Windows, you have to set the GAMS option interactivesolver to 1 (see above).
- The LP solver in SCIP can now be changed by the
lp/solveroption. Supported values are "cplex", "soplex", and "clp". The default LP solver is now CPLEX, if a CPLEX license is available, and SoPlex otherwise.
- New library 7.2-12 (maintenance release)
- Completely revamped linking code
- The GAMS/SNOPT link is now thread-safe, allowing it to be used in multi-threaded applications built with the high-level GAMS APIs mentioned above.
- Updated memory allocation scheme to increase the amount of memory that can be allocated and used for problem solution, and to improve reporting when limits are reached.
- Miscellaneous bug fixes and usability improvements.
- New library 1.7.1
- Performance improvements in pricing algorithms
- Many bugfixes and improvements in numerical stability and infeasibility detection
- Complete release notes here.
- GAMS 24.0 introduces the new LP/MIP Solver Sulum from Sulum Optimization ApS.
- While Sulum currently does not compete with the high-end LP/MIP solvers, Sulum offers a good cost-benefit ratio for LP and MIP solution technology.
- GAMS 24.0.1 features Sulum LP only, but as soon as Sulum Optimization releases their library including the MIP optimizer, a maintenance release will feature the full LP/MIP capabilities of Sulum.
- New library Xpress Optimizer 23.01.06 (maintenance release).
powerset (381): PowerSetLeft and PowerSetRight examples
linearne (382): Linearization techniques for extremal-Nash equilibria
saras (383): South African Regionalized Farm-level Resource Use & Output Supply Response (SARAS) model
epscmmip (384): Improved version of eps-Constraint Method for Multiobjective Optimization
bidpwl (385): Bid Evaluation with Piecewise Linear Functions
trnspwlx (386): A Transportation Problem with Piecewise Linear Functions
testexeq (562): Test external equations
ex1 (563): External Function - Example 1
ex1x (564): External Function - Example 1x
ex2 (565): External Function - Example 2
ex3 (566): External Function - Example 3
ex4 (567): External Function - Example 4
ex4x (568): External Function - Example 4x
ex5 (569): External Function - Example 5
er1 (570): External Function - Error Example 1
er2 (571): External Function - Error Example 2
er3 (572): External Function - Error Example 3
exmcp1 (573): External Function - Example MCP 1
exmcp2 (574): External Function - Example MCP 2
exmcp3 (575): External Function - Example MCP 3
exmcp4 (576): Hansen/Koopmans: External Function - Example MCP 4
exmcp5 (577): Intermixed External Rows: External Function - Example MCP 5
complink (578): Compile and link external equation libraries
lindgl02 (579): Check that Lindo(Global) works with SOS variables
qcp10 (580): Test for QCP correctness
empdisj6 (581): Test disjunctions with negated equality equations
gdx9 (582): Test unloading and loading a GDX file with variable attributes
empdisj7 (583): Test disjunctions with negated variables
traceuc (584): Test if we can get the user and computer name in a trace file
asynntrp (585): Start GAMS job asynchronously and send interrupt signal to it
- fixed visualization output to work with recent versions of gnuplot
|Solver/Platform availability - 24.0 December 24, 2012|