\documentclass[12pt]{article} \usepackage[utf8]{inputenc} \usepackage[T1]{fontenc} \usepackage[ngerman,provide=*]{babel} \usepackage{amsmath} \usepackage{amssymb} \usepackage[a4paper,margin=2.5cm]{geometry} \title{Hausaufgabe 12} \author{Marek Lenczewski \\ Matrikelnummer: 1025252} \date{6.\ Juli 2026} \begin{document} \maketitle \section*{Hausaufgabe 12.1} \subsection*{Teil (a): Der Algorithmus hat Güte 2} Zu zeigen ist, dass der Algorithmus die Güte 2 hat, also die Lösung vom Algorithmus mindestens halb so gut ist wie die optimale Lösung. Also $\nu(A(\varphi)) \ge \frac{1}{2}\nu(OPT(\varphi))$ für alle Eingaben $\varphi$. \\ Sei $\varphi$ eine beliebige 3-SAT-Formel mit $m$ Klauseln $C_1, C_2, \dots, C_m$, wobei jede Klausel genau 3 Literale enthält. \\ Betrachte die beiden Belegungen $\beta_0$ (alle Variablen false) und $\beta_1$ (alle Variablen true): \begin{itemize} \item Unter $\beta_0$ ist jedes negative Literal wahr. \item Unter $\beta_1$ ist jedes positive Literal wahr. \end{itemize} Jedes Literal ist positiv oder negativ. Jede Klausel $C_i$ enthält mindestens ein Literal. Also wird jede Klausel unter $\beta_0$ oder unter $\beta_1$ (oder unter beiden) erfüllt. \\ Sei $\nu_0 = \nu(\beta_0)$ die Anzahl der von $\beta_0$ erfüllten Klauseln und $\nu_1 = \nu(\beta_1)$ die Anzahl der von $\beta_1$ erfüllten Klauseln. Da jede Klausel zu $\nu_0$ oder $\nu_1$ zählt, gilt \[ \nu_0 + \nu_1 \ge m. \] Der Algorithmus wählt die Belegung mit den meisten erfüllten Klauseln, also \[ \nu(A(\varphi)) = \max\{\nu_0, \nu_1\} \ge \frac{\nu_0 + \nu_1}{2} \ge \frac{m}{2}. \] Da die optimale Lösung höchstens alle $m$ Klauseln erfüllen kann, gilt $\nu(OPT(\varphi)) \le m$. Daraus folgt \[ \nu(A(\varphi)) \ge \frac{m}{2} \ge \frac{\nu(OPT(\varphi))}{2}. \] Somit hat der Algorithmus eine Güte von 2. \hfill $\square$ \subsection*{Teil (b): Formel mit genau der Hälfte} Der Algorithmus erfüllt genau die Hälfte der maximal erfüllbaren Klauseln, wenn $\beta_0$ und $\beta_1$ jeweils nur eine Klausel erfüllen, das Optimum aber beide Klauseln erfüllt. \\ \textbf{Formel:} $\varphi = (x_1 \vee x_2 \vee x_3) \wedge (\neg x_1 \vee \neg x_2 \vee \neg x_3)$ \textbf{Unter $\beta_0$ (alle false):} \begin{itemize} \item $C_1 = (x_1 \vee x_2 \vee x_3) = (\text{false} \vee \text{false} \vee \text{false}) = \text{false}$ \item $C_2 = (\neg x_1 \vee \neg x_2 \vee \neg x_3) = (\text{true} \vee \text{true} \vee \text{true}) = \text{true}$ \item $\nu(\beta_0) = 1$ \end{itemize} \textbf{Unter $\beta_1$ (alle true):} \begin{itemize} \item $C_1 = (x_1 \vee x_2 \vee x_3) = (\text{true} \vee \text{true} \vee \text{true}) = \text{true}$ \item $C_2 = (\neg x_1 \vee \neg x_2 \vee \neg x_3) = (\text{false} \vee \text{false} \vee \text{false}) = \text{false}$ \item $\nu(\beta_1) = 1$ \end{itemize} Der Algorithmus wählt $\nu(A(\varphi)) = \max\{\nu(\beta_0), \nu(\beta_1)\} = \max\{1, 1\} = 1$. \\ Eine optimale Lösung wäre zum Beispiel $x_1 = \text{true}, x_2 = \text{false}, x_3 = \text{false}$: \begin{itemize} \item $C_1 = (\text{true} \vee \text{false} \vee \text{false}) = \text{true}$ \item $C_2 = (\text{false} \vee \text{true} \vee \text{true}) = \text{true}$ \end{itemize} Daraus ergibt sich $\nu(OPT(\varphi)) = 2$, also $\nu(A(\varphi)) = 1 = \frac{\nu(OPT(\varphi))}{2}$. Der Algorithmus erfüllt genau die Hälfte der maximal erfüllbaren Klauseln. \hfill $\square$ \end{document}