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.5. NONLINEAR CONVEX OPTIMIZATION 147<br />

11.5 Nonlinear convex optimization<br />

11.5.1 <strong>The</strong> interior-point <strong>optimizer</strong><br />

For quadratic, quadratically constrained, and general convex optimization problems an interior-point<br />

type <strong>optimizer</strong> is available. <strong>The</strong> interior-point <strong>optimizer</strong> is an implementation of the homogeneous and<br />

self-dual algorithm. For a detailed description of the algorithm, please see [14], [15].<br />

11.5.1.1 <strong>The</strong> convexity requirement<br />

Continuous nonlinear problems are required to be convex. For quadratic problems <strong>MOSEK</strong> test this<br />

requirement before optimizing. Specifying a non-convex problem results in an error message.<br />

<strong>The</strong> following parameters are available to control the convexity check:<br />

• iparam.check convexity: Turn convexity check on/off.<br />

• dparam.check convexity rel tol: Tolerance for convexity check.<br />

• iparam.log check convexity: Turn on more log information for debugging.<br />

11.5.1.2 <strong>The</strong> differentiabilty requirement<br />

<strong>The</strong> nonlinear <strong>optimizer</strong> in <strong>MOSEK</strong> requires both first order and second order derivatives. This of<br />

course implies care should be taken when solving problems involving non-differentiable functions.<br />

For instance, the function<br />

is differentiable everywhere whereas the function<br />

f(x) = x 2<br />

f(x) = √ x<br />

is only differentiable for x > 0 . In order to make sure that <strong>MOSEK</strong> evaluates the functions at points<br />

where they are differentiable, the function domains must be defined by setting appropriate variable<br />

bounds.<br />

In general, if a variable is not ranged <strong>MOSEK</strong> will only evaluate that variable at points strictly within<br />

the bounds. Hence, imposing the bound<br />

x ≥ 0<br />

in the case of √ x is sufficient to guarantee that the function will only be evaluated in points where it<br />

is differentiable.<br />

However, if a function is differentiable on closed a range, specifying the variable bounds is not sufficient.<br />

Consider the function

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

Saved successfully!

Ooh no, something went wrong!