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

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

78 CHAPTER 6. NONLINEAR <strong>API</strong> TUTORIAL<br />

values and derivatives. This eliminates an important source of errors. <strong>The</strong>refore, it is strongly<br />

recommended to use a modelling language at the protype stage.<br />

6.1 Separable convex (SCopt) interface<br />

<strong>The</strong> <strong>MOSEK</strong> <strong>Python</strong> <strong>API</strong> provides a way to add simple non-linear functions composed from a limited<br />

set of non-linear terms. Non-linear terms can be mixed with quadratic terms in objective and<br />

constraints.<br />

We consider a normal linear problem with additional non-linear terms z:<br />

minimize<br />

z 0 (x) + c T x<br />

subject to li c ≤ z i (x) + a T i x ≤ u c i, i = 1 . . . m<br />

l x ≤ x ≤ u x ,<br />

x ∈ R n<br />

z : R n → R (m+1)<br />

Using the separable non-linear interface it is possible to add non-linear functions of the form<br />

∑K i<br />

z i (x) = wk(x i pik ), wk i : R → R<br />

k=1<br />

In other words, each non-linear function z i is a sum of separable functions wk i of one variable each. A<br />

limited set of functions are supported; each wk i can be one of the separable functions:<br />

where f, g and h are constants.<br />

Separable function Operator name<br />

fxln(x) scopr.ent Entropy function<br />

fe gx+h scopr.exp Exponential function<br />

fln(gx + h) scopr.log Logarithm<br />

f(x + h) g scopr.pow Power function<br />

This formulation does not guarantee convexity. For <strong>MOSEK</strong> to be able to solve the problem, following<br />

requirements must be met:<br />

• If the objective is minimized, the sum of non-linear terms must be convex, otherwise it must be<br />

concave.<br />

• Any constraint bounded below must be concave, and any constraint bounded above must be<br />

convex.<br />

• Each separable term must be twice differentiable within the bounds of the variable it is applied<br />

to.<br />

If these are not satisfied <strong>MOSEK</strong> may not be able to solve the problem or produce a meaningful status<br />

report. For details see section 6.1.3.

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

Saved successfully!

Ooh no, something went wrong!