SOCP
# SOCP

Ein SOCP (oder Second Order Cone Program) ist ein Problem in der mathematischen Optimierung, bei dem die Lösung des Problems nicht nur linearen Restriktionen unterliegt, sondern auch noch in einem bestimmten Kegel liegen soll. Dieser Kegel wird im Englischen der second-order cone genannt, woraus sich der Name des Programms herleitet.

## Definition

Gegeben sei der $\mathbb {R} ^{n}$ versehen mit dem Standardskalarprodukt $\langle {\cdot },{\cdot }\rangle$ und der Second-Order-Kegel (auch Lorentz-Kegel genannt) $S:=\{x\in \mathbb {R} ^{n+1}\,|\,\Vert (x_{1},\dots ,x_{n})\Vert _{2}\leq x_{n+1}\}$ der die verallgemeinerte Ungleichung $\preccurlyeq _{S}$ definiert. Dann heißt das Optimierungsproblem
    ${\begin{aligned}{\text{Minimiere }}&s(x)=\langle {c},{x}\rangle &\\{\text{unter den Nebenbedingungen }}&(A_{i}x+b_{i},c_{i}^{T}x+d_{i})\succcurlyeq _{S}0&i=1,\dots ,m\\&Fx=g&\end{aligned}}$
Dabei ist $A_{i}\in \mathbb {R} ^{n\times n}$ und $b_{i},c_{i},x\in \mathbb {R} ^{n}$ sowie $d_{i}\in \mathbb {R}$
Alternativ lässt sich die Ungleichungsrestriktion auch als $\Vert A_{i}x+b_{i}\Vert _{2}\leq c_{i}^{T}x+d_{i}$ formulieren.

## Klassifikation und Spezialfälle

Ein SOCP ist ein Konisches Programm, wie die obige Formulierung mittels des Kegels zeigt. Damit ist es auch immer ein konvexes Optimierungsproblem.
Sind alle $c_{i}=0$, so lässt sich ein SOCP als ein spezielles Quadratisches Programm mit quadratischen Nebenbedingungen formulieren. Dazu nutzt man aus, dass
    $(x,t)\succcurlyeq _{S}0\iff {\begin{bmatrix}x\\t\end{bmatrix}}^{T}{\begin{bmatrix}E_{n}&0\\0&-1\end{bmatrix}}{\begin{bmatrix}x\\t\end{bmatrix}}\leq 0\,{\text{ und }}\,-t\leq 0$
ist. Hierbei ist $E_{n}$ die n-dimensionale Einheitsmatrix. Jede Kegeleinschränkung lässt sich in diesem Fall also durch eine quadratische und eine lineare Restriktion ersetzen.
Sind alle $A_{i}$ gleich Null, so lassen sich die Ungleichungsrestriktionen umformulieren in $d_{i}-\Vert b_{i}\Vert _{2}\geq -c_{i}^{T}x$. Fasst man nun die linke Seite der Ungleichung für alle $i$ zu einem Vektor zusammen und die rechte Zeile zu einer Matrix, die zeilenweise aus den Vektoren $c_{i}$ besteht, so lässt sich das SOCP als Lineares Optimierungsproblem formulieren.