Skript in PDF - Theoretische Informatik - Technische Universität ...
Skript in PDF - Theoretische Informatik - Technische Universität ...
Skript in PDF - Theoretische Informatik - Technische Universität ...
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
6.2. KOMPLEXITÄTSKLASSE P 141<br />
Beispiel 5 (2-ERFÜLLBARKEIT und 3-ERFÜLLBARKEIT). Analog zu der Situation<br />
der 2-Färbung und 3-Färbung haben wir hier e<strong>in</strong> anderes wichtiges Beispiel<br />
der Probleme, deren leichtere Variante zu P gehört und deren schwierige<br />
(wahrsche<strong>in</strong>lich) nicht. Es handelt sich um Boolesche Formeln über den Variablen<br />
x1, . . .,xn. Die e<strong>in</strong>fachsten Formeln s<strong>in</strong>d die Variablen xi selbst und ihre Negationen<br />
¬xi - diese Formeln heißen Literale. Die komplizierteren Formeln werden mit<br />
Hilfe der üblichen logischen Operationen, z.B. Konjunktion ∧, Disjunktion ∨ und<br />
Implikation → erzeugt.<br />
Jede Disjunktion von Literalen heißt Klausel.<br />
Beispiele:<br />
x ∨ y ∨ ¬z und ¬x.<br />
Jede Boolesche Formel phi hat e<strong>in</strong>e konjunktive Normalform (KNF), d.h., φ =<br />
φ1 ∧φ2 ∧ · · · ∧φn ist e<strong>in</strong>e Konjunktion der Klauseln φ1, . . . , φn. Z.B. hat die Formel<br />
φ = (x → y ∧ z) ∧ (¬x → ¬z)<br />
die folgende KNF: wir benutzen die Äquivalenz von<br />
und erhalten<br />
a → b und ¬a ∨ b<br />
φ = (¬x ∨ (y ∧ z)) ∧ (x ∨ ¬z)<br />
Da ¬x ∨ (y ∧ z) äquivalent zu (¬x ∨ y) ∧ (¬x ∨ z) ist (de Morgansches Gesetz), gilt<br />
φ = (¬x ∨ y) ∧ (¬x ∨ z) ∧ (x ∨ ¬z).<br />
Das ist also e<strong>in</strong>e Boolesche Formel, deren Klauseln je zwei Literale enthalten.<br />
E<strong>in</strong>e Formel φ heißt erfüllbar, falls die Variablen so mit true oder false belegt<br />
werden können, dass φ den Wert true annimmt. Beispiel: die obige Formel ist<br />
erfüllbar, denn für<br />
x = true, y = true, z = true<br />
gilt φ = true.<br />
Es ist ke<strong>in</strong> effizienter Algorithmus bekannt, der für jede Boolesche Formel unterscheidet,<br />
ob sie erfüllbar ist. Das Problem m-ERFÜLLBARKEIT ist: Gegeben,<br />
e<strong>in</strong>e Boolesche Formel φ <strong>in</strong> konjunktiver Normalform, wobei jede Klausel m Literale<br />
enthält, ist φ erfüllbar? Wir def<strong>in</strong>ieren die Größe der E<strong>in</strong>gabe φ als n + k, wobei<br />
n die Anzahl aller Variablen und k die Anzahl aller Klauseln von φ ist.<br />
2-ERFÜLLBARKEIT gehört zur Klasse P. Wir könnten hier e<strong>in</strong>en effizienten Algorithmus<br />
angeben, aber e<strong>in</strong>facher ist es zu zeigen (<strong>in</strong> Abschnitt 6.3), dass es e<strong>in</strong>e<br />
effiziente Reduktion dieses Problems auf e<strong>in</strong> anderes Problem der Klasse P gibt –<br />
daraus folgt dann <strong>in</strong>direkt, dass 2-ERFÜLLBARKEIT zur Klasse P gehört.<br />
3-ERFÜLLBARKEIT ist dagegen schwierig: <strong>in</strong> Abschnitt 6.4 zeigen wir, dass dieses<br />
Problem N P-vollständig ist, also genauso schwierig wie 3-FÄRBUNG.<br />
Beispiel 6 (UNIVERSALITÄT REGULÄRER AUSDRÜCKE). Das ist e<strong>in</strong> (rares)<br />
Beispiel e<strong>in</strong>es leicht zu formulierenden Problems, für das bewiesen wurde, dass es<br />
nicht effizient lösbar ist. Reguläre Ausdrücke haben wir <strong>in</strong> Kapitel 1 e<strong>in</strong>geführt: sie<br />
werden aus Buchstaben des Alphabets Σ, z.B. Σ = {a, b}, und Symbolen ∅ und ɛ mit<br />
Hilfe der Operatoren +, ·, und ∗ erzeugt. Jetzt arbeiten wir mit komprimierter<br />
Notation: statt xx . . . x (n-mal) schreiben wir x ↑ n (n b<strong>in</strong>är), z.B.<br />
xxxxx = x ↑ 101