View
238
Download
0
Category
Preview:
Citation preview
8/2/2019 Prolog Final
1/39
Click to edit Master subtitle stylePROLOGin Artificial Intelligence
8/2/2019 Prolog Final
2/39
1. Gi i thi u 2. Cc ki u d li u 3. S ki n & Lu t 4.
Cc m c ngh a 5. V d : con kh & qu chu i
OUTLINE
Nhm sinh vin
Nguy n Thanh Phong 080873 ng Minh Thnh 080890 Nguy n nh Tn 080922
8/2/2019 Prolog Final
3/39
1 GI I THI U Prolog l ngn ng c s d ng ph
bi n nh t trong dng cc ngn ng l p trnh Logic.
Prolog cn c g i l ngn ng l p trnh
k hi u (symbolic programming). Prolog r t thch h p gi i quy t cc bi
ton lin quan n cc i l ng (object) v m i quan h (relation) gi a chng.
8/2/2019 Prolog Final
4/39
1. N u m t ng i gi m (v) khn ngoan th ng i h nh phc.
2. Jim l ng i h nh phc. 3. N u X l cha m c a Y v Y l cha
m c a Z th X l ng c a Z. 4. Tom l ng c a Pat. 5. T t c m i ng i u ch t (ho c
N u ai l ng i th ai ph i ch t). 6. Socrat l ng i.
1 GI I THI U
8/2/2019 Prolog Final
5/39
Socrat c ch t khng ?(T ng ng kh ng nh Socrat ch t ng hay sai ?)
5. T t c m i ng i u ch t (ho c N u ai l ng i th ai ph i ch t).
6. Socrat l ng i.
Socrat ch t!
1 GI I THI U
8/2/2019 Prolog Final
6/39
S Chu i Nguynt
H ng Bi n
Ki u S c p
Ki u Ph c t p
Cc ki u d li u Prolog c xy d ng t cc k t ASCII : Cc ch ci in hoa A, B, ..., Z v ch in
th ng a, b, ..., z.
Cc ch s 0, 1, ..., 9. Cc k t c bi t ch n h n + / < >
2 CC KI U D LI U
Ki u d li u
8/2/2019 Prolog Final
7/39
Ki u h ng s Prolog s d ng c s nguyn v s th c. C php c a cc s nguyn v s th c
r t n gi n, ch ng h n nh cc v d sau :1 1515 0 -973.14 -0.0035 100.2
CC KI U H NG
2.1 KI U D LI U S
C P
8/2/2019 Prolog Final
8/39
2.1 KI U D LI U SC P
Ki u h ng Logic Prolog s d ng hai h ng lgich c gi tr l true v fail.
Thng th ng cc h ng lgich khng c dng nh tham s m c dng nh cc m nh . H ng fail th ng c
dng t o sinh l i gi i bi ton.
CC KI U H NG
8/2/2019 Prolog Final
9/39
2.1 KI U D LI U SC P
Ki u h ng chu i k t (String) Cc h ng l chu i cc k t c t gi a hai d u nhy kp.
"Toto \#\{@ tata" chu i c tu k t "" chu i r ng (empty string) "\"" chu i ch c 1 d u nhy kp.
CC KI U H NG
8/2/2019 Prolog Final
10/39
2.1 KI U D LI U SC P
Ki u h ng nguyn t Cc h ng nguyn t Prolog l chu i k t 1 trong 3 d ng:
Chu i g m ch ci, ch s v k t_ lun lun c b t u b ng m t ch ci in th ng newyork a_, nil x__y, x25 tom_cruise
Chu i cc k t c bi t : , .:., ======>, ::, ==, ...
Chu i t gi a hai d u nhy n(quote) c b t u b ng ch in
hoa, dng phn bi t v i cc tn bi n: ' ' ' '
CC KI U H NG
8/2/2019 Prolog Final
11/39
2.1 KI U D LI U SC P
Tn bi n l m t chu i k t g m ch ci, ch s , b t u b i ch hoa ho c d u g ch d i dng:
X, Y, AResult, List_of_members_x23, _X, _, ...
BI N
8/2/2019 Prolog Final
12/39
2.1 KI U D LI U SC P
Tn bi n l m t chu i k t g m ch ci, ch s , b t u b i ch hoa ho c d u g ch d i dng:
X, Y, AResult, List_of_members_x23, _X, _, ...
BI N
8/2/2019 Prolog Final
13/39
Trong m t ch ng trnh Prolog, ch thch(comment) c t gi a hai c p k hi u /* v */ (t ng t ngn ng C).
/
// y l m t ch thch / /
/ Trong tr ng h p mu n t m t ch thch
ng n sau m i ph n khai bo Prolog cho n h t dng, c th t tr c m t k hi u %.
%%%%%%%%%%%%%%%%%%%%
2.2 CH THCH
8/2/2019 Prolog Final
14/39
3 S KI N & LU T
S ki n Tom l cha m c a Bob c vi t
thnh m t v t Prolog nh sau (ch m nh c k t thc b i m t d u ch m) :parent(tom, bob).
/* Ch khng c d u cch tr c d u m *
S KI N XY D NG S KI N
8/2/2019 Prolog Final
15/39
3.1 S KI N & LU T
T cy gia h trn y, c th ti p t c vi t cc v t khc nh n c m t ch ng trnh Prolog g m 6 v t sau:
parent(pam, bob).parent(tom, bob).parent(tom, liz).
parent(bob, ann).parent(bob, pat).parent(pat, jim).
S KI N XY D NG S KI N
8/2/2019 Prolog Final
16/39
3 S KI N & LU T
V d cu h i Bob c ph i l cha m c aPat c g vo trong h th ng i tho i Prolog (d u nh c ?-_) nh sau :
?- parent(bob, pat).Yes
Ta ti p t c t cu h i khc :
?- parent(liz, pat).No
B i v Prolog khng tm th y s ki n Liz l ng i m c a Pat trong ch ng trnh.
S KI N XY D NG S KI N
8/2/2019 Prolog Final
17/39
3 S KI N & LU T
Ai l cha (hay m ) c a Liz ? ?- parent(X, liz).X = tom
bi t c ai l con c a Bob: ?- parent(bob, X).X = ann ->;
X = patNo. bi t c cu tr l i ti p theo, trong
h u h t cc ci t c a Prolog, NSD ph i g vo m t d u ch m ph y ; sau ->(Arity Prolog) :
S KI N XY D NG S KI N
8/2/2019 Prolog Final
18/39
3 S KI N & LU T
Ta c th ti p t c a ra nh ng cu h i ph c t p h n khc, ch ng h n Ai l ng (b) c a Jim ?
Ai l cha m c a Jim ?Gi s c tn l X
Ai l cha m c a X? Gi s c tn l Y
S KI N XY D NG S KI N
8/2/2019 Prolog Final
19/39
3 S KI N & LU T
Ta c th ti p t c a ra nh ng cu h i ph c t p h n khc, ch ng h n Ai l ng (b) c a Jim ?
Lc ny, c th vi t trong Prolog nh sau :
?- parent(Y, jim), parent(X, Y).
Prolog tr l i :
Y = pat
X = bob
Yes
S KI N XY D NG S KI N
8/2/2019 Prolog Final
20/39
3 S KI N & LU T
By gi ta a vo m t quan h m i child, i ng c v i parent nh sau : child(liz, tom).
T , ta nh ngh a lu t m i nh sau : child(Y, X) :- parent(X, Y). Lu t trn c hi u l :
V i m i X v Y, hay Y l con c a X n u X l cha (hay m ) c a Y.
LU T
8/2/2019 Prolog Final
21/39
3 S KI N & LU T
C s khc nhau c b n gi a s ki n v lu t. M t s ki n, ch ng h n : parent(tom, liz). child(Y, X) :-
parent(X, Y). S ki n l m t i u g lun ng, khng c i u ki n g rng bu c.
Trong khi , cc lu t lin quan n cc
thu c tnh ch c tho mn n u m t s i u ki n no c tho mn. M i lu t bao g m hai ph n: Ph n bn ph i (RHS: Right Hand Side)
ch i u ki n, cn c g i l thn
(body) c a lu t, v
LU T
8/2/2019 Prolog Final
22/39
3 S KI N & LU T
S d ng lu t tm l i gi i Cu h i sau y gi i thch cch Prolog s
d ng cc lu t : Liz c ph i l con c a Tom
khng ??- child(liz, tom)X = tom v Y = liz
Lc ny, ph n i u ki n c gi tr
parent(tom, liz) v tr thnh ch con(sub-goal) Prolog thay th cho ch child(liz, tom).
child(liz, tom):-parent(tom,liz).
Tuy nhin, ch ny tho mn v c gi tr Yes v chnh l s ki n thi t l tron
LU T
8/2/2019 Prolog Final
23/39
4 CC M C NGH A
Ngh a khai bo (declarative signification) Ngh a th t c (procedural signification)
V d : cho m nh P:- Q,R.V i P, Q, v R l cc h ng no .
8/2/2019 Prolog Final
24/39
4 CC M C NGH A
P:- Q,R. Theo ngh a khai bo:
P l ng n u Q v R u ng.
Q v R d n ra P. Theo ngh a th t c:
gi i bi ton P, u tin, gi i bi ton con Q, sau gi i bi ton con R.
xa P, u tin, xa Q, sau xa R.
8/2/2019 Prolog Final
25/39
4.1 GI M NH
M t gi hay b m nh (packages of clause) l t p h p cc m nh c cng tn h ng t chnh (cng tn, cng s l ng tham i)
V d :a(X) :- b(X, _).
a(X) :- c(X), e(X).
a(X) :- f(X, Y).
8/2/2019 Prolog Final
26/39
4.1 GI M NH
Quy c
D u ph y (comma) php h i (conjunction)
VD: P :- Q; R D u ch m ph y (semicolon) php tuy n
(disjunction)VD: P :- Q
P :- R
P :- Q, R; S, T, U
P :- (Q, R); (S, T, U)
8/2/2019 Prolog Final
27/39
4.1 BI TON
Pht bi u bi ton:M t con kh ang tr c c a m t c n phng. Trong phng, chnh gi a tr n c
treo m t qu chu i. Con kh ang i nn tm cch l y qu chu i, nh ng qu chu i l i treo qu cao i v i n. c nh c a s , c t m t ci h p con kh c th tro ln.
Con kh c th th c hi n cc ng tc nh sau: b c i trong phng, nh y ln h p, di chuy n ci h p (n u con kh ng c nh ci h p), v v i l y qu chu i n u n ang
ng trn h p t ng pha d i qu chu i.
CON KH V QU CHU I
8/2/2019 Prolog Final
28/39
4.1 BI TON
Cu h i t ra l con kh c n c qu chu i hay khng?
CON KH V QU CHU I
8/2/2019 Prolog Final
29/39
4.1 BI TON
Bi u di n bi ton d i d ng tr ng thi
V d : tr ng thi ban u c a con kh xc
nh b i: (1) Con kh ang tr c c a (to the door)(2) Con kh ang trn sn nh (on the
floor)(3) Ci h p ang c nh c a s (to the window)(4) Con kh ch a l y c qu chu i (not
have)
CON KH V QU CHU I
8/2/2019 Prolog Final
30/39
4.1 BI TONCON KH V QU CHU I
tothedoor
onthefloor
state
tothewindow
nohave
(1)V tr
n m ngang
(2)V tr
th ng ng
(3)V tr
ci h p
(4)Ch d n
8/2/2019 Prolog Final
31/39
4.1 BI TON
Gi i bi ton v i prolog Tr ng thi ch: state (_, _, _, possessing) Cc ki u ng tc (movement):
(1) N m l y qu chu i (grap) (2) Tro ln h p (climbing) (3) y ci h p (pushing) (4) Di chuy n (walking)
Displacement (state1, Movement, state2)
CON KH V QU CHU I
state 1 state 2movement
8/2/2019 Prolog Final
32/39
4.1 BI TON
Hnh ng n m l y qu chu i
displacement(
CON KH V QU CHU I
state(tothecenter, onthebox,tothecenter, nothave),
).
Tr c khi hnh ng
Hnh ng
Sau khi hnh ng
grab,
state(tothecenter, onthebox,tothecenter, possessing)
8/2/2019 Prolog Final
33/39
4.1 BI TON
Hnh ng di chuy n t P1 n P2
displacement(state(P1, onthefloor, G, H),walking(P1, P2),state(P2, onthefloor, G, H)
).
CON KH V QU CHU I
8/2/2019 Prolog Final
34/39
4.1 BI TON
Hnh ng y ci h p t P1 n P2
displacement(state(P1, onthefloor, P1, H),pushing(P1, P2),state(P2, onthefloor, P2, H)
).
CON KH V QU CHU I
8/2/2019 Prolog Final
35/39
4.1 BI TON
Hnh ng tro ln h p
displacement(state(P, onthefloor, P, H),climbing,state(P, onthebox, P, H)
).
CON KH V QU CHU I
8/2/2019 Prolog Final
36/39
4.1 BI TON
b t k tr ng thi con kh c th l y
c qu chu i khng? V t : couldtake(S)
CON KH V QU CHU I
8/2/2019 Prolog Final
37/39
4.1 BI TON
couldtake(S) (1) V i tr ng thi S con kh l y c qu
chu i, v t couldtake c gi tr true Couldtake(state(_, _, _, possessing)).
CON KH V QU CHU I
8/2/2019 Prolog Final
38/39
4.1 BI TON
(2) Cc tr ng h p khc, c n th c hi n m t ho c nhi u hnh ng. Xu t pht t tr ng thi S1, con kh c th l y c qu
chu i n u t n t i m t s l n hnh ng M no t S1 n m t tr ng thi S2 sao cho tr ng thi S2, con kh c th l y c qu chu i.
couldtake(S1) :-displacement(S1, M, S2),couldtake(S2).
CON KH V QU CHU I
8/2/2019 Prolog Final
39/39
4.1 BI TON
displacement(state(tothecenter, onthebox, tothecenter,nothave),grab,state(tothecenter, onthebox, tothecenter,
possessing)).displacement(
state(P, onthefloor, P, H),climbing,state(P, onthebox, P, H)).
CON KH V QU CHU I
displacement(state(P1,
onthefloor, P1, H),pushing(P1, P2),state(P2,onthefloor, P2, H)).
displacement(
couldtake(state(_, _, _,possessing)).couldtake(State1) :-
displacement(State1,Move, State2),
couldtake(State2).
Source
Recommended