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.

11.1. HOW AN OPTIMIZER WORKS 137<br />

11.1.1.2 Eliminator<br />

<strong>The</strong> purpose of the eliminator is to eliminate free and implied free variables from the problem using<br />

substitution. For instance, given the constraints<br />

y = ∑ x j ,<br />

y, x ≥ 0,<br />

y is an implied free variable that can be substituted out of the problem, if deemed worthwhile.<br />

If the eliminator consumes too much time or memory compared to the reduction in problem size<br />

gained it may be disabled. This can be done with the parameter iparam.presolve eliminator use<br />

to onoffkey.off.<br />

In rare cases the eliminator may cause that the problem becomes much hard to solve.<br />

11.1.1.3 Linear dependency checker<br />

<strong>The</strong> purpose of the linear dependency check is to remove linear dependencies among the linear equalities.<br />

For instance, the three linear equalities<br />

x 1 + x 2 + x 3 = 1,<br />

x 1 + 0.5x 2 = 0.5,<br />

0.5x 2 + x 3 = 0.5<br />

contain exactly one linear dependency. This implies that one of the constraints can be dropped without<br />

changing the set of feasible solutions. Removing linear dependencies is in general a good idea since it<br />

reduces the size of the problem. Moreover, the linear dependencies are likely to introduce numerical<br />

problems in the optimization phase.<br />

It is best practise to build models without linear dependencies. If the linear dependencies are removed<br />

at the modeling stage, the linear dependency check can safely be disabled by setting the parameter<br />

iparam.presolve lindep use to onoffkey.off.<br />

11.1.2 Dualizer<br />

All linear, conic, and convex optimization problems have an equivalent dual problem associated with<br />

them. <strong>MOSEK</strong> has built-in heuristics to determine if it is most efficient to solve the primal or dual<br />

problem. <strong>The</strong> form (primal or dual) solved is displayed in the <strong>MOSEK</strong> log. Should the internal<br />

heuristics not choose the most efficient form of the problem it may be worthwhile to set the dualizer<br />

<strong>manual</strong>ly by setting the parameters:<br />

• iparam.intpnt solve form: In case of the interior-point <strong>optimizer</strong>.<br />

• iparam.sim solve form: In case of the simplex <strong>optimizer</strong>.<br />

Note that currently only linear problems may be dualized.

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

Saved successfully!

Ooh no, something went wrong!