Algorithmus B und Randomized Rounding

This commit is contained in:
Marco Ammon 2020-10-15 11:55:48 +02:00
parent 740223ec7e
commit fea7865c92
2 changed files with 79 additions and 0 deletions

Binary file not shown.

View File

@ -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}