Grundlagen der Logik und Logikprogrammierung
Grundlagen der Logik und Logikprogrammierung
Grundlagen der Logik und Logikprogrammierung
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
2. Prolog<br />
Programmieren durch Deklaration logischer Zusammenhänge <strong>und</strong> Anfragen nach <strong>der</strong>en Konsequenz.<br />
Im folgenden werden schrittweise die Versionen von Prolog aufeinan<strong>der</strong> aufbauend definiert.<br />
2.1. Version 0<br />
Die Version 0 ist im Prinzip eine Teilmenge <strong>der</strong> Aussagenlogik. Zunächst müssen wir definieren, wie<br />
die Deklaration <strong>der</strong> logischen Zusammenhänge denn aussehen soll:<br />
Definition: definite Klausel, Zielklausel, Hornklausel<br />
Eine Klausel D (bestehend aus einer Menge von Literalen) ist definit, wenn D genau ein positives<br />
Literal enthält. Enthält sie gar kein positives Literal, so ist sie eine Zielklausel. In beiden Fällen<br />
spricht man auch von einer Hornklausel.<br />
2.1.1. Schreibweise:<br />
def. Klausel tA 0 , ␣A 1 , . . . , ␣A n u ” A 0 Ð A 1 , . . . , A n<br />
Zielklausel t␣A 1 , . . . , ␣A n u ”Ð A 1 , . . . , A n<br />
Beispiel: allgemeine Klausel<br />
jľ<br />
t␣A 1 , . . . , ␣A j , B 1 , . . . , B k u ” A p Ñ<br />
kł<br />
B i<br />
p“1 i“1<br />
Das schöne an den Horn-Klauseln ist, dass es für eine gegebene Menge von Voraussetzungen nur<br />
eine Konsequenz gibt, nicht eine Menge von Konsequenzen von denen womöglich nur eine Wahr ist.<br />
Sobald eine Konsequenz nicht mehr per Definition eindeutig sein muss, wird die Berechnung um einiges<br />
aufwändiger. Dies ist <strong>der</strong> Kern warum das SAT-Problem NP-Hart ist.<br />
Definition: Programm, Anfrage<br />
Ein Programm ist eine endliche Menge P von definiten Klauseln (Regeln bzw. Fakten falls n=0).<br />
Eine Anfrage ist eine Zielklausel Q “Ð A 1 , . . . , A n<br />
Der Prolog-Interpreter versucht zu zeigen, dass P Y tQu unerfüllbar ist, d.h. dass P ( ␣Q.<br />
Beispiel: Regenwetter<br />
15