04.11.2014 Aufrufe

Grundlagen der Logik und Logikprogrammierung

Grundlagen der Logik und Logikprogrammierung

Grundlagen der Logik und Logikprogrammierung

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.

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

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!