The NEOS Server offers EMP (Extended Mathematical Programming), an (experimental) framework for automated mathematical programming reformulations through the solver JAMS. Models that cannot be solved reliably are reformulated into models of established mathematical programming classes in order to use advanced solver technology.
EMP supports the modeling of Bilevel Programs, Variational Inequalities, Disjunctive Programs, Extended Nonlinear Programs and Embedded Complementarity Systems. The reformulation is done by the solver JAMS, which is currently the only solver that is capable of handling EMP models.
The GAMS EMP Library, which is included in the GAMS Distribution, includes examples demonstrating how to use the EMP framework and the solver JAMS. JAMS is included free of charge with any licensed GAMS system but needs a subsolver to solve the generated models. Additional information on EMP can be found on wikipedia.
EMP has been developed jointly by Michael Ferris of UW-Madison, Ignacio Grossmann of Carnegie Mellon University, and GAMS Development Corporation.
The user must submit a model in GAMS format to solve an optimization problem. For security purposes, the model submitted must adhere to the following conventions:
If you are unfamiliar with GAMS, the GAMS Documentation includes a GAMS Tutorial and User's Guide. Examples of models in GAMS format can be found in the GAMS model library.
By default, the NEOS Server limits the amount of output generated in the listing file by turning off the symbol and unique element list, symbol cross references, and restricting the rows and columns listed to zero. This behavior can be changed by specifying the appropriate options in the model file. See the documentation on GAMS output for further information.
You may optionally submit an options file if you wish to override the default parameter settings for the solver. Currently, the NEOS Server can only use optfile=1 with GAMS input. Therefore, any model that specifies a different options file will not work as intended.
<modelname>.optfile = 1 ;
optfile = 1