Distribution 21.5 includes newly available solver libraries and minor enhancements in the GAMS system, as well as introduces the interior-point NLP solver KNITRO from Ziena Optimization.
Acknowledgements
We would like to thank all of the users who have reported bugs or made suggestions in improving this release, especially Richard Roberts for catching an IDE bug.Solvers
- CONOPT
- New libraries (14e) are included which address minor fixes.
- CPLEX
- New libraries (9.0.2) are included which address minor fixes.
- KNITRO
- New interior-point nonlinear programming solver added to the GAMS NLP solver portfolio.
- MOSEK
- New libraries (3.1) are included which address minor fixes.
- XA
- New libraries are included which address minor fixes.
- XPRESS
- New libraries are included which address minor fixes.
GAMS System
- Model Library
- A model showing a successive recalibration algorithm for solving general equilibrium models has been added (decomphh.gms).
- A model illustrating numerical integration using trapezoidal approximations for Herves (transposable element) activity calculations is included (herves.gms).
- Testlib
- 27 new quality check models have been added. See the Testlib page for details.
- New functions:
- sinh, cosh, tanh
- $ Dollar control options:
- $on/offVerbatim
- The $on/offVerbatim commands are used in
conjunction with the GAMS parameter DUMPOPT to suppress the input
preprocessing for input lines that are copied to the dmp file. This
feature is mainly used to maintain different versions of related models
in a central environment.
The $on/offVerbatim commands are only recognized for DUMPOPT >= 10 and apply only to lines in the file the commands appeared.
The use of $goto and $on/offVerbatim are incompatible and may produce unexpected results.
- The $on/offVerbatim commands are used in
conjunction with the GAMS parameter DUMPOPT to suppress the input
preprocessing for input lines that are copied to the dmp file. This
feature is mainly used to maintain different versions of related models
in a central environment.
- $on/offPut
- This option simplifies the writing of put
statements that copy text. Previously, to copy text into a put file one
may have to write many lines similar to the ones below:
put 'text A with a double quote "' "text A with a single quote '" /
put 'text B with a double quote "' "text B with a single quote '" /
put 'text C with a double quote "' "text C with a single quote '" /
This may be cumbersome. The use of $on/offPut will result in the same text written to the put file without having to specify the 'put' explicitly for each line and allows you to specify mixed quotes in a single statement. Consider the following example:
file fx;
put fx 'text with " and ' "' required a split of the text" /
$onput
With the new on/off put we can freely
mix and match ' and " characters.
$offput
;
It also works outside of the put statement:
$onput
It even works outisde the put statement,
as long as a put file is assigned.
$offput
- This option simplifies the writing of put
statements that copy text. Previously, to copy text into a put file one
may have to write many lines similar to the ones below:
- $setDDlist
- This statement catches misspelled 'double dash'
GAMS parameters. For example, in the program below (ein.gms), the only
'double dash' options are 'one', 'two', 'three' and 'four' (note the
use of the string macro for %two% automatically makes it part of the
allowed list of double dash parameters):
$if NOT set one $set one default value
display '%two%';
$setddlist three four
The following GAMS invocation will cause an error since --five is not a valid 'double dash' option.
> gams ein.gms --two=twovalue --five=20
1 Display 'twovalue'
**** --five=20
3 $setddlist three four $620
- This statement catches misspelled 'double dash'
GAMS parameters. For example, in the program below (ein.gms), the only
'double dash' options are 'one', 'two', 'three' and 'four' (note the
use of the string macro for %two% automatically makes it part of the
allowed list of double dash parameters):
- $on/offVerbatim
- Other new features:
- alias(*,u1,u2,..)
- The universe is assumed to be ordered and ordered operators like lag, leads and ORD can be applied.
- Faster execution of GAMS statements using set(s) containing a single element.
- SortedUels(*,*)
- A new predefined tuple to report sets in sorted
order. For example, to write in sorted order:
>
alias(*,u);
loop(SortedUels(u,i),
put / i.tl i.te(i) );
- A new predefined tuple to report sets in sorted
order. For example, to write in sorted order:
- alias(*,u1,u2,..)