04.11.2014 Aufrufe

Grundlagen der Logik und Logikprogrammierung

Grundlagen der Logik und Logikprogrammierung

Grundlagen der Logik und Logikprogrammierung

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.

Lemma 4 (Berechnung einer CNF von ϕ in NNF). Sei ϕ eine Formel. Dann hat ϕ eine CNF<br />

CNFpϕq.<br />

Beweis. Wir können nach obigem annehmen, dass ϕ bereits in NNF ist. Wir definieren dann CNFpϕq<br />

rekursiv:<br />

CNFpϕ ^ ψq “ CNFpϕq ^ CNFpψq<br />

CNFpLq “ L<br />

kľ<br />

CNFpϕ _ ψq “<br />

j“1 i“1<br />

nľ<br />

pD i _ E j q mit CNFpϕq “<br />

nľ<br />

D i <strong>und</strong> CNFpψq “<br />

i“1<br />

kľ<br />

E i .<br />

Man zeigt durch Indukion über ϕ, dass ϕ ” CNFpϕq <strong>und</strong> dass CNFpϕq in <strong>der</strong> Tat eine CNF ist.<br />

Der einzig interessante Teil <strong>der</strong> Induktion ist <strong>der</strong> Induktionsschritt für ϕ _ ψ, <strong>der</strong> auf wie<strong>der</strong>holtem<br />

Anwenden des Distributivgesetzes („Ausmultiplizieren“) beruht:<br />

nľ<br />

kľ<br />

ϕ _ ψ ” p D i q _ p E j q<br />

Distr.<br />

”<br />

Dist.<br />

”<br />

i“1<br />

j“1<br />

j“1<br />

kľ nľ<br />

pp D i q _ E j q<br />

kľ<br />

j“1 i“1<br />

i“1<br />

nľ<br />

pD i _ E j q “ CNFpϕ _ ψq.<br />

i“1<br />

Problem an CNFpϕ _ ψq: n ¨ k Klauseln, z.B. CNFppA 1 ^ B 1 q _ ¨ ¨ ¨ _ pA n ^ B n qq hat 2 n Klauseln.<br />

Durch Einführung zusätzlicher Atome lässt sich <strong>der</strong> Blowup 1 polynomiell halten, dann aber CNFpϕq<br />

nur noch erfüllbarkeitsäquivalent zu ϕ (CNFpϕq erfüllbar ô ϕ erfüllbar).<br />

1.7. Resolution<br />

Das Resolutionsverfahren ist ein Algorithmus zur Entscheidung <strong>der</strong> Erfüllbarkeit einer CNF (Klauselmenge<br />

C). Er basiert auf <strong>der</strong> Resolutionsregel.<br />

Definition: Resolutionsregel<br />

D 1 Y tAu D 2 Y t␣Au<br />

(Res)<br />

(1)<br />

D 1 Y D 2<br />

Diese Regel wird im Resolutionsverfahren auf die Menge <strong>der</strong> Klauseln in einer CNF angewendet.<br />

Regeln dieser Form werden so interpretiert, dass, wenn in <strong>der</strong> Menge alle Elemente über dem Strich<br />

enthalten sind, das Element unter dem Strich zur Menge hinzugefügt werden darf. D 1 Y D 2 hat hier<br />

den Namen Resolvente.<br />

1 Als Blowup bezeichnet man das Verhältnis zwischen Größe <strong>der</strong> Eingabe <strong>und</strong> Größe <strong>der</strong> Ausgabe eines Algorithmus.<br />

Oft verwendet bei Algorithmen, die ein Problem in ein an<strong>der</strong>es Transformieren.<br />

12

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!