Transferring models to other systems

Top  Previous  Next

Users may wish to switch a model out of GAMS for solution elsewhere.  This may be done using the solver called CONVERT as described in the document convert.pdf or via the NEOS procedures.

CONVERT transforms a GAMS model instance into a format used by other modeling and solutions systems. CONVERT is designed to achieve three aims:

Permit users of GAMS to convert a confidential model into a GAMS solvable scalar form with very little identifying its structure so it can be given to a group for numerical investigation (i.e. to have someone else help with a solution problem while maintaining confidentiality).
Give a path to solving with other solvers that may not be available in GAMS to test performance.
Give a way of sharing test problems.

Currently, CONVERT can translate GAMS models into the following formats:

AMPL
BARON
CPLEXLP
CPLEXMPS
GAMS
LGO
LINGO
MINOPT

Models of the types LP, MIP, RMIP, NLP, MCP, MPEC, CNS, DNLP, RMINLP and MINLP can be converted.

The translator creates a "scalar model" which consists of

A model without sets or indexed parameters in the scalar models, that is the modeled is transformed so it does not exploit the more advanced characteristics of any modeling system and is easily transformable.
A model with a new set of individual variables depicting each variable in the GAMS model ending up with potentially 3 variable classes for the positive, integer, and binary variables each numbered sequentially (i.e. all positive GAMS variables are mapped into n single variables X1 - Xn thus if we have transport(i,j) and manufacture(k) we would have a set of unindexed scalar variables X1, X2, ... with i*j+k cases.).
A model with individual equations depicting each variable in the GAMS model (ie all GAMS equations are mapped into m constraints E1, E2, ... Em thus if we have demand(j) and resources(r,k) we would have a new equations E1, E2,... with j+r*k cases).
The symbolic form of these equations.
Bounds and starting point values.
A solve statement for the defined model.
I should note that in this scalar conversion CONVERT removes most of the logic behind the structure of the problem making the model very difficult to understand, interpret and debug.