|
GAMS does not directly solve problems rather other programs are used to solve the problem. However, GAMS does generate the problem in a form that is ready for the solver. In doing this several things happen:
| • | GAMS checks that the model is in fact the type the user thinks it is, and issues explanatory error messages if it discovers a model beyond the solution capabilities of the solver to be used. For example the presence of nonlinear terms in a supposedly LP model. |
| • | A solver is chosen which is either the |
| — | Default solver for that problem type |
| — | Solver chosen by an option statement. |
| • | Optimization models are checked to see that the objective variable is a scalar (not defined over any sets) and of the variable type free, and appear in at least one of the equations in the model. |
| • | MCP models are checked for appropriate complementarity and squareness. |
| • | All equations in the model are checked to insure they have been defined. |
| • | All sets and parameters used in the equations are checked to insure they have had values assigned. |
| • | The model is translated into the representation required by the solver to be used. |
| • | LIMROW and LIMCOL output is produced and written to the output file (Equation Listing, etc) as shown in the Standard Output chapter. |
| • | GAMS verifies that there are no errors such as inconsistent bounds, inconsistent equations or unacceptable values (for example Na or Undf) in the problem. Any errors detected at this stage cause termination with an execution error reported as discussed in the execution errors chapter. |
| • | GAMS passes control to the solution subsystem and waits while the problem is solved. |
| • | GAMS collects back information on the solution process from the solver and loads solution values back into the memory. This causes new values to be assigned to the .l and .m variable and equation attributes for all individual equations and variables in the model plus the post solution model attributes. The procedure for loading back in the .l and .m data is controlled by the solveopt model attribute and option. |
| • | A row by row and column by column listing of the solution is provided unless suppressed by the solprint model attribute or option. |
|