diff --git a/zusammenfassung.pdf b/zusammenfassung.pdf index 009278a..3a3f011 100644 Binary files a/zusammenfassung.pdf and b/zusammenfassung.pdf differ diff --git a/zusammenfassung.tex b/zusammenfassung.tex index 6349216..290764a 100644 --- a/zusammenfassung.tex +++ b/zusammenfassung.tex @@ -656,4 +656,83 @@ Der folgende Algorithmus $A$ nutzt die sogenannte probabilistische Methode aus, \begin{satz} Algorithmus $A$ garantiert für jede boolesche $(n,m)$-Formel $\Phi$ in KNF sogar eine erwartete relative Güte von $\frac{3}{2}$. \end{satz} + +\subsection{Arithmetisierung und Randomized Rounding mit Algorithmus $B$} +\problem{Max-SAT} kann auch als Lineares Programm (LP) ausgedrückt werden. +Es bezeichnen im Folgenden $S_j^{\oplus}$ die Menge der Variablen, die in $C_j$ nicht negiert vorkommen, und $S_j^{\ominus}$ die Menge der Variablen, die in $C_j$ negiert vorkommen. +Für jede boolesche Variable $x_i$ wird eine 0-1-Variable $\hat{x}_i$ eingeführt; für jede Klausel $C_j$ eine 0-1-Variable $\hat{Z}_j$. +Es ergibt sich also das folgende ganzahlige lineare Programm (ILP) $B$ für \problem{Max-SAT}: +\begin{align*} + \text{maximiere} &\quad\sum_{j=1}^{m} \hat{Z}_j\\ + \text{gemäß} &\quad\sum_{x_i \in S_j^{\oplus}} \hat{x}_i + \sum_{x_i \in S_j^{\ominus}} \left(1 - \hat{x}_i\right) \ge \hat{Z}_j &\forall j\\ + &\quad\hat{x}_i \in \{0, 1\} &\forall i\\ + &\quad\hat{Z}_j \in \{0, 1\} &\forall j +\end{align*} +Relaxiert man die Bedingungen, dass $\hat{x}_i, \hat{Z}_j \in \{0, 1\}$ gelten muss, und stellt fordert stattdessen $\forall i, j: 0\le \hat{x}_i, \hat{Z}_j \le 1$, kann das resultierende LP $B_\mathrm{rel}$ in Polynomzeit gelöst werden. Das LP selbst hat ebenfalls eine polynomiell beschränkte Anzahl an Bedingungen, sodass die Gesammtlaufzeit auch polynomiell beschränkt ist. + +Durch die Relaxierung entsteht die folgende Beziehung (exemplarisch für ein Maximierungsproblem), die als Superoptimalität bezeichnet wird: +\begin{equation*} + \opt(B_\mathrm{rel}) \ge \opt(B) = \opt(\Phi) +\end{equation*} + +Im Allgemeinen ist die rationale Lösung $\sigma_\mathrm{rel}$ von $B_\mathrm{rel}$ also keine zulässige Lösung für $B$. +Hierzu müssen die $\hat{x}_i$ auf 0 oder 1 (bzw. die $x$ auf \textsc{False} oder \textsc{True}) gerundet müssen. +Eine Möglichkeit hierzu stellt der durch die stochastische Funktion $\phi: \left[0, 1\right] \mapsto \left[0, 1\right]$ parametrisierte Algorithmus $\algo{RandomizedRounding}[\pi]$ dar: +\begin{algorithmic}[] + \For{$i = 1\dots n$} + \State $x_i = \begin{cases*} + \textsc{True} & mit Wahrscheinlichkeit $\pi(\hat{x}_i)$\\ + \textsc{False} & mit Wahrscheinlichkeit $1 - \pi(\hat{x}_i)$\\ + \end{cases*}$ + \EndFor + \State \Return $b_B = (x_1,\dots,x_n)$ +\end{algorithmic} + +Damit kann dann der Algorithmus $B$ gebildet werden, der \problem{Max-SAT} approximiert: +\begin{algorithmic}[] + \State konstruiere das LP $B_\mathrm{rel}$ zur Eingabe $\Phi$ + \State ermittle die rationale Lösung $b_\mathrm{rel}$ von $B_\mathrm{rel}$ + \State \Return \Call{$\algo{RandomizedRounding}[\pi(x) = x]$}{$b_\mathrm{rel}$} +\end{algorithmic} + +\begin{satz} + Sei $k_j$ die Anzahl der Literale in $C_j$, dann gilt: + \begin{equation*} + P\left[C_j\,\text{wird durch den Algorithmus $B$ erfüllt}\right] \ge \left(1 - \left(1 - \frac{1}{k_j}\right)^{k_j}\right)\cdot \hat{Z}_j + \end{equation*} +\end{satz} +\begin{proof} + Erneut wird über die Gegenwahrscheinlichkeit argumentiert: + \begin{equation*} + P\left[C_j\,\text{wird durch den Algorithmus $B$ nicht erfüllt}\right] = \left[\Pi_{x_i\in S_j^{\oplus}} \left(1 - \hat{x}_i\right)\right] \cdot \left[\Pi_{x_i\in S_j^{\ominus}} \hat{x}_i\right] + \end{equation*} + Es folgt + \begin{align*} + P&\left[C_j\,\text{wird durch den Algorithmus $B$ erfüllt}\right] = 1- \left[\Pi_{x_i\in S_j^{\oplus}} \left(1 - \hat{x}_i\right)\right] \cdot \left[\Pi_{x_i\in S_j^{\ominus}} \hat{x}_i\right]\\ + &\ge 1 - \left(\frac{\sum_{x_i \in S_j^{\oplus}}\left(1 - \hat{x}_i\right) + \sum_{x_i \in S_j^{\ominus}}\hat{x}_i}{k_j}\right)^{k_j}\\ + &= 1 - \left(\frac{\abs{S_j^{\oplus}} - \sum_{x_i \in S_j^{\oplus}}\hat{x}_i + \abs{S_j^{\ominus}} - \sum_{x_i \in S_j^{\ominus}}\left(1 -\hat{x}_i\right)}{k_j}\right)^{k_j}\\ + &= 1 - \left(\frac{k_j - \left(\sum_{x_i \in S_j^{\oplus}}\hat{x}_i + \sum_{x_i \in S_j^{\ominus}}\left(1 -\hat{x}_i\right)\right)}{k_j}\right)^{k_j}\\ + &\overset{\text{NB von $B$}}{\ge} 1 - \left(1 - \frac{\hat{Z}_j}{k_j}\right)^{k_j} \overset{\text{Konkavität}}{\ge} \left(1 - \left(1 - \frac{1}{k_j}\right)^{k_j}\right)\cdot \hat{Z}_j + \end{align*} +\end{proof} + +\begin{satz} + Für jede boolesche Formel $\Phi$ in KNF, in der jede Klausel höchstens $k$ Literale hat, gilt + \begin{equation*} + E\left[B(\Phi)\right] \ge \left(1 - \left(1 - \frac{1}{k}\right)^{k}\right)\cdot\opt(\Phi) + \end{equation*} +\end{satz} +\begin{satz} + Mit der bekannten Abschätzung $1 - \left(1 - \frac{1}{k}\right)^k \ge 1 -\frac{1}{e}$ für alle $k \in \mathbb{N}$ + beträgt die erwartete Anzahl an erfüllten Klauseln von Algorithmus $B$ bei einer Eingabe $\Phi$ in KNF mindestens $\left(1 - \frac{1}{e}\right)\cdot\opt(\Phi) \approx 0.632\cdot\opt(\Phi)$. + + Algorithmus $B$ hat also eine erwartete relative Güte von + \begin{equation*} + E\left[\rho_B(\Phi)\right] \le \frac{1}{1 - \frac{1}{e}} \approx 1.582 + \end{equation*} +\end{satz} + +\begin{satz} + Mit $\pi(x) = \frac{1}{2}\cdot x + \frac{1}{4}$ oder $1 - \frac{1}{4^x} \le \pi(x) \le 4^{x-1}$ kann Algorithmus $B$ sogar eine erwartete relative Güte von $\frac{4}{3}$ erreichen. +\end{satz} \end{document}