25.12.2014 Aufrufe

HWS 07/08

HWS 07/08

HWS 07/08

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.

AUFGABE K.5: Bei dem folgenden Problem besteht die Eingabe aus einer Menge von m<br />

Klauseln der Länge drei (wie bei 3-SAT) und einer Zahl k. Zu entscheiden ist, ob es eine<br />

Belegung der Variablen gibt, die mindestens k Klauseln erfüllt. In jedem der folgenden Fälle<br />

beschreibe einen polynomiellen Algorithmus für dieses Problem oder zeige, dass (falls N P ̸= P)<br />

es einen solchen Algorithmus nicht geben kann.<br />

a) k ist beliebig.<br />

Mit einem solchen Algorithmus könnte man 3-SAT in polynomieller Zeit entscheiden,<br />

indem man k = m wählt; was N P = P zur Folge hätte.<br />

b) k ist eine Konstante.<br />

Es ist festzustellen, ob es k Klauseln gibt, die gleichzeitig erfüllt werden können; dafür<br />

gibt es ( m<br />

k)<br />

∈ O(m k ) (also polynomiell viele) Wahlen. In jeder Auswahl kommen maximal<br />

3k (also konstant viele) Variablen vor, womit alle deren Belegungen in konstanter Zeit<br />

getestet werden können. Insgesamt brauchen wir also nur polynomielle Zeit.<br />

AUFGABE K.6: Zeige, dass das folgende Problem N P-vollständig ist: Gegeben ist ein System<br />

C von Teilmengen einer endlichen Menge S. Gesucht ist eine möglichst kleine Teilmenge<br />

S ′ ⊆ S, so dass aus jeder Menge in C mindestens ein Element in S ′ vorkommt. Bei der Entscheidungsvariante<br />

ist zusätzlich eine Schranke L ∈ {1, . . .,|S|} gegeben; es soll entschieden<br />

werden, ob ein solches S ′ mit |S ′ | ≤L existiert.<br />

Offensichtlich gehört dieses Problem zu N P.<br />

Das Problem ist N P-schwer, weil VERTEX COVER ein Spezialfall davon ist; nämlich wenn<br />

jede Menge in C genau zwei Elemente besitzt. (Siehe die Übungsaufgabe 10.2, auch für eine<br />

Reduktion von CLIQUE oder INDEPENDENT SET auf dieses Problem.)<br />

AUFGABE K.7: In dieser Aufgabe betrachten wir die Sprache aller Wörter über {0, 1}, die<br />

mit 111 enden.<br />

a) Gib einen möglichst einfachen NFA an, der diese Sprache entscheidet.<br />

0,1<br />

q<br />

1 1 1<br />

0<br />

q 1<br />

q2 q3<br />

b) Benutze die Potenzmengenkonstruktion unter Vermeidung überflüssiger Zustände, um<br />

einen äquivalenten DFA zu konstruieren.<br />

Als Datenstrukturen benutzen wir eine Queue Q und ein Dictionary D.<br />

In jedem Schritt wird genau ein neuer Zustand in Q und D eingefügt, der im darauffolgenden<br />

Schritt aus Q entnommen wird, und zwar (in dieser Reihenfolge): {q 0 },{q 0 , q 1 },<br />

{q 0 , q 1 , q 2 },{q 0 , q 1 , q 2 , q 3 }. Danach findet kein Einfügen statt, womit Q leer und die Konstruktion<br />

beendet ist.<br />

0<br />

0<br />

0 0<br />

1 1 1<br />

{ q 0 } { q , q 1}<br />

{ q , q , q 2<br />

}{ q , q , q , q 3<br />

}<br />

1 1<br />

0 0 0<br />

2<br />

1<br />

c) Kann man den DFA aus (b) weiter minimieren Begründe deine Antwort.<br />

Nein. Der Automat hat vier Zustände, was auch der Index der Nerode-Relation ist.<br />

(Die Wörter ǫ, 1, 11, 111 sind paarweise nicht Nerode-äquivalent.)

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!