\chapter{Constraint Optimization}%
\label{cha:Constraint Optimization}
Um zu erklären,
was es mit der Constraint Optimization auf sich hat,
lohnt es sich ein einfaches Beispiel zu betrachten

Es soll $\argmin_x x^2$ für $x\ge b$ ermittelt werden.
Abhängig davon,
wie $b$ gewählt wird ist das Minimum gleich dem globalen Minimum oder gleich dem Grenzwert:
\begin{center}
    \includegraphics[width = .6\textwidth]{constraint_optimization.png}
\end{center}

\section{Lagrangian Multipliers}%
\label{sec:Lagrangian Multipliers}
Eine Möglichkeit ein Constraint Optimization Problem (für konvexe Funktionen) zu lösen sind die Lagrangian Multiplier.
Hierzu wird die Langrangesche Funktion gebildet:
\begin{equation} \label{eq:Lagrangian}
    L = \text{objective} - \text{multiplier}\cdot \text{constraint}
\end{equation}
Hierbei ist die \say{objective} die Funtion die Optimiert werden soll.
Allgemein schreibt man für eine zu minimierende Funktion $f(\bm x)$ und eine Menge von Constraints $h_i(\bm x)\le b_i$ ($i=1\dots K$):
\begin{equation} \label{eq:lagrangian_function}
    L(\bm x,\bm\lambda)=f(\bm x)-\sum_{i=1}^K\lambda_i(h_i(\bm x) - b_i)\qquad \lambda_i\ge 0\forall i=1\dots K
\end{equation}
Die Lagrangian Optimization erfolgt anschließend durch:
\begin{equation} \label{eq:lagrangian_optimization}
    \min_{\bm x} \max_{\bm\lambda} L(\bm x,\bm\lambda)
\end{equation}
Wenn sowohl die Funktion $f$ als auch die Constraints $h$ konvex sind dürfen $\min_{\bm x}$ und $\max_{\bm\lambda}$ \say{getauscht} werden.
Man spricht hierbei dann von einem Dual Optimization Problem
\begin{equation} \label{eq:dual_optimization_problem}
    \bm\lambda^*=\argmax_{\bm\lambda} g(\bm\lambda), g(\bm\lambda)= \min_{\bm x}L(\bm x,\bm\lambda)
\end{equation}
Hieraus ergibt sich der folgende Ablauf für die Lagrangian Optimization
\begin{mybox}
   \textbf{\large Lagrangian Optimization}\\
   \begin{enumerate}
       \item Die Langrangesche Funktion ermitteln
           $$L(\bm x,\bm\lambda) = f(\bm x)-\sum_{i=1}^K \lambda_i(h_i(\bm x) - b_i)$$
       \item Die optimale Lösung für die Grundparameter (primal parameters) ermitteln
           $$\frac{\partial L(\bm x,\bm\lambda)}{\partial x}=0\rightarrow\bm x^* = f(\bm\lambda)$$
       \item $\bm x^*$ wieder in die Langrangesche Funktion einsetzen um die Dual Function zu erhalten
           $$ g(\bm\lambda) = L(f(\bm\lambda),\bm\lambda)$$
       \item Die optimale Lösung für die Dual Function ermitteln 
           $$\bm\lambda^* = \argmax_{\bm\lambda} g(\bm\lambda), \lambda_i\ge 0 \forall i$$
       \item Die Optimale Gesamtlösung errechnen
           $$\bm x^* = f(\bm\lambda^*)$$
   \end{enumerate}
\end{mybox}

\subsection{Erklärung am Beispiel}%
\label{sub:Erklärung am Beispiel}
Für unser Beispiel ($\argmin_x x^2, x\ge b$) ergibt sich die Langrangesche Funktion:
\begin{equation} \label{eq:lagrangian_example}
    L(x,\lambda) = \underbrace{x^2}_{\text{objective}}-\underbrace{\lambda}_{\text{multiplier}} \cdot \underbrace{(x-b)}_{\text{constraint}}
\end{equation}
Das hat den Effekt, dass $\min_x$ und $\max_\lambda$ gegeneinander ankämpfen.
Die Anwendung der Lagrangian Optimization führt im Beispiel zu:
\begin{itemize}
    \item $x<b$: $(x-b)<0\Rightarrow\max_\lambda -\lambda(x-b)=\infty\Rightarrow$ wird von $\min_x$ nicht zugelassen 
    \item $x>b$: $(x-b)>0, \lambda>0\Rightarrow\lambda^*=0\Rightarrow$ constraint hat keinen Einfluss
    \item $x=b$: $\lambda$ ist irrelevant $\Rightarrow$ constraint hat keinen Einfluss
\end{itemize}
Abschließend erfolgt die Optimierung nach dem oben aufgeführten Prinzip:\\
\includegraphics[width=.8\textwidth]{lagrangian_optimization_example.png}
