18.09.2013 Aufrufe

Skript in PDF - Theoretische Informatik - Technische Universität ...

Skript in PDF - Theoretische Informatik - Technische Universität ...

Skript in PDF - Theoretische Informatik - Technische Universität ...

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!