16.01.2015 Views

GAMS — The Solver Manuals - Available Software

GAMS — The Solver Manuals - Available Software

GAMS — The Solver Manuals - Available Software

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

SNOPT 529<br />

3.2 Advanced basis<br />

<strong>GAMS</strong> automatically passes on level values and basis information from one solve to the next. Thus, when we have<br />

two solve statements in a row, with just a few changes in between SNOPT will typically need very few iterations<br />

to find an optimal solution in the second solve. For instance, when we add a second solve to the fawley.gms<br />

model from the model library:<br />

Model exxon /all/;<br />

...<br />

Solve exxon maximizing profit using lp;<br />

Solve exxon maximizing profit using lp;<br />

we observe the following iteration counts:<br />

S O L V E<br />

S U M M A R Y<br />

MODEL exxon OBJECTIVE profit<br />

TYPE LP DIRECTION MAXIMIZE<br />

SOLVER SNOPT FROM LINE 278<br />

**** SOLVER STATUS 1 NORMAL COMPLETION<br />

**** MODEL STATUS 1 OPTIMAL<br />

**** OBJECTIVE VALUE 2899.2528<br />

RESOURCE USAGE, LIMIT 0.016 1000.000<br />

ITERATION COUNT, LIMIT 24 10000<br />

.....<br />

S O L V E<br />

S U M M A R Y<br />

MODEL exxon OBJECTIVE profit<br />

TYPE LP DIRECTION MAXIMIZE<br />

SOLVER SNOPT FROM LINE 279<br />

**** SOLVER STATUS 1 NORMAL COMPLETION<br />

**** MODEL STATUS 1 OPTIMAL<br />

**** OBJECTIVE VALUE 2899.2528<br />

RESOURCE USAGE, LIMIT 0.000 1000.000<br />

ITERATION COUNT, LIMIT 0 10000<br />

<strong>The</strong> first solve takes 24 iterations, while the second solve needs exactly zero iterations.<br />

Basis information is passed on using the marginals of the variables and equations. In general the rule is:<br />

X.M = 0<br />

X.M ≠ 0<br />

basic<br />

nonbasic if level value is at bound, superbasic otherwise<br />

A marginal value of EPS means that the numerical value of the marginal is zero, but that the status is nonbasic<br />

or superbasic. <strong>The</strong> user can specify a basis by assigning zero or nonzero values to the .M values. It is further<br />

noted that if too many .M values are zero, the basis is rejected. This happens for instance when two subsequent<br />

models are too different. This decision is made based on the value of the bratio option (see §4.1).

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!