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.

$<br />

Wet Ð Rain, NoUmbrella<br />

Rain Ð Monday<br />

’&<br />

P “ Confused Ð Monday<br />

NoUmbrella Ð Confused<br />

’%<br />

Monday<br />

Q “Ð Wet “ K Ð Wet<br />

Antwort: ja, d.h. P ( ␣Q, d. h. P ( Wet<br />

2.2. Version 1<br />

In Version 1 werden Atome zu n-stelligen Prädikaten A – P pE 1 , . . . , E n q erweitert. E 1 , . . . , E n heißen<br />

Terme, wobei ein Term E – X|c entwe<strong>der</strong> eine Variable (X, groß geschrieben) o<strong>der</strong> eine Konstante (c,<br />

klein geschrieben) ist.<br />

Const(X) ist die Menge <strong>der</strong> in X vorkommenden Konstanten.<br />

Vars(X) ist die Menge <strong>der</strong> in X vorkommenden Variablen.<br />

Prolog funktioniert nach <strong>der</strong> sog. closed world assumption (CWA), d.h. wenn eine Aussage A aus einem<br />

Programm P nicht explizit folgt, z.B. weil A überhaupt nicht erwähnt wird, so gilt A auch nicht.<br />

Lies Klauseln als universellen Abschluss: Vars(D) = tX 1 , . . . , X n u : @tX 1 , . . . , X n u.D<br />

Der universelle Abschluss ist also <strong>der</strong> „fancy-Begriff“ für die Tatsache, dass eine Klausel wahr ist, wenn<br />

alle Terme in ihr wahr sind.<br />

Beispiel: Verwandtschaften<br />

$<br />

Vater(Hans, Paula)<br />

’& Mutter(Paula, Fritz)<br />

P “<br />

Großvater(X, Y) Ð Vater(X, Z), Vater(Z, Y)<br />

’% Großvater(X, Y) Ð Vater(X, Z), Mutter(Z, Y)<br />

Q 1 “Ð Großvater(Hans, Fritz): Ja<br />

Q 2 “Ð Großvater(Hans, Paula): Nein, da sich diese Aussage nicht aus dem Programm ableiten<br />

lässt (CWA).<br />

2.2.1. Semantik per Reduktion auf Version 0:<br />

Die Idee <strong>der</strong> Reduktion auf Version 0 (2.1) ist, alle Variablen auszusubstituieren durch die im Programm<br />

vorkommenden – endlich vielen – Konstanten, <strong>und</strong> diese dann wie in Version 0 vorkommende<br />

Konstanten zu behandeln.<br />

Wir nennen ein Atom ApP, . . . q abgeschlossen (gro<strong>und</strong>), wenn Vars(A) “ H, also wenn A keine Variablen<br />

enthält.<br />

Für die Substitution σ : V arspDq Ñ ConstpP q gilt: Dσ (engl. gro<strong>und</strong> instance, deutsch: ??) ist die<br />

Klausel, die aus D durch simultane Ersetzung aller X in D durch σpXq entsteht.<br />

Wir schreiben rc 1 {X 1 , . . . , c n {X n s für die Substitution σ mit σpX i q “ c i @ i.<br />

16

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!