Methoden: Semidefinite programming

Definition

nter dem Begriff semi­de­fi­ni­te pro­gramming (SDP) wer­den Opti­mie­rungs­pro­ble­me  mit linea­rer Ziel­funk­ti­on zusam­men­ge­fasst, deren Neben­be­din­gun­gen aus linea­ren Glei­chun­gen und spek­tra­len Unglei­chun­gen bestehen.

Die letz­te­ren quan­ti­fi­zie­ren Anfor­de­run­gen an das Spek­trum (die Eigen­wer­te) von aus den Opti­mie­rungs­va­ria­blen kon­stru­ier­ten Matri­zen.  Zen­tral sind dem­nach Optimierungsprobleme

$$ \begin{align} \min_x ~~~& \langle c, x\rangle \\ \text{s.t.}
~~~&Ax =b \\ ~~~& \sum_{k=1}^n x_k G_k \succeq 0 \end{align}$$

in der Opti­mie­rungs­va­ria­blen \(x\) [1, p. 168]. Dabei sind \(x, c, b\) Vek­to­ren, \(A, G_1, …, G_n, H\) sind Matri­zen und für eine Matrix  \( F\) besagt  \(F\succeq 0\), dass das Spek­trum von \(F\) posi­tiv sei. \(F \succeq 0\) ist eine glo­ba­le Aus­sa­ge über bestimm­te Kom­bi­na­tio­nen aller Ele­men­te von \(F\) gemein­sam und lässt sich nicht ver­ein­fa­chen zu ele­ment­wei­sen Unglei­chun­gen. Das obi­ge Pro­blem in detail­lier­ter Schreib­wei­se lau­tet wie folgt.

  • Fin­de die Varia­blen \(x_1, …, x_n\) sodass \(\langle c,x\rangle = c_1x_1 +, … , +c_nx_n\) mini­mal wird
  • Dabei soll gelten: 
    1. \(a_{k1} x_1 + , …, + a_{kn}x_n =b_k ~~~~k=1, …, m_1\)
    2. \(x_1 G_1 + , …, + x_n G_n \succeq H\)

Wie auch beim LP besteht das Pro­blem aus der Mini­mie­rung einer Sum­me \(\langle c,x\rangle\), \(m_1\) Glei­chun­gen, und Unglei­chun­gen. Im Gegen­satz zum LP betref­fen die Unglei­chun­gen das Spek­trum einer Matrix \(x_1G_1 + , …, + x_nG_n‑H\), wodurch sie ungleich fle­xi­bler aber auch schwie­ri­ger zu inter­pre­tie­ren sind. SDP ist sehr gene­rell und inklu­diert LP, QP, QCQP, und SOCP [2, p. 3].

Beispiel

Jedes Bei­spiel für LP, QP, QCQP, und SOCP ist auch ein Bei­spiel für SDP. SDP sind beson­ders geeig­net für Opti­mie­rungs­auf­ga­ben betref­fend Eigen­wer­te von Matri­zen und damit z.B. für die Mini­mie­rung von Unsi­cher­heits­mas­sen. Es sei die Matrix

$$ \begin{align} F=\begin{bmatrix} x_1 & x_2 \\ x_2 &1 \end{bmatrix} \succeq 0 ~~~~~ x_1+x_2=2 \end{align}$$

die Kova­ri­anz­ma­trix, ein Mass für die Unsi­cher­hei­ten und Kor­re­la­tio­nen in Expe­ri­men­ten. Dabei sind \(x_1\) und \(x_2\) Ent­schei­dungs­va­ria­blen betref­fend der Wahl von Expe­ri­men­ten. Sie sol­len so gewählt wer­den, dass der gröss­te Eigen­wert von \(F\) — als Indi­ka­tor für die maxi­ma­le Unsi­cher­heit — mini­mal wird. Mit­tels eini­ger Trans­for­ma­tio­nen [1, p. 387] kann das Pro­blem als das SDP

$$ \begin{align} \min_{x_1, …, x_n, t} ~~~& t \\ \text{s.t.}
~~~&x_1+x_2 =2 \\ ~~~& t \begin{bmatrix} 1 & 0 \\ 0 & 1\end{bmatrix} — \begin{bmatrix} x_1 & x_2 \\ x_2 & 1 \end{bmatrix} \succeq 0 ~~~~\begin{bmatrix} x_1 & x_2 \\ x_2 & 1 \end{bmatrix} \succeq 0 \end{align}$$

geschrie­ben wer­den. Mit­tels CVXPY [3] und des inte­grier­ten SCS Algo­rith­mus’ [4] ergibt sich die nicht­tri­via­le Lösung \(x_1=1.6, x_2=0.4\).

Abbil­dung 1: Geo­me­tri­sche Inter­pre­ta­ti­on des Pro­b­le­mes der Mini­mie­rung des maxi­ma­len Eigen­wer­tes einer Matrix unter linea­ren Neben­be­din­gun­gen. Die Iso­li­ni­en und die zuläs­si­ge Men­ge sind stark gekrümmt.

Anwendungen

Die Anwen­dungs­mög­lich­kei­ten von SDP sind enorm viel­sei­tig und beinhal­ten alle Pro­ble­me, bei denen das Spek­trum von Matri­zen rele­vant ist. Dazu zäh­len vie­le wahr­schein­lich­keits­theo­re­ti­sche und phy­si­ka­li­sche Pro­ble­me; vor allem aus  opti­ma­ler Steue­rung, Sys­tem­sta­bi­li­sie­rung, Rege­lungs­tech­nik, Port­fo­lio­op­ti­mie­rung, Expe­ri­ment­ende­sign, sta­tis­ti­schen Unglei­chun­gen, Robus­ter Appro­xi­ma­ti­on und Ent­schei­dungs­fin­dung, Bau­sta­ti­schem Design, Opti­mie­rung unter pro­ba­bi­lis­ti­schen Neben­be­din­gun­gen sowie der Suche nach Appro­xi­ma­ti­ons­lö­sun­gen für schwe­re kom­bi­na­to­ri­sche Pro­ble­me wie etwa Max Cut oder die Opti­mie­rung von qua­dra­ti­schen For­men auf Gra­phen. Details sind hier zu finden.

Die Opti­mie­rungs­va­ria­blen \(x_1, …, x_n\) sind oft als Para­me­ter von Kova­ri­anz- oder Ener­gie­ma­tri­zen zu inter­pre­tie­ren. Durch diver­se Tricks zur For­mu­lie­rung von SDPs sind sie oft äus­serst schwie­rig zu ver­ste­hen. Als Bei­spiel mag die Ein­bet­tung von SOCPs die­nen. Die­se Opti­mie­rungs­pro­ble­me der Form

$$ \begin{align} \min_x ~~~& \langle c, x\rangle \\ \text{s.t.}
~~~&Ax =b \\ ~~~& \|G_k x +h_k\|_2 \le \langle f_k,x\rangle + d_k ~~~ k=1, …, m_2 \end{align}$$

las­sen sich mit Hil­fe des Schur-Kom­ple­men­tes refor­mu­lie­ren als das SDP

$$ \begin{align} \min_x ~~~& \langle c, x\rangle \\ \text{s.t.}
~~~&Ax =b \\ ~~~& \begin{bmatrix} r_kI & q_k \\ q_k^T & r_k \end{bmatrix} \succeq 0 ~~~k=1, …, m_2  \end{align}$$

Dabei ist \(I\) die EIn­heits­ma­trix, \(r_k=\langle f_k,x\rangle +d_k, q_k=G_kx+h_k\) und die Äqui­va­lenz ergibt sich aus \([A ~~b ; b^T~~ c] \succeq 0 \Leftrightarrow A\succeq 0 \wedge c- b^T Ab\succeq 0\).

Lösungsverfahren

Semi­de­fi­ni­te Pro­gram­me sind seit den frü­hen 2000ern mit offen zugäng­li­cher Soft­ware zu lösen. Theo­re­ti­sche Algo­rith­men exis­tie­ren seit den 1980ern [5]. Wie das illus­trier­te Bei­spiel zeigt, bedin­den sich die Opti­ma nicht zwangs­läu­fig am rand der zuläs­si­gen men­ge, was Ver­fah­ren nach Art der Sim­plex-Metho­de ausschliesst. 

Statt­des­sen kom­men inte­ri­or-point methods zum Ein­satz, die Bedin­gun­gen vom Typ \(X\succeq0\) erset­zen durch die Bar­rie­re­funk­tio­nen \(-\mu \log \det x\), die am Rand der zuläs­si­gen Men­ge explo­si­ons­ar­tig anwächst. Wird \(\mu\) suk­zes­si­ve ver­klei­nert, so strebt das Mini­mum von \(\langle c,x\rangle — \mu \log \det x\) gegen \( \min_x \langle c,x\rangle\) mit \(x\succeq 0\) [6, p. 286]. Die zuläs­si­gen Men­gen sind nicht­li­ne­ar und der Pfad durch die men­ge wird von den loka­len Gra­di­en­ten gestuert, sie­he Abbildung.

Abbil­dung 2: Die zuläs­si­ge Men­ge einer linea­ren Matrixungleichung\(\begin{bmatrix} 1 & x_1 & x_2 \\ x_1 & 1 & x_3 \\ x_2 & x_3 &1 \end{bmatrix}\succeq 0\) mit 3 Varia­blen \(x_1, x_2, x_3\) abge­lei­tet aus [7].

Praktisches

SDP mit eini­gen zehn­tau­send Varia­blen kön­nen heut­zu­ta­ge zuver­läs­sig gelöst wer­den. Die ent­spre­chen­den Algo­rith­men sind ent­wi­ckelt und in Form von open source Soft­ware imple­men­tiert wor­den. SCS [4], SeDu­Mi [8] und SDPT3 [9] sind öffent­lich ver­füg­bar — die Soft­ware ist jedoch nume­risch insta­bi­ler als ver­gleich­ba­re Glei­chungs­lö­ser für LP oder QP. Da die Neben­be­din­gun­gen beim SDP als unend­lich vie­le linea­re Unglei­cun­gen auf­ge­fasst wer­den kön­nen, ist SDP eine sehr umfang­rei­che Pro­blem­klas­se. Die Model­lie­rung als spek­tral beschränk­tes Opti­mie­rungs­pro­blem ist jedoch eine Herausforderung.

Code & Quellen

Bei­spiel­code: Methods_sdp.py in unse­rem Tuto­ri­al­fol­der

[1] Boyd, S., & Van­den­berg­he, L. (2004). Con­vex Optimi­zation. Cam­bridge: Cam­bridge Uni­ver­si­ty Press.

[2] De Klerk, E. (2006). Aspects of Semi­de­fi­ni­te Pro­gramming: Inte­ri­or Point Algo­rith­ms and Sel­ec­ted Appli­ca­ti­ons. Ber­lin Hei­del­berg: Sprin­ger Sci­ence & Busi­ness Media.

[3] Dia­mond S., & Boyd S., (2016). CVXPY: A Python-embedded mode­ling lan­guage for con­vex optimi­zation. Jour­nal of Machi­ne Lear­ning Rese­arch, 17(83), 1–5.

[4] O’do­noghue, B., Chu, E., Parikh, N., & Boyd, S. (2016). Conic Optimi­zation via Ope­ra­tor Split­ting and Homo­ge­neous Self-Dual Embed­ding. Jour­nal of Optimi­zation Theo­ry and Appli­ca­ti­ons, 169(3), 1042–1068.

[5] Kar­mar­kar, N. (1984). A new poly­no­mi­al-time algo­rithm for line­ar pro­gramming. Com­bi­na­to­ri­ca, 4, 373–395.

[6] Wol­ko­wicz, H., Sai­gal, R., & Van­den­berg­he, L. (2012). Hand­book of Semi­de­fi­ni­te Pro­gramming: Theo­ry, Algo­rith­ms, and Appli­ca­ti­ons. Ber­lin Hei­del­berg: Sprin­ger Sci­ence & Busi­ness Media.

[7] Vinz­ant, C. (2014). What is … a spec­tra­he­dron? Noti­ces of the Ame­ri­can Mathe­ma­ti­cal Socie­ty, 61, 492–494.

[8] Sturm, J. F. (1999). Using SeDu­Mi 1.02, a MATLAB tool­box for optimi­zation over sym­me­tric cones. Optimi­zation Methods and Soft­ware, 11(1–4), 625–653.

[9] Tütün­cü, R. H., Toh, K. C., & Todd, M. J. (2003). Sol­ving semi­de­fi­ni­te-qua­dra­tic-line­ar pro­grams using SDPT3, Mathe­ma­ti­cal Pro­gramming, 95, 189–217.