Download presentation
Published byAlexander Hernandez Modified over 11 years ago
1
Visualisierung der Funktionsweise des Programms auf S. 9 des Skripts
Prof. Dr. Herbert Göttler Johannes Gutenberg-Universität, Mainz
2
Ein abstraktes Prolog-Programm
r(a,b). r(b,d). p(a,a). p(X,Y) :- q(X,Z), r(Z,Y). q(a,b). Abfrage: ?- p(A,B).
3
Ein abstraktes Prolog-Programm
r(a,b). r(b,d). p(a,a). p(X,Y) :- q(X,Z), r(Z,Y). q(a,b). Wann ist das wahr? Abfrage: ?- p(A,B).
4
Ein abstraktes Prolog-Programm
r(a,b). r(b,d). p(a,a). p(X,Y) :- q(X,Z), r(Z,Y). q(a,b). p(A├ ..., B├ ...) Abfrage: ?- p(A,B).
5
Ein abstraktes Prolog-Programm
r(a,b). r(b,d). p(a,a). p(X,Y) :- q(X,Z), r(Z,Y). q(a,b). p(A├ ..., B├ ...) p(a,a). Abfrage: ?- p(A,B).
6
Ein abstraktes Prolog-Programm
r(a,b). r(b,d). p(a,a). p(X,Y) :- q(X,Z), r(Z,Y). q(a,b). p(A├ ..., B├ ...) p(a,a). p(a,a) Abfrage: ?- p(A,B).
7
Ein abstraktes Prolog-Programm
r(a,b). r(b,d). p(a,a). p(X,Y) :- q(X,Z), r(Z,Y). q(a,b). p(A├ ..., B├ ...) p(a,a). p(a,a) Abfrage: ?- p(A,B).
8
Ein abstraktes Prolog-Programm
r(a,b). r(b,d). p(a,a). p(X,Y) :- q(X,Z), r(Z,Y). q(a,b). p(A├ a, B├ a) p(a,a). p(a,a) Abfrage: ?- p(A,B).
9
Ein abstraktes Prolog-Programm
r(a,b). r(b,d). p(a,a). p(X,Y) :- q(X,Z), r(Z,Y). q(a,b). p(A├ a, B├ a) p(a,a). p(a,a) Abfrage: ?- p(A,B). A=a B=a
10
Ein abstraktes Prolog-Programm
r(a,b). r(b,d). p(a,a). p(X,Y) :- q(X,Z), r(Z,Y). q(a,b). p(A├ a, B├ a) p(a,a). p(a,a) Abfrage: ?- p(A,B). A=a B=a ;
11
Ein abstraktes Prolog-Programm
r(a,b). r(b,d). p(a,a). p(X,Y) :- q(X,Z), r(Z,Y). q(a,b). p(A├ X1, B├ Y1) p(X,Y) :- q(X,Z), r(Z,Y). p(a,a) q(X1├ ..., Z1├ ...) r(Z1├ ..., Y1├ ...) , Abfrage: ?- p(A,B). p(a,a). ;
12
Ein abstraktes Prolog-Programm
r(a,b). r(b,d). p(a,a). p(X,Y) :- q(X,Z), r(Z,Y). q(a,b). p(A├ X1, B├ Y1) p(a,a) q(X1├ ..., Z1├ ...) r(Z1├ ..., Y1├ ...) , q(a,b). Abfrage: ?- p(A,B). A=a B=a ;
13
Ein abstraktes Prolog-Programm
r(a,b). r(b,d). p(a,a). p(X,Y) :- q(X,Z), r(Z,Y). q(a,b). p(A├ X1, B├ Y1) p(a,a) q(X1├ ..., Z1├ ...) r(Z1├ ..., Y1├ ...) , q(a,b). Abfrage: ?- p(A,B). A=a B=a ; q(a,b)
14
Ein abstraktes Prolog-Programm
r(a,b). r(b,d). p(a,a). p(X,Y) :- q(X,Z), r(Z,Y). q(a,b). p(A├ X1, B├ Y1) p(a,a) q(X1├ a, Z1├ b) r(Z1├ ..., Y1├ ...) , q(a,b). Abfrage: ?- p(A,B). A=a B=a ; q(a,b)
15
Ein abstraktes Prolog-Programm
r(a,b). r(b,d). p(a,a). p(X,Y) :- q(X,Z), r(Z,Y). q(a,b). r(a,b). p(A├ X1, B├ Y1) p(a,a) q(X1├ a, Z1├ b) r(Z1├ b, Y1├ ...) , Abfrage: ?- p(A,B). A=a B=a ; q(a,b) r(a,b)
16
Ein abstraktes Prolog-Programm
r(a,b). r(b,d). p(a,a). p(X,Y) :- q(X,Z), r(Z,Y). q(a,b). r(a,b). p(A├ X1, B├ Y1) p(a,a) q(X1├ a, Z1├ b) r(Z1├ b, Y1├ ...) , Abfrage: ?- p(A,B). A=a B=a ; q(a,b) r (a,b)
17
Ein abstraktes Prolog-Programm
r(a,b). r(b,d). p(a,a). p(X,Y) :- q(X,Z), r(Z,Y). q(a,b). p(A├ X1, B├ Y1) r(b,d). p(a,a) q(X1├ a, Z1├ b) r(Z1├ b, Y1├ ...) , Abfrage: ?- p(A,B). A=a B=a ; q(a,b) r (b, d)
18
Ein abstraktes Prolog-Programm
r(a,b). r(b,d). p(a,a). p(X,Y) :- q(X,Z), r(Z,Y). q(a,b). p(A├ X1, B├ Y1) r(b,d). p(a,a) q(X1├ a, Z1├ b) r(Z1├ b, Y1├ d) , Abfrage: ?- p(A,B). A=a B=a ; q(a,b) r (b, d)
19
Ein abstraktes Prolog-Programm
r(a,b). r(b,d). p(a,a). p(X,Y) :- q(X,Z), r(Z,Y). q(a,b). p(A├ a, B├ d) r(b,d). p(a,a) q(X1├ a, Z1├ b) r(Z1├ b, Y1├ d) , Abfrage: ?- p(A,B). A=a B=a ; q(a,b) r (b, d)
20
Ein abstraktes Prolog-Programm
r(a,b). r(b,d). p(a,a). p(X,Y) :- q(X,Z), r(Z,Y). q(a,b). p(A├ a, B├ d) r(b,d). p(a,a) q(X1├ a, Z1├ b) r(Z1├ b, Y1├ d) , Abfrage: ?- p(A,B). A=a B=a ; A=a B=d q(a,b) r (b, d)
21
Ähnlich f(X,2,Z) = f(1,Y,3). führt zur Systemantwort X=1 Z=3 Y=2
22
Ähnlich f(X,2,Z) = f(1,Y,p(X)). führt zur Systemantwort X=1 Z=p(1) Y=2
23
Matching und Unifikation
Man kann beim Mustervergleich (Matching) zwei Muster S und T nur unter folgenden Bedingungen zur Übereinstimmung bringen (Unifikation): Wenn S und T Konstante sind, dann müssen sie gleich sein Ist S irgendeine Variable und T irgendein Term, dann passen sie immer und S wird zu T „instanziiert“.
24
Matching und Unifikation
Wenn S und T strukturierte Objekte, dann passen sie nur dann, wenn sie im sog. ersten Funktor übereinstimmen (hier das f ) und der Rest wie vorangehend beschrieben korrespondiert Die resultierende Instanziierung wird durch den Mustervergleich der Komponenten festgelegt, (im Beispiel u.a. das X)
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.