20.03.2014 Aufrufe

Einführung in die Methoden der Künstlichen Intelligenz - Goethe ...

Einführung in die Methoden der Künstlichen Intelligenz - Goethe ...

Einführung in die Methoden der Künstlichen Intelligenz - Goethe ...

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

3 Aussagenlogik<br />

Algorithmus DPLL-Prozedur<br />

E<strong>in</strong>gabe: Klauselmenge C, <strong>die</strong> ke<strong>in</strong>e tautologischen Klauseln enthält<br />

Funktion DPLL(C):<br />

if ∅ ∈ C // C enthält <strong>die</strong> leere Klausel<br />

then return true; // unerfüllbar<br />

endif<br />

if C = ∅ // C ist <strong>die</strong> leere Menge<br />

then return false; // erfüllbar<br />

endif<br />

if C enthält 1-Klausel {L} then<br />

Sei C ′ <strong>die</strong> Klauselmenge, <strong>die</strong> aus C entsteht, <strong>in</strong>dem<br />

(1) alle Klauseln, <strong>die</strong> L enthalten, entfernt werden und<br />

(2) <strong>in</strong> den verbleibenden Klausel alle Literale L entfernt werden<br />

(wobei L = ¬X, wenn L = X und L = X, wenn L = ¬X)<br />

DPLL(C ′ ); // rekursiver Aufruf<br />

endif<br />

if C enthält isoliertes Literal L then<br />

Sei C ′ <strong>die</strong> Klauselmenge, <strong>die</strong> aus C entsteht, <strong>in</strong>dem alle Klauseln, <strong>die</strong> L enthalten,<br />

entfernt werden.<br />

DPLL(C ′ ); // rekursiver Aufruf<br />

endif<br />

// Nur wenn ke<strong>in</strong>er <strong>der</strong> obigen Fälle zutraf:<br />

Wähle Atom A, dass <strong>in</strong> C vorkommt;<br />

return DPLL(C ∪ {{A}}) ∧ DPLL(C ∪ {{¬A}}) // Fallunterscheidung<br />

Dies ist e<strong>in</strong> vollständiges, korrektes Entscheidungsverfahren für <strong>die</strong> (Un-)Erfüllbarkeit<br />

von aussagenlogischen Klauselmengen.<br />

Das Entfernen <strong>der</strong> Klauseln, <strong>die</strong> das Literal aus <strong>der</strong> 1-Klausel enthalten, ((1) im Algorithmus)<br />

entspricht <strong>der</strong> Subsumtion, da <strong>die</strong> 1-Klausel {L} alle Klauseln subsumiert, <strong>die</strong><br />

L enthalten. Das Entfernen <strong>der</strong> 1-Klausel selbst entspricht <strong>der</strong> Vorgehensweise, das entsprechende<br />

Literal L <strong>in</strong> <strong>der</strong> Interpretation wahr zu machen, da jedes Modell <strong>die</strong> 1-Klausel<br />

wahr machen muss.<br />

Das Entfernen <strong>der</strong> Literale L <strong>in</strong> (2) entspricht <strong>der</strong> Resolution <strong>der</strong> jeweiligen Klausel mit<br />

<strong>der</strong> 1-Klausel {L} und anschließen<strong>der</strong> Subsumtion, denn <strong>die</strong> Resolvente subsumiert <strong>die</strong><br />

ursprüngliche Klausel:<br />

{L} {L, L ′ 1 , . . . , L′ n}<br />

{L ′ 1 , . . . , L′ n}<br />

Stand: 25. November 2012 100 M. Schmidt-Schauß & D. Sabel, Skript KI, WS 2012/13

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!