\documentclass{bschlangaul-aufgabe}
\bLadePakete{komplexitaetstheorie}
\begin{document}
\def\sat{\bProblemName{Sat}}
\def\dreiSat{\bProblemName{3Sat}}

\bAufgabenMetadaten{
  Titel = {SAT-3SAT},
  Thematik = {SAT-3SAT},
  Referenz = THEO.Komplexitaet.SAT-3SAT,
  RelativerPfad = Module/70_THEO/40_Komplexitaet/Aufgabe_SAT-3SAT.tex,
  ZitatSchluessel = theo:ab:4,
  ZitatBeschreibung = {Seite 18, Aufgabe 14},
  BearbeitungsStand = mit Lösung,
  Korrektheit = unbekannt,
  Ueberprueft = {unbekannt},
  Stichwoerter = {Polynomialzeitreduktion},
}

\begin{bExkurs}[\sat]
\bProblemSat
\end{bExkurs}

\begin{enumerate}

%%
% (a)
%%

\item Wie zeigt man die aus der NP-Schwere des \dreiSat-Problems die
NP-Schwere des \sat-Problems?\index{Polynomialzeitreduktion}
\footcite[Seite 18, Aufgabe 14]{theo:ab:4}

\begin{bAntwort}
\bPolynomiellReduzierbar{\dreiSat}{\sat}

Jedes \dreiSat-Problem ist auch ein \sat-Problem,
weil $\dreiSat \subset \sat$. Damit braucht es keine Funktion (bzw.
Identitäts-/Einheitsfunktion). Die Funktion ist korrekt, total und in
Polynomialzeit anwendbar. Das \sat-Problem ist ebenfalls NP-schwer.
\end{bAntwort}

%%
% (b)
%%

\item Wie zeigt man die aus der NP-Schwere des \sat-Problems die
NP-Schwere des \dreiSat-Problems?

\begin{bAntwort}
\bPolynomiellReduzierbar{\sat}{\dreiSat}

Man muss eine Funktion ﬁnden, die eine allgemeine Aussagenlogik in eine
Aussagenlogik mit 3 Literalen in konjunktiver Normalform umformt.

Durch die boolsche Algebra lässt sich jede logische Aussagenlogik in
eine konjunktive Normalform bringen. Dies ist eine Konjunktion von
Disjunktionstermen. Wir formen einen Disjunktionsterm mithilfe einer
Funktion in ein \dreiSat-Problem um. Diese Funktion kann auf jeden
Disjunktionsterm angewendet werden und damit wird das gesamte
\sat-Problem auf \dreiSat{} reduzieren.

Die Funktion formt Formel aus \sat mithilfe von Hilfsvariablen
%
$h_1 , \dots , h_{n-2}$
%
derart um
%
$(a_1 \lor \dots \lor a_n) \rightarrow
(a_1 \lor a_2 \lor h_1) \land
(\neg h_1 \lor a_3 \lor h_2) \land
(\neg h_2 \lor a_4 \lor h_3) \land
\dots \land
(\neg h_{n-2} \lor a_n )$

\begin{description}
\item[total]

Diese Funktion ist total, denn jede in \sat enthaltene Aussagenlogik
kann so umgewandelt werden.

\item[Korrektheit:]

Die Hilfsvariablen sind wahr, solange bis ein Literal $a_x$
selber true ist. Ab diesem Zeitpunkt sind die Hilfsvariablen dann
falsch.

\begin{description}
\item[JA-Instanzen:]

Der erste und alle mittleren Disjunktionstermen sind wahr, weil aufgrund
der Nicht-Negierung und Negierung immer ein wahres Literal in den
Disjunktionstermen. Somit ist dann auch der Disjunktionsterm wahr. Da es
eine JA-Instanz ist, existiert ein $a_x$ welches wahr ist. Somit sind ab
diesem Zeitpunkt die Hilfvariablen falsch. Der letzte Disjunktionsterm
wird dadurch sicher wahr, weil $\neg h_{n-2}$ somit wahr ist.

\item[NEIN-Instanz:]

Alle $a_x$ sind falsch. Auch hier sind wieder der erste und alle mittleren
Disjunktionsterme wahr (gleiche Begründung wie oben). Der letzte
Disjunktionsterm ist allerdings falsch, weil die Hilfvariablen
durchgehend wahr bleiben und alle $a_x$ falsch sind. Durch die Konjunktion
der Disjunktionsterme ist dann auch die Gesamtaussage falsch.

\end{description}

\item[Polynomialzeit:]

Der Algorithmus, der Formeln aus \sat{} nach \dreiSat{} umformt liegt in
$\mathcal{O}(n)$ und somit in Polynomialzeit.
\end{description}
\end{bAntwort}
\end{enumerate}

\end{document}
