25.11.2015 Views

The MOSEK Python optimizer API manual Version 7.0 (Revision 141)

Optimizer API for Python - Documentation - Mosek

Optimizer API for Python - Documentation - Mosek

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.

13.2. ANALYZING INFEASIBLE PROBLEMS 173<br />

is dual infeasible. This can be verified by proving that<br />

y1=-1, y2=-1, y3=0, y4=1, y5=1<br />

is a certificate of dual infeasibility.<br />

(slightly edited):<br />

<strong>The</strong> following constraints are involved in the infeasibility.<br />

In this example the following infeasibility report is produced<br />

Index Name Activity Objective Lower bound Upper bound<br />

0 x11 -1.000000e+00 NONE 1.000000e+00<br />

4 x31 -1.000000e+00 NONE 1.000000e+00<br />

<strong>The</strong> following variables are involved in the infeasibility.<br />

Index Name Activity Objective Lower bound Upper bound<br />

3 y4 -1.000000e+00 -1.100000e+03 NONE NONE<br />

Interior-point solution<br />

Problem status : DUAL INFEASIBLE<br />

Solution status : DUAL INFEASIBLE CER<br />

Primal - objective: 1.1000000000e+03 eq. infeas.: 0.00e+00 max bound infeas.: 0.00e+00 cone infeas.: 0.00e+00<br />

Dual - objective: 0.0000000000e+00 eq. infeas.: 0.00e+00 max bound infeas.: 0.00e+00 cone infeas.: 0.00e+00<br />

Let x ∗ denote the reported primal solution. <strong>MOSEK</strong> states<br />

• that the problem is dual infeasible,<br />

• that the reported solution is a certificate of dual infeasibility, and<br />

• that the infeasibility measure for x ∗ is approximately zero.<br />

Since it was an maximization problem, this implies that<br />

c t x ∗ > 0. (13.2)<br />

For a minimization problem this inequality would have been reversed — see (13.5).<br />

From the infeasibility report we see that the variable y4, and the constraints x11 and x33 are involved<br />

in the infeasibility since these appear with non-zero values in the ”Activity” column.<br />

One possible strategy to ”fix” the infeasibility is to modify the problem so that the certificate of<br />

infeasibility becomes invalid. In this case we may do one the following things:<br />

• Put a lower bound in y3. This will directly invalidate the certificate of dual infeasibility.<br />

• Increase the object coefficient of y3. Changing the coefficients sufficiently will invalidate the<br />

inequality (13.2) and thus the certificate.<br />

• Put lower bounds on x11 or x31. This will directly invalidate the certificate of infeasibility.<br />

Please note that modifying the problem to invalidate the reported certificate does not imply that the<br />

problem becomes dual feasible — the infeasibility may simply ”move”, resulting in a new infeasibility.<br />

More often, the reported certificate can be used to give a hint about errors or inconsistencies in the<br />

model that produced the problem.

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

Saved successfully!

Ooh no, something went wrong!