Abstrakte Verwendung der Dualität

This commit is contained in:
Marco Ammon 2020-10-15 18:44:48 +02:00
parent 6a6cbb3e13
commit 92e245e9a6
2 changed files with 20 additions and 4 deletions

Binary file not shown.

View File

@ -24,6 +24,7 @@
%\usepackage{datetime} %\usepackage{datetime}
%\usepackage{xcolor} %\usepackage{xcolor}
\usepackage{lmodern} \usepackage{lmodern}
\usepackage[ngerman]{cleveref}
% Formatierung % Formatierung
\newcommand*{\algo}[1]{\textsc{#1}} \newcommand*{\algo}[1]{\textsc{#1}}
@ -1058,11 +1059,12 @@ Beträgt der Schlupf 0, so ist die Nebenbedingung scharf.
Seien $\vec{x}$ und $\vec{y}$ zulässige Lösungen des Primals beziehungsweise Duals. Seien $\vec{x}$ und $\vec{y}$ zulässige Lösungen des Primals beziehungsweise Duals.
Sie sind genau dann optimale Lösungen, wenn für alle $i$ und $j$ $y_j \cdot \left(\row_j\left[A\right] \cdot \vec{y} - b_j\right) = 0$ und $\left(c_i - \row_i\left[\transposed{A}\right]\cdot \vec{y}\right) \cdot x_i =0$ gilt. Sie sind genau dann optimale Lösungen, wenn für alle $i$ und $j$ $y_j \cdot \left(\row_j\left[A\right] \cdot \vec{y} - b_j\right) = 0$ und $\left(c_i - \row_i\left[\transposed{A}\right]\cdot \vec{y}\right) \cdot x_i =0$ gilt.
Die Bedingung können auch als Die Bedingung können auch als
\begin{align*} \begin{align}
y_j > 0 &\Rightarrow \row_j\left[A\right]\cdot\vec{x} = b_j\\ y_j > 0 &\Rightarrow \row_j\left[A\right]\cdot\vec{x} = b_j\label{eq:primaler-schlupf}\\
x_i > 0 &\Rightarrow \row_i\left[\transposed{A}\right] \cdot \vec{y} = c_i x_i > 0 &\Rightarrow \row_i\left[\transposed{A}\right] \cdot \vec{y} = c_i \label{eq:dualer-schlupf}
\end{align*} \end{align}
formuliert werden. formuliert werden.
Für Approximationsalgorithmen ist vor allem die zweite Aussage wichtig.
\end{satz} \end{satz}
\begin{satz} \begin{satz}
@ -1071,4 +1073,18 @@ Beträgt der Schlupf 0, so ist die Nebenbedingung scharf.
\zeta(\vec{y}) \le \opt(Y_\rel) = \opt(X_\rel) \le \opt(X) = \opt(I) \le z(\vec{x}) \zeta(\vec{y}) \le \opt(Y_\rel) = \opt(X_\rel) \le \opt(X) = \opt(I) \le z(\vec{x})
\end{equation*} \end{equation*}
\end{satz} \end{satz}
\subsection{Verwendung der Dualität für Approximationsalgorithmen}
\subsubsection{Entwurf neuer Algorithmen mittels Dual Fitting}
Beim Dual-Fitting wird allgemein versucht, \Cref{eq:dualer-schlupf} zu erfüllen.
Zunächst wird dazu eine zulässige Lösung $\vec{y}$ des Duals bestimmt, bei der einige Nebenbedingungen scharf sind.
Die den scharfen Nebenbedingungen entsprechenden Variablen $x_i$ des Primals werden dann als Approximation auf 1 gesetzt, die anderen auf 0.
Das so entstandene $\vec{x}$ gibt mit $z(\vec{x})$ eine obere Schranke an.
Die Qualität der Lösung hängt dabei stark von der Qualität des ursprünglich bestimmten $\vec{y}$ ab.
\subsubsection{Analyse bestehender Algorithmen}
Ein bestehender Algorithmus, der eine 0-1-Lösung des ursprünglichen ILPs $X$ berechnet, wird so erweitert, dass er gleichzeitig eine zulässige Lösung $\vec{y}$ für $Y_\rel$ konstruiert.
Da $\vec{x}$ und $\vec{y}$ von einander abhängen, hängt auch $z(\vec{x})$ von $\vec{y}$ ab.
Kann daraus der Wert $\zeta(\vec{y})$ isoliert werden, kann eine obere Schranke des Wertes der Lösung zu $I$ berechnet werden.
\end{document} \end{document}