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.

CONOPT 149<br />

will usually be combined with model status 5 - Locally Infeasible. In the cases where CONOPT can guarantie<br />

that the infeasibility is not caused by nonlinearities the model status will be 4 - Infeasible. If the constraints<br />

are linearly dependent but the current point satisfy the constraints then the solution status will be 17 - Solved<br />

Singular, indicating that the point is feasible, but there is probably a whole ray of feasible solution through the<br />

current point.<br />

A model with these two constraints and the bound<br />

e1 .. x1 + x2 =e= 2;<br />

e2 .. x1 - x2 =e= 0;<br />

x1.lo = 1.5;<br />

will result in the message<br />

** Error in Square System: A variable tries to exceed its bound.<br />

x1: <strong>The</strong> variable tries to exceed its bound.<br />

because the solution, (x1,x2) = (1,1) violates the bound on x1. This error case also be combined with model<br />

status 5-Locally Infeasible. In the cases where CONOPT2 can guarantie that the infeasibility is not caused by<br />

nonlinearities the model status will be 4 - Infeasible. If you encounter problems with active bounds but you think<br />

it is caused by nonlinearities and that there is a solution, then you may try to use the bending linesearch with<br />

option ”lmmxsf = t”.<br />

<strong>The</strong> CNS facility can be used to generate an initial feasible solution in almost the same way as the triangular<br />

model facility: Fix a subset of the variables so the remaining model is uniquely solvable, solve this model with the<br />

CNS solver or with lssqrs = t, reset the bounds on the fixed variables, and solve the original model. <strong>The</strong> CNS<br />

facility can be used on a larger class of models that include simultaneous sets of equations. However, the square<br />

system must be non-singular and feasible; CONOPT cannot, like in the triangular case, add artificial variables<br />

to some of the constraints and solve the remaining system when a variable reaches one of its bounds.<br />

Additional information on CNS can be found at the <strong>GAMS</strong> web site:<br />

http://www.gams.com/docs/document.htm<br />

A13.3 Loss of Feasibility<br />

During the optimization you may sometimes see a phase 0 iteration and in rare cases you will see the message<br />

”Loss of Feasibility - Return to Phase 0”. <strong>The</strong> background for this is as follows:<br />

To work efficiently, CONOPT uses dynamic tolerances for feasibility and during the initial part of the optimization<br />

where the objective changes rapidly fairly large infeasibilities may be acceptable. As the change in objective<br />

in each iteration becomes smaller it will be necessary to solve the constraints more accurately so the ”noise” in<br />

objective value from the inaccurate constraints will remain smaller than the real change. <strong>The</strong> noise is measured<br />

as the scalar product of the constraint residuals with the constraint marginals.<br />

Sometimes it is necessary to revise the accuracy of the solution, for example because the algorithmic progress<br />

has slowed down or because the marginal of an inaccurate constraint has grown significantly after a basis change,<br />

e.g. when an inequality becomes binding. In these cases CONOPT will tighten the feasibility tolerance and<br />

perform one or more Newton iterations on the basic variables. This will usually be very quick and it happens<br />

silently. However, Newton’s method may fail, for example in cases where the model is degenerate and Newton<br />

tries to move a basic variable outside a bound. In this case CONOPT uses some special iteration similar to those<br />

discussed in section A6. Finding a Feasible Solution: Phase 0. and they are labeled Phase 0.<br />

<strong>The</strong>se Phase 0 iterations may not converge, for example if the degeneracy is significant, if the model is very<br />

nonlinear locally, if the model has many product terms involving variables at zero, or if the model is poorly scaled<br />

and some constraints contain very large terms. If the iterations do not converge, CONOPT will issue the ”Loss<br />

of feasibility ...” message, return to the real Phase 0 procedure, find a feasible solution with the smaller tolerance,<br />

and resume the optimization.<br />

In rare cases you will see that CONOPT cannot find a feasible solution after the tolerances have been reduced,<br />

even though it has declared the model feasible at an earlier stage. We are working on reducing this problem.

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

Saved successfully!

Ooh no, something went wrong!