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.

88 CHAPTER 7. ADVANCED <strong>API</strong> TUTORIAL<br />

7.2 Solving linear systems involving the basis matrix<br />

A linear optimization problem always has an optimal solution which is also a basic solution. In an<br />

optimal basic solution there are exactly m basic variables where m is the number of rows in the<br />

constraint matrix A. Define<br />

B ∈ R m×m<br />

as a matrix consisting of the columns of A corresponding to the basic variables.<br />

<strong>The</strong> basis matrix B is always non-singular, i.e.<br />

det(B) ≠ 0<br />

or equivalently that B −1 exists. This implies that the linear systems<br />

and<br />

B¯x = w (7.1)<br />

each has a unique solution for all w .<br />

B T ¯x = w (7.2)<br />

<strong>MOSEK</strong> provides functions for solving the linear systems (7.1) and (7.2) for an arbitrary w-¿.<br />

7.2.1 Identifying the basis<br />

To use the solutions to (7.1) and (7.2) it is important to know how the basis matrix B is constructed.<br />

Internally <strong>MOSEK</strong> employs the linear optimization problem<br />

where<br />

maximize<br />

c T x<br />

subject to Ax − x c = 0,<br />

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

l c ≤ x c ≤ u c .<br />

(7.3)<br />

x c ∈ R m and x ∈ R n .<br />

<strong>The</strong> basis matrix is constructed of m columns taken from<br />

[ A − I ].<br />

If variable x j is a basis variable, then the j ’th column of A denoted a :,j will appear in B. Similarly,<br />

if x c i is a basis variable, then the i ’th column of −I will appear in the basis. <strong>The</strong> ordering of the

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

Saved successfully!

Ooh no, something went wrong!