Professional Documents
Culture Documents
Tailieu-TriTueNhanTao New1 PDF
Tailieu-TriTueNhanTao New1 PDF
TR TU NHN TO
ARTIFICIAL INTELLIGENCE
H ni, 2011
MC LC
Chng 1 Gii thiu ...............................................................................................5
1.
Tr tu nhn to l g? ......................................................................................................... 5
2.
Lch s ................................................................................................................................ 6
3.
Cc lnh vc ca AI ............................................................................................................ 7
4.
Ni dung mn hc............................................................................................................... 9
2.
3.
4.
Cc gii thut tm kim khng c thng tin phn hi (tm kim m)............................... 18
2.
3.
Cy tr chi y ........................................................................................................... 37
2.
3.
4.
2.
3.
4.
2.
3.
4.
5.
6.
7.
8.
9.
Kt chng........................................................................................................................ 70
2.
3.
4.
5.
6.
7.
8.
2.
3.
Cu truy vn...................................................................................................................... 97
4.
5.
6.
7.
8.
2. Lch s
Vo nm 1943, Warren McCulioch v Walter Pitts bt u thc hin nghin cu ba c s
l thuyt c bn: trit hc c bn v chc nng ca cc noron thn kinh; phn tch cc
mnh logic; v l thuyt d on ca Turing. Cc tc gi nghin cu xut m
hnh noron nhn to, mi noron c trng bi hai trng thi bt, tt v pht hin
mng noron c kh nng hc.
3. Cc lnh vc ca AI
Lp lun, suy din t ng: Khi nim lp lun (reasoning), v suy din (reference)
c s dng rt ph bin trong lnh vc AI. Lp lun l suy din logic, dng ch
mt tin trnh rt ra kt lun (tri thc mi) t nhng gi thit cho (c biu din
di dng c s tri thc). Nh vy, thc hin lp lun ngi ta cn c cc phng
php lu tr c s tri thc v cc th tc lp lun trn c s tri thc .
4. Ni dung mn hc
Gio trnh ny c vit vi cc ni dung nhp mn v AI cho cc sinh vin chuyn
ngnh Tin hc v Cng ngh thng tin. Cc tc gi c tham kho mt s ti liu, gio
trnh ca cc trng i hc Quc gia H ni, i hc Bch khoa H ni, Ni dung
gm cc phn sau:
Chng 1. Gii thiu: trnh by tng quan v AI, lch s ra i v pht trin v cc lnh
vc ng dng ca AI.
Chng 2. Cc phng php tm kim li gii: trnh by cc k thut tm kim c bn
c p dng gii quyt cc vn v c p dng rng ri trong cc lnh vc ca tr
tu nhn to.
Chng 3. Cc gii thut tm kim li gii cho tr chi: trnh by mt s k thut tm
kim trong cc tr chi c i th.
Chng 4. Cc phng php lp lun trn logic mnh : trnh by c php, ng ngha
ca logic mnh v mt s thut ton lp lun trn logic mnh .
Chng 5. Cc phng php lp lun trn logic v t cp mt: trnh by c php, ng
ngha ca logic v t cp mt v mt s thut ton lp lun c bn trn logic v t cp
mt.
Chng 6. Prolog: Gii thiu chung v ngn ng Prolog, c php, ng ngha v cu trc
chng trnh trong Prolog, mt s phin bn mi ca Prolog nh SWI Prolog,
Chng 7. Lp lun vi tri thc khng chc chn: Gii thiu v tri thc khng chc chn
v mt s cch tip cn biu din v x l tri thc khng chc chn.
Chng 8. Hc mng noron nhn to: Gii thiu v phng php v cc k thut c bn
trong lp lun s dng mng noron nhn to.
3l
5l
9l
// c ba can u rng
// can th 3 cha 7 lt nc
- Php chuyn trng thi: t trng thi (a,b,c) c th chuyn sang trng thi (x,y,z) thng
qua cc thao tc nh lm rng 1 can, chuyn t can ny sang can kia n khi ht nc
can ngun hoc can ch b y.
- Chi ph mi php chuyn trng thi: mi php chuyn trng thi c chi ph l 1.
ch
ch
Trng thi u
Trng thi ch
Biu din trng thi: mng 2 chiu kch thc 3x3, phn t ca mng lu s hiu qun
c (t 0 n 9, 0 l v tr trng). Cng c th biu din trng thi bn c bng mng
mt chiu gm 9 phn t: ba phn t u tin biu din cc thuc dng u tin ca
bn c, ba phn t tip biu din cc qun c thuc dng th hai, ba phn t cui
cng biu din cc qun c thuc dng cui cng. y chng ti s dng mng hai
chiu 3x3 cho ging vi bn c trn thc t.
LEFT, LEFT, UP, RIGHT, DOWN, RIGHT, DOWN (ch : up, down, right, left l biu
din s dch chuyn trng ln trn, xung di, sang phi, sang tri)
c. Bi ton tm ng i
Chi ph: khong cch gia 2 thnh ph trong php chuyn trng thi
Li gii ca bi ton l dy cc php chuyn t trng thi u n trng thi ch, hay l
ng i t thnh ph u n thnh ph ch. Mt v d ca li gii bi ton l: Arad
Sibiu Fagaras Bucharest.
pht trin bng cch b sung vo cc nt lin k vi trng thi u, sau lin tip b
sung vo cc con ca cc nt l,
Lc chung tm li gii ca bi ton 4 thnh phn trn l xy dng cy li gii tim
nng (hay l cy tm kim) v kim tra li gii tim nng c l li gii thc s ca bi
ton hay khng. Cc bc ca gii thut chung l nh sau: xy dng cy tm kim m nt
gc l trng thi u, lp li 2 bc: kim tra xem trng thi ang xt c l trng thi ch
khng, nu l trng thi ch th thng bo li gii, nu khng th m rng cy tm kim
bng cch b sung cc nt con l cc trng thi lng ging ca trng thi ang xt. Gii
thut chung c trnh by trong bng sau:
u vo ca gii thut l bi ton (problem) vi 5 thnh phn (biu din trng thi tng
qut, trng thi u, trng thi ch, php chuyn trng thi, chi ph php chuyn trng
thi) v mt chin lc tm kim (strategy); u ra ca gii thut l mt li gii ca bi
ton hoc gi tr failure nu bi ton khng c li gii. Gii thut sinh ra cy cc li gii
tim nng, nt gc l trng thi u ca bi ton, m rng cy theo chin lc (strategy)
nh trc n khi cy cha nt trng thi ch hoc khng th m rng cy c na.
Function General_Search(problem, strategy) returns a solution, or failure
cy-tm-kim trng-thi-u;
while (1)
{
if (cy-tm-kim khng th m rng c na) then return failure
nt-l Chn-1-nt-l(cy-tm-kim, strategy)
if (node-l l trng-thi-ch) then return ng-i(trng-thi-u, nt-l)
else m-rng(cy-tm-kim, cc-trng-thi-k(nt-l))
}
Trong gii thut chung ny, chin lc tm kim (strategy) s quyt nh vic chn nt l
no trong s nt l ca cy m rng cy tm kim, v d nh nt l no xut hin trong
cy sm hn th c chn trc pht trin cy (y l chin lc tm kim theo chiu
phc tp thi gian v phc tp khng gian ca gii thut tm kim li gii ca bi
ton c th nh gi da trn kch thc u vo ca gii thut. Cc tham s kch thc
u vo c th l:
-
m su ti a ca cy tm kim (m c th l v hn)
Chng ta s minh ha vic tm kim li gii bng gii thut tm kim theo chiu rng
bng v d c th nh sau. Gi s bi ton c khng gian cc trng thi y nh hnh
v ngay sau bng gii thut (trang sau), vi trng thi u l S, trng thi ch l G v cc
php chuyn trng thi l cc cung ni gia cc trng thi. Gii thut bt u xt vi hng
i cha trng thi u S, ly trng thi u hng i ra kim tra xem n c l trng
thi ch, nu l ch th in li gii, nu khng th b sung cc trng thi con ca n vo
hng i.
Function Breadth-Search(problem, Queue) returns a solution, or failure
Queue make-queue(make-node(initial-state[problem]));
father(initial-state[problem]) = empty;
while (1)
if Queue is empty then return failure;
node = pop(Queue) ;
if test(node,Goal[problem]) then return path(node,father);
expand-nodes adjacent-nodes(node, Operators[problem]);
push(Queue, expand-nodes );
foreach ex-node in expand-nodes
father(ex-node) = node;
end
Bng pha di l din bin cc bin chnh ca gii thut: bin trng thi ang xt node,
bin hng i Queue, bin lu thng tin v cy tm kim Father. Gii thut kt thc
vi 8 vng lp khi trng thi ang xt node = G v khi li gii ca bi ton l ng i
G B S.
node
Queue
Father
S
S
A, B, C
Father[A,B,C]=S
B, C, D, E
Father[D,E]=A
C,D,E,G
Father[G]=B
D, E, G, F
Father[F]=C
E,G, F, H
Father[H]=D
G, F, H
F, H
Gi tr cc bin trong
gii thut theo chiu rng
d
b
Stack
father
S
S
A, B, C
Father[A,B,C]=S
D, E, B, C
Father[D,E]=A
H, E, B, C
Father[H]=D
E, B, C
G, B, C
Father[G]=E
G
Gi tr cc bin trong
gii thut theo chiu su
d. Tm kim su dn
Gii thut tm kim vi chiu su c gii hn trn ph thuc vo gii hn su la
chn ban u. Nu bit trc trng thi ch s xut hin trong phm vi su no ca
cy tm kim th chng ta t gii hn su cho gii thut. Tuy nhin nu chn
su ti a khng ph hp, gii thut tm kim theo chiu su c gii hn s khng tm
c li gii ca bi ton. Chng ta c th gi thc hin gii thut tm kim li gii
su khc nhau, t b n ln. Gii thut b sung nh sau:
Function Iterative-deepening-Search(problem) returns a solution, or failure
for depth = 0 to do
result Depth-Limited-Search(problem, depth)
if result succeeds then return result
end
return failure
V tr trn n
V tr trn bn
c ch
(3,3)
(1,3)
(2,3)
(2,3)
(3,2)
(3,3)
(1,1)
(1,2)
(1,3)
(2,2)
(3,1)
(3,2)
(1,2)
(1,1)
(2,1)
(2,1)
h(n) = 2 + 0 + 1 + 1 + 2 + 1 + 1 + 0 = 8
Hm h(n) nh m t trn phn nh s khc nhau gia trng thi n vi trng thi ch,
h(n) cng nh th n cng ging vi trng thi ch, khi n trng vi trng thi ch th
h(n) = 0.
Khi khng gian bi ton qu ln, vic m rng cy theo chin lc theo chiu rng hoc
theo chiu su dn n cy tm kim qu ln m khng cha li gii ca bi ton. Khi
chng ta cn m rng cy theo hng cc nt l c nhiu trin vng cha trng thi ch,
v hm h(n) s gip chng ta m rng cy. Chng ta s m rng cy theo hng cc nt
l c hm h(n) nh nht. Khi h c gi l thng tin phn hi ca qu trnh m rng
cy l c hp l hay khng (v th m cc phng php tm kim trong mc ny gi l
tm kim c phn hi - informed search, chng cng c tn l tm kim heuristic - da
trn hm nh gi hp l h).
m rng cy theo nt l c gi tr h nh nht, chng ta s dng mt cu trc d liu l
danh sch (list) c sp xp theo gi tr h. Gii thut chi tit c trnh by trong bng sau
(c gi l gii thut Best-First-Search):
Ch rng, cu trc gii thut ny ging vi cc gii thut tm kim theo chiu rng hay
theo chiu su, ch khc ch, thay v s dng hng i hay ngn xp lu gi cc
trng thi l ca cy tm kim, chng ta s dng danh sch sp xp theo gi tr hm h.
Danh sch sp xp tng hay gim ph thuc vo hm h v ng cnh ca bi ton, v d
bi ton 8 s v hm h nh ngha trn, danh sch cn sp xp theo th t tng dn
khi ly phn t u danh sch ta c c nt l gn vi ch nht.
Hnh v sau minh ha vic m rng cy tm kim khi s dng gii thut trn:
A 20
15
E 7
6
10
Cy tm kim leo i
Hn ch ca thut ton :
- Gii thut c khuynh hng b sa ly nhng cc i cc b:
+ Li gii tm c khng ti u
+ Khng tm c li gii mc d c tn ti li gii
- Gii thut c th gp vng lp v hn do khng lu gi thng tin v cc trng thi
duyt.
* Tm kim Beam
hn ch khng gian tm kim, ngi ta a ra phng php tm kim Beam. y
l phng php tm kim theo chiu rng nhng c hn ch s nh pht trin mi
mc. Trong tm kim theo chiu rng, ti mi mc ta pht trin tt c cc nh, cn
tm kim Beam th chn k nh tt nht pht trin. Cc nh ny c xc nh bi
hm nh gi. V d, vi th khng gian trng thi nh hnh 2.2 v ly k=2 th cy
tm kim Beam nh hnh 2.5. Cc nh c chn mi mc l cc nh c t mu
:
A 20
15
E 7
K
10
B
0
12
Cy tm kim Beam
* Tm kim nhnh cn
tng : thut ton tm kim leo i kt hp vi hm nh gi f(u). Ti mi bc,
khi pht trin trng thi u, chn trng thi con v tt nht (f(v) nh nht) ca u pht
trin bc sau. Qu trnh tip tc nh vy cho n khi gp trng thi w l ch, hoc
w khng c nh k, hoc w c f(w) ln hn di ng i ti u tm thi (ng i
y ngn nht trong s nhng ng i y tm c). Trong cc trng hp
ny, chng ta khng pht trin nh w na, tc l ct b nhng nhnh xut pht t w,
v quay ln cha ca w tip tc i xung trng thi tt nht trong s nhng trng
thi cn li cha c pht trin.
Procedure Branch-and-Bound;
Begin
1. Khi to ngn xp S ch cha trng thi u;
Gn gi tr ban u cho cost; /*cost l gi tr ng i ti u tm thi*/
2. Loop do
2.1 If S rng then {thng bo tht bi; stop};
2.2 Ly trng thi u u ngn xp S;
D
E
K
B
I
B
nh con
(v)
C
D
E
F
H
E
K
I
B
K
B
g(v)
f(v)
nh
chn
9
9+15=24
7
7+6=13
13
13+8=21
20
20+7=27
7+8=15
15+10=25
7+4=11
11+8=19
11+4=15
15+2=17
11+3=14
14+4=18
15+6=21
21+0=21
cost := 21
14+9=23
23+2=25
14+5=19
19+0=19
cost := 19
D
A
14
E
K
I
27
F
13
21
25
E
24
19
17
21
I 18
19
K 25
Cy tm kim nhnh-cn
1. Cy tr chi y
Cc tr chi c i th c cc c im: hai ngi thay phin nhau a ra cc nc i
tun theo cc lut ca tr chi (cc nc i hp l), cc lut ny l nh nhau i vi c
hai ngi chi, chng hn cc tr chi c: c vua, c tng, c ca r (tic-tc-toe), . V
d, trong chi c vua, mt ngi iu khin qun Trng v mt ngi iu khin qun
en. Ngi chi c th la chn cc nc i theo cc lut vi cc qun tt, xe, m,
Lut i qun tt Trng, xe Trng, m Trng, ging lut i qun tt en, xe en, m
en,Hn na, c hai ngi chi u bit y cc thng tin v tnh th cuc chi.
Thc hin tr chi l ngi chi tm kim nc i tt nht trong s rt nhiu nc i hp
l, ti mi lt chi ca mnh, sao cho sau mt dy nc i thc hin ngi chi phi
thng cuc.
Vn chi c c th c biu din trong khng gian trng thi, , mi trng thi l
mt tnh th ca cuc chi (s sp xp cc qun c trn bn c):
-
Nh vy, trong cc tr chi c i th, ngi chi (iu khin qun Trng gi tt l
Trng) lun tm mt dy cc nc i xen k vi cc nc i ca i th (iu khin qun
en gi tt l en) to thnh mt ng i t trng thi ban u n trng thi kt
thc l thng cho Trng.
Khng gian tm kim i vi cc tr chi ny c th c biu din bi cy tr chi nh
sau: gc ca cy ng vi trng thi xut pht, cc nh trn cy tng ng vi cc trng
thi ca bn c, cc cung (u, v) nu c bin i t trng thi u n trng thi v. Cc nh
trn cy c gn nhn l nh Trng (en) ng vi trng thi m qun Trng (en) a
ra nc i. Nu mt nh u c gn nhn l Trng (en) th cc nh con v ca n l tt
c cc trng thi nhn c t u do Trng (en) thc hin mt nc i hp l no . Do
, cc nh trn cng mt mc ca cy u c nhn l Trng hoc u c nhn l en,
cc l ca cy ng vi trng thi kt thc.
V d: tr chi Dodgem:
C hai qun Trng v hai qun en c xp vo bn c
3x3. Ban u cc qun c c xp nh hnh bn. Qun
en c th i n trng bn phi, trn hoc di.
Qun Trng c th i n trng bn trn, bn tri hoc
bn phi. Qun en nu ct ngoi cng bn phi c th
i ra khi bn c, qun Trng nu hng trn cng c th
i ra khi bn c. Ai a c c hai qun ca mnh ra
khi bn c hoc to ra tnh th m i phng khng i
c l thng cuc.
Tr chi Dodgem
en
Trng
en
35
40
-10
-25
-40
15
20
25
-5
-20
-35
10
-15
-30
Ngoi ra, nu qun Trng cn trc tip mt qun en, n c thm 40 im, nu cn
gin tip c thm 30 im (xem hnh di). Tng t, nu qun en cn trc tip qun
Trng n c thm -40 im, cn gin tip c thm -30 im.
c thm 40 im
c thm 30 im
Gi tr hm nh gi:75=
Gi tr hm nh gi:-5=
(-10+0+5+10)+(40+30)
(-25+0+20+10)+(-40+30)
b) Thut ton
hn ch khng gian tm kim, khi xc nh nc i cho Trng ti u, ta ch xem xt cy
gc u ti cao h no . p dng th tc Minimax cho cy tr chi gc u, cao h v
s dng hm nh gi xc nh gi tr cho cc l ca cy.
Procedure Minimax(u, v, h);
begin
val -;
for mi w l nh con ca u do
if val(u) <= MinVal(w, h-1) then
{val MinVal(w, h-1); v w}
end;
--------------------------------------------------Function MinVal(u, h); {hm xc nh gi tr cho cc nh en}
begin
if u l nh kt thc or h = 0 then MinVal(u, h) eval(u)
else MinVal(u, h) min{MaxVal(v, h-1) | v l nh con ca u}
end;
--------------------------------------------------Function MaxVal(u, h); { hm xc nh gi tr cho cc nh Trng}
begin
if u l nh kt thc or h =0 then MaxVal(u, h) eval(u)
else MaxVal(u, h) max{MinVal(v, h-1) | v l nh con ca u}
end;
min
max
Ct b cy con gc a nu eval(u)>eval(v)
Khi ta c gi tr nh Trng c t nht l gi tr ca u, gi tr ca nh en b nhiu nht
l gi tr ca v. Do , nu eval(u) > eval(v) ta khng cn i xung nh gi nh a
na m vn khng nh hng n nh gi nh c. Hay ni cch khc, ta c th ct b
cy con gc a.
Lp lun tng t cho trng hp a l nh en, trng hp ny nu eval(u)<eval(v) ta
cng ct b cy con gc a.
ci t k thut ny, i vi cc nh nm trn ng i t gc ti nh hin thi, ta
s dng tham s ghi li gi tr ln nht trong cc gi tr ca cc nh con nh gi
max{, MinVal(v, , )} ;
If >= then exit};
/*ct b cc cy con t cc nh v cn li */
MaxVal(u, , )
end;
Hy t trn bn c 8 qun hu sao cho khng c hai qun hu no cng hang hoc cng
ct hoc cng ng cho.
Bi ton 8 qun hu c th biu din bi 5 thnh phn nh sau:
-
Trng thi: mng mt chiu 8 phn t HAU[0,1,,7], phn t HAU[i] biu din dng
t con hu ct i. V d HAU[i]=j c ngha l con hu ct I t dng j.
Tp rng buc: vi ij th HAU[i] HAU[j] (khng c hai con hu cng hng ngang),
i-HAU[i] j-HAU[j] (khng c hai con hu no cng ng cho ph); i+HAU[i]
j+HAU[j] (khng c hai con hu no cng ng cho chnh)
Li gii ca bi ton l mt php gn gi tr trong min gi tr cho cc bin sao cho tha
mn cc rng buc ca bi ton.
b. Bi ton t mu th
S dng ba mu t bn cc tnh ca mt nc sao cho cc tnh k nhau th c mu
khc nhau. V d, nc Australia c 7 bang nh hnh v, ch s dng ba mu: , xanh l
v xanh da tri t mu 7 bang ca nc Australia sao cho khng c hai bang no k
nhau li c mu ging nhau. Bi ton ny c th m t bng 3 thnh phn nh sau:
-
Nguyn tc 2: La chn bin tham gia vo nhiu rng buc nht (gn cho bin kh
tha mn nht)
k hiu lin kt (vi ng ngha l ph nh), (v), (hoc), (ko theo), (tng
ng). C php v ng ngha ca logic mnh nh sau:
2.1 C php:
Cc k hiu:
9 Hng: true, false
9 K hiu: P, Q, Mi k hiu gi l k hiu mnh hoc mnh
9 Cc kt ni logic: , ,
9 Cc k hiu ( v )
Qui tc xy dng cu: C hai loi cu: cu n v cu phc
9 true v false l cc cu (true l cu n hng ng, false l cu hng sai).
9 Mi k hiu mnh l mt cu, v d P, Q l cc cu (Cu n)
9 Nu A v B l cc cu th cc cng thc sau cng l cu (cc cu phc):
A
(A B)
(A B)
(A B)
(A B)
Cc khi nim v qui c khc: Sau ny, cho gn, ta b i cc du (, )
khng cn thit. Nu cu ch c mt k hiu mnh th ta gi cu l cu n
hoc cu phn t. Cc cu khng phi l cu n th gi l cu phc. Nu P l k
hiu mnh th P v P gi l cc literal, P l literal dng cn P l literal m.
Cc cu phc dng A1 A2 An, trong cc Ai l cc literal, c gi l
cc cu tuyn (clause).
2.2 Ng ngha: Qui nh cch din dch v cch xc nh tnh ng (true) hay sai (false)
cho cc cu.
true l cu lun c gi tr ng, false l cu lun c gi tr sai
Mi k hiu biu din (nh x vi) mt pht biu/mnh trong th gii thc; k
hiu mnh c gi tr l ng (true) nu pht biu/mnh l ng, c gi tr
l sai (false) nu pht biu/mnh l sai, hoc c gi tr cha xc nh (true
hoc false)
Cc cu phc biu din (nh x vi) mt ph nh, mi quan h hoc mi lin kt
gia cc mnh /pht biu/cu phc trong th gii thc. Ng ngha v gi tr ca
cc cu phc ny c xc nh da trn cc cu con thnh phn ca n, chng
hn:
9 A c ngha l ph nh mnh / cu A, nhn gi tr true nu A l false v
ngc li
9 A B c ngha l mi lin kt A v B, nhn gi tr true khi c A v B l
true, v nhn gi tr false trong cc trng hp cn li.
9 A B biu din mi lin kt A hoc B, nhn gi tr true khi hoc A hoc
B l true, v nhn gi tr false ch khi c A v B l false.
9 (A B) biu din mi quan h A ko theo B, ch nhn gi tr false khi A
l true v B l false; nhn gi tr true trong cc trng hp khc
9 (A B) biu din mi quan h A ko theo B v B ko theo A
Nh vy, vic xc nh tnh ng/sai ca mt k hiu mnh (mnh n) l
da trn tnh ng sai ca s kin hoc thng tin m n m ch, cn vic xc nh
tnh ng sai ca mnh phc phi tun theo cc qui tc trn. Trong nhiu
trng hp, chng ta (cn ch) bit tnh ng/sai ca cc cu phc, cn tnh
ng/sai ca cc cu n l khng cn bit hoc c th lp lun ra t cc cc cu
clause
clause
C AB
Clause
ABC
ABC
ABC
(QT2)
= C (AB)
(QT3)
= (CA) (C B)
(QT4)
Chng ta c th dng li dng chun hi ny, hoc cng c th chng minh tip
rng cng thc ny v cng thc thu c t phng php lp bng trn l
tng ng.
Lut phn gii (resolution):
9 Lut phn gii:
Nu chng ta c hai clause sau l ng:
(P1 P2 Pi Pn)
(Q1 Q2 Qj Qm)
Pn v
P1 P2 Pn Q
th cu Q l ng
Kt qu lut Modus ponens t hai cu dng Horn dng sinh ra cu Q cng c
dng Horn dng. V vy php suy din tam on lun l ng trong cc cu dng
Horn, kt qu tam on lun t hai cu dng Horn l cu dng Horn. Tng t nh
tnh cht ng ca php phn gii trong trong cc cu dng chun hi, tnh cht
ng ca php suy lun ny l rt quan trng trong vic thit k cc gii thut suy
din t ng da trn tam on lun v cc cu Horn (xem phn pha di).
Khng ging nh cu dng chun hi, khng phi cu no trong logic mnh
u c th biu din dng Horn c. Chnh v th m thut gii suy din da trn
tam on lun ch l y trong ngn ng cc cu Horn ch khng y trong
logic mnh .
Gii thut da trn thc hin lin tip cc lut phn gii trn cc cu dng chun hi.
chng minh KB q ta s chng minh iu tng ng l (KB q []), tc l
nh chng ta vn gi l chng minh bng phn chng: gi s q khng ng (q), khi
KB q s dn n mu thun, tc l (KB q) [].
Chng ta s chuyn (KB q) v dng chun hi, tc l hi cc clause, hay chng ta
chuyn KB v q thnh hi cc clause, sau p dng lin tip lut phn gii (mc
4) trn cc cp clause m c t nht mt literal i ca nhau sinh ra mt clause mi,
clause mi ny li b sung vo danh sch cc clause c ri lp li p dng lut
phn gii. Gii thut dng khi c cu [] c sinh ra (khi ta kt lun KB q) hoc
khng c clause no c sinh ra (khi ta kt lun KB khng suy din c ra q).
Chi tit thut gii cho trong hnh trang sau.
Gii thut phn gii l gii thut y v tt c cc cu trong logic mnh u c
th biu din c di dng hi ca cc clauses (dng chun hi). Tuy nhin mi ln
phn gii sinh ra clause mi th li b sung vo danh sch cc clauses thc hin tm
kim cc cp clauses phn gii c vi nhau; v vy s lng clauses ln lp sau
li tng ln so vi ln lp trc, dn n vic tm kim cc clauses phn gii c vi
nhau l kh khn hn.
Gii thut phn gii trnh by nh trn l gii thut suy phn gii tin, c ngha l t
trng thi u KB q thc hin cc thao tc chuyn trng thi (p dng lut phn
gii trn cp cc clauses sinh ra clauses mi v b sung vo danh sch cc clauses
hin c) sinh ra trng thi mi, n khi no trng thi mi cha cu [] (trng thi
ch) th dng hoc khng sinh ra trng thi mi c na.
Mt cch khc thc hin suy din phn gii KB q l xut pht t clause q (coi
nh trng thi ch) ta thc hin phn gii vi cc clauses khc trong KB sinh ra
clauses mi, ri t cc clauses mi ny thc hin tip vi cc clauses khc ca KB
sinh ra clauses mi hn, n khi no [] c sinh ra hoc khng sinh ra c clause
mi th dng. Ni cch khc l ch thc hin phn gii cc clauses lin quan n q.
Gii thut phn gii li s lm vic hiu qu hn gii thut phn gii tin (chi tit ci
t coi nh l bi tp).
Function Resolution(KB, q) return true or false
clauses=get_list_of_clauses(KB q);
new={};
do
for each Ci, Cj in clauses
new_clause= resol(Ci,Cj);
if new_clause=[] return true;
new=new new_clause;
if new clauses return false;
clauses=clauses new;
p dng lin tip cc lut Modus ponens trn cc cu ko theo trong KB suy din
ra cc k hiu mi, n khi no danh sch cc hiu c suy din ra cha k hiu
ch q th dng v thng bo suy din thnh cng. Nu danh sch cc k hiu suy din
khng cha q v cng khng th sinh tip c na th thng bo suy din tht bi.
Cch suy din ny gi l suy din tin (hay suy din tam on lun tin phn bit
vi suy din phn gii tin trn).
Chi tit gii thut cho trong bng pha di. Gii thut s dng danh sch cc k
hiu mnh c xc nh l true, true_symbols , danh sch ny khi to t cc k
hiu c lp trong KB, sau b sung khi mt k hiu mnh c suy din ra l
true, n khi no danh sch cha k hiu truy vn q th dng hoc khng b sung
c k hiu no na vo danh sch ny.
Cch ci t th hai l xut pht t ch q, chng ta xem c bao nhiu cu Horn ko
theo no trong KB c q l phn u ca lut ko theo, chng ta li kim tra xem cc
k hiu mnh nm trong phn iu kin ca cc lut ny (cc ch trung gian) xem
c suy din c t KB khng, c p dng ngc cc lut n khi no cc ch trung
gian c xc nhn l ng trong KB th kt lun suy din thnh cng, hoc kt lun
khng thnh cng khi c tt c cc nhnh u khng chng minh c cc ch trung
gian khng suy din c t KB. Gii thut ny gi l gii tht suy din li (hoc l
gii thut suy din tam on lun li).
Int count[0.. n], count[i] l s k hiu xut hin trong phn iu kin ca
clausei.
working_symbols: danh sch k hiu ang xem xt, khi u bng danh
sch cc k hiu c lp trong KB
9. Kt chng
Logic mnh l ngn ng biu din cc mnh . C hai loi mnh : mnh
n v mnh phc. Mnh n tng ng vi mt pht biu no (mt s kin
hoc thng tin) v c th phn xt xem n ng hay sai da trn pht biu l ng
hay sai. Mnh phc biu din mi quan h hoc mi lin kt (ph nh, hi, tuyn,
ko theo, tng ng) gia cc mnh con ca n. Logic qui nh tnh ng hay
sai ca mnh phc da trn tnh ng/sai ca cc mnh con v da trn kiu ca
mi quan h/lin kt (l , , , , hay l ). Chnh v vic gn cho cc cu
(mnh n hoc mnh phc) hoc gi tr ng (true) hoc gi tr sai (false) theo
cc qui tc ca logic gip chng ta phn xt c rng mt mnh ny l ng khi
cho bit tp cc mnh cho trc l ng, hay l KB q. Lp lun l tr li cho cu
hi: cho KB ng th q c ng khng?.
Trong Chng ny chng ta tm hiu mt s thut gii lp lun (input l KB v q,
output l true hoc false). Cc gii thut lp lun gm: lp lun bng lit k, lp lun
da trn lut phn gii, lp lun da trn lut Modus ponens. Gii thut lp lun bng
lit k cc gi tr chn l ca cc k hiu mnh xut hin trong KB v q c u im
l khng i hi dng cu trc c bit no cho cc cu KB v q, nhng li c
phc tp thi gian l hm m i vi s cc k hiu mnh . Gii thut da trn lut
phn gii th yu cu KB v q phi c dng chun hi, tc l chng ta phi thc hin
chuyn KB v q thnh dng chun hi ri mi p dng gii thut. May thay, tt c
cc cu trong logic mnh u c th chuyn c v dng chun hi. Cn gii
thut lp lun da trn lut Modus ponens th yu cu KB v q phi c dng cu
Horn. Khng phi tt c cc cu trong logic mnh u chuyn v dng Horn c.
Tuy nhin nu KB v q dng Horn th cc gii thut suy din tin hoc li da trn
Modus ponens li lm vic rt hiu qu.
Cc gii thut lp lun trn khi ci t cho my tnh s gip my tnh c kh nng
lp lun c.
cu trong logic v t cp mt, tng t nh cc gii thut phn gii, gii thut suy din
tin, li trong logic mnh .
1. C php ng ngha
1.1 C php
Cc k hiu:
9 K hiu hng:
Hng ca ngn ng: true, false
Hng do ngi s dng t cho tn i tng c th: An, Binh,...,
a,b,c, (i tng l cc ch ng hoc tn ng trong mnh ).
9 K hiu bin (thng l bin i tng, i din cho ch ng hoc tn
ng): x,y,z,t,u,
9 K hiu v t: P, Q, hoc Sinhvien, Yeu, father, (mi k hiu tng
ng v t trong mnh ). Mi k hiu v t l cu n trong logic cp mt
v c ng ngha true hay false.
9 K hiu hm: sin, cos, log, father, Ch hm father (father(An)=Binh)
khc vi v t father (father(An,Binh)) ch hm th tr v gi tr cn v t
th tr v true/false. Vic xc nh mt ci tn l hm hay v t ty vo s
xut hin ca n trong cu v cc tham s ca n.
9 K hiu kt ni logic: , , , ,
9 K hiu lng t: ,
9 Cc k hiu ( v ) ,,
Qui tc xy dng cu: C 2 loi cu: cu n v cu phc. Chng c nh ngha
qui nh sau:
9 Cu n: true v false l cc cu (true l cu n hng ng, false l cu
hng sai).
9 Mt cu n hoc ph nh ca mt cu n th gi l literal
9 Trong cng thc c k hiu lng t (x, A hoc x, A) cc bin x trong A
gi l bin buc (bin lng t), bin no trong A khng phi l bin lng
t th gi l bin t do. Cc cu m khng c bin t do gi l cu ng.
Trong mn hc ny, chng ta ch quan tm n cc cu ng (ch cc cu
ng mi xc nh c tnh ng/sai ca n, xem phn ng ngha bn
di)
9 Min gi tr ca mt bin l tp hp cc gi tr/i tng m bin c th
nhn.
1.2 Ng ngha (qui nh cch din dch v xc nh tnh ng/sai cho cc cu)
9 Mt cu n ng (khng cha bin) l tng ng vi mt mnh (pht
biu, s kin, thng tin) no trong th gii thc, cu n c gi tr chn
l true hay false ty theo mnh (pht biu, s kin, thng tin) m n m
ch l ng hay sai trong thc t.
9 Cu phc l cu biu din (nh x vi) mt ph nh, mi quan h hoc
mi lin kt gia cc mnh /pht biu/cu con hoc mt s ph bin hoc
c th ca mnh /pht biu trong th gii thc. Ng ngha v gi tr
chn l ca cc cu phc ny c xc nh da trn cc cu con thnh
phn ca n, chng hn:
A c ngha l ph nh mnh / cu A, nhn gi tr true nu A l
false v ngc li
A B c ngha l mi lin kt A v B, nhn gi tr true khi c A
v B l true, v nhn gi tr false trong cc trng hp cn li.
A B biu din mi lin kt A hoc B, nhn gi tr true khi hoc
A hoc B l true, v nhn gi tr false ch khi c A v B l false.
Sinhvien(An)
Cha(Nam,Hon)
x Sinhvien(x) Hocgioi(x)
(qui tc i tn)
x P(x) y P(y)
(qui tc i tn)
xy P(x,y) yx P(x,y)
xy P(x,y) yx P(x,y)
x P(x) x P(x)
(chuyn i gia v )
x P(x) x P(x)
(chuyn i gia v )
(x P(x)) x P(x)
(DeMorgan)
(x P(x)) x P(x)
(DeMorgan)
(loi b )
(a k hiu vo)
Tc ca Thy di hn tc ca An
Bi ton ny c th biu din trong logic v t cp mt nh sau:
Cho cc cu sau (c s tri thc - KB) l ng:
Contrai(An)
(1)
Congai(Thuy)
(2)
(3)
(4)
(5)
(6)
clause
clause
(1)
(2)
(3)
(4)
L_Ch(x) Sa_v_m(x)
(3)
(4)
Pn
P1 P2 Pn Q
v c php thay th theta sao cho
thaythe(theta,Pi)= thaythe(theta, Pi)
th cu thaythe(theta,Q) l ng
(1)
(2)
(3)
C(BBinh,a)
(4)
L_Mo(a) L_Ch(a)
(5)
Kh_ng(BBinh)
(6)
C(BBinh,b)
(7)
L_Chut(b)
(8)
(9)
(10)
(11)
(12)
- (4) v (12)
Sa_v_m(a)
(13)
(14)
(15)
- (6) v (15)
[]
Dy cc bc chng minh trn ch l mt li gii ca bi ton chng minh
KBq[]. Bn c c th a ra li gii khc.
Chng 8 Prolog
Trong Chng 4 v 5 chng ta tm hiu logic mnh v logic v t cp mt. Chng
ta cng tm hiu cc thut ton lp lun t ng, chng minh cu truy vn q t c s
tri thc KB. C hai loi thut ton lp lun c bn: (1) Lp lun trong cc cu dng chun
hi vi lut phn gii, v (2) Lp lun trong cc cu Horn vi lut Modus ponens (hay
tam on lun). Trong Chng ny, chng ta s tm hiu mt ngn ng con ca Logic v
t cp mt, prolog programming in logic, ngn ng gm cc cu Horn trong Logic
v t cp mt c b sung mt s thnh phn phi logic gip cho sc mnh biu din
ca ngn ng Prolog tt hn v gip cho vic ci t cc gii thut suy din d dng
v hiu qu hn. Rt nhiu thut ton lp lun t ng trong Prolog c ci t cho
my tnh, v d nh SWI Prolog pht trin bi J. Wielemaker, SICS Prolog pht trin bi
Vin Khoa hc my tnh Thy in, v.v.. Ngn ng Prolog m cc sn phm ny cung
cp l tng i ging nhau (c sai khc khng ng k). Ngoi chc nng c bn l
cung cp trnh bin dch (thut ton lp lun KBq) th hu ht cc sn phm u cung
cp b son tho chng trnh (c s tri thc).
Trong Chng ny, chng ta s tm hiu ngn ng Prolog, Phn mm SWI Prolog, v lp
trnh Prolog.
C s tri thc
(KB)
Th tc suy din
(SWI Prolog)
Trong mi trng SWI, chng ta load file chng trnh ny (File Consult
giapha.pl), sau chng ta nhp cc cu truy vn t du nhc ca SWI Prolog. V d cc
cu truy vn v tr li truy vn nh sau:
1?-chame(duong,hoa).
true
2?-ongba(X,nam).
X=duong
Trong cc phn tip theo, chng ta s tm hiu cc cu khai bo trong file chng trnh v
cc loi cu truy vn.
head.
Ch : cc cu trong chng trnh prolog u kt thc bi du chm (.). Tt c cc cu
u l cu ng, nu c k hiu bin xut hin trong cu th ta ngm hiu rng bin l
bin buc, t di lng t , tr cc bin ch xut hin trong phn iu kin ca cu
th bin c hiu l t di lng t (thc cht th nu chuyn dng cu tuyn th
s chuyn sang do chuyn v v ly ph nh)
V t, hng thc:
Nh gii thiu trn, chng trnh prolog bao gm hai loi cu: cu s kin (cu n)
v cu lut (cu phc). Cc cu ny c xy dng t cc v t (head, P1, p2, , pn),
mi v t c c php nh sau:
tn _vi_tu(hang_thuc1, hang_thuc2, , hang_thucn)
trong tn_v_t tun theo qui tc t tn hng; cc hng_thci c th l:
9 Gi tr:
o tn hng k hiu, v d nh an, x, mauxanh, v.v.
o hng xu, v d Xin chao
o hng s nguyn hoc s thc, v d nh 5, 3.1416, v.v.
9 tn bin, v d nh X, Sinhvien, v.v. (ch : tn bin bt u bng k t vit hoa;
cc bin u khng c kiu bin, n c th nhn bt c mt gi tr no; tt c cc
bin u l bin a phng trong cu n xut hin)
9 cu trc (nhm cc hng thc li thnh cu trc), v d nh: mau[red, green, blue],
[march, 17, 2011], v.v. Hai trng hp c bit ca cu trc l list v string s
c tm hiu su hn cc phn sau ca Chng ny.
V d v chng trnh Prolog: chng trnh lu trong file giapha.pl ca v d trc bao
gm ba cu u l cc cu s kin v 2 cu cui l cu lut; c 4 k hiu v t l: cha, me,
chame, ongba; c 4 tn hng: nam, hoan, hoa, duong; c 3 bin: X,Y,Z.
3. Cu truy vn
Cu truy vn tng qut c dng tng qut nh sau:
p1, p2, , pn.
Chng ta chia cu truy vn thnh hai loi:
9 Cu truy vn khng cha bin: khi cu truy vn c ngha l biu thc logic (p1
and p2 and and pn) c l ng (c gi tr true) trong c s tri thc (chng trnh
prolog) cho hay khng?. Chng hn, cu truy vn chame(duong, hoa) trong v
d Phn 1 l hi: c phi hoa l chame ca duong khng?. Trong trng hp
ny, SWI Prolog s tr li l true hoc false.
9 Cu truy vn c cha tp cc bin (v d X,Y, ): khc vi cc cu trong c s tri
thc (chng trnh prolog) m mc nh hiu rng cc bin l i vi lng t
, cc bin trong cu truy vn li ngm nh i vi lng t , khi cu truy
vn c ngha l: c X, Y, sao cho biu thc logic (p1 and p2 and and pn) c
l ng (c gi tr true) khng?. Chng hn, cu truy vn ongba(X,nam) trong v
d Phn 1 l hi: c tn ti X m c nam l ongba ca X khng?. Trong trng
hp ny SWI Prolog s tm mt gi tr X sao cho ongba(X,nam) c gi tr l true.
Nu chng ta mun SWI Prolog tm tt c cc gi tr X tha mn ongba(X,nam),
sau mi tr li ca H thng, chng ta n phm ; thay v n phm enter.
Ch : cu truy vn q trong Prolog c dng nh trn s tng ng q l cu dng
Horn m x,y, (p1 p2 pn). (cu tuyn khng c literal dng no).
nl.
read(ten_bien).
X is bieu-thuc.
Hello hoan
true.
Trong cc phn sau ca Chng ny, chng ta s gp thm mt s cu phi logic khc
na nh cu lnh ct (!).
a(X,Y)
b(1).
b(X)
b(2).
b(3).
{X|1
c(1)
c(1).
c(2).
b(1)
c(Y)
b(2)
b(3)
c(3).
Khi thc hin truy vn:
1 ?- a(X,Y).
a(4,4)
c(2)
c(3)
th c kt qu nh sau:
1 ?- a(X,Y).
X = 1,
Y=1;
X = 1,
Y=2;
X = 1,
Y=3;
X = 2,
Y=1;
X = 2,
Y=2;
X = 2,
Y=3;
X = 3,
Y=1;
X = 3,
Y=2;
X = 3,
Y = 3.
By gi chng ta s thay th cu lnh u tin trong chng trnh
a(X, Y) :- b(X), c(Y).
bng mt trong cc cu lnh di y (chn v t ngt ! vo cc v tr khc nhau):
b(X)
{X|1
c(Y)
c(1)
b(1)
b(2)
a(4,4)
c(2)
c(3)
b(3)
a(X,Y)
b(X)
{X|1
b(1)
c(Y)
c(1)
b(2)
b(3)
a(4,4)
c(2)
c(3)
a(X,Y)
b(X)
{X|1
b(1)
c(Y)
c(1)
b(2)
a(4,4)
c(2)
c(3)
b(3)
lacontrai( an).
khonglacontrai( X) :- not (lacontrai(X)).
false
6. V t qui
V t quy l v t xut hin trong c phn u v phn than ca lut, hay ni cch
khc, v t gi chnh n. nh ngha v t qui bao gi cng c 2 phn, phn s
kin v phn qui. V d, chng trnh sau nh ngha v t fibonaci(N,X) tnh
phn t th N trong dy fibonaci, kt qu a vo bin X (dy Fibonaci l dy c
phn t th nht bng 0, phn t th hai bng 1, phn t th ba tr i s l tng ca
hai phn t lin ngay trc).
fibonaci( 1,0).
% phn t u tin l 0
fibonaci( 2,1).
% phn t th u tin l 1
Cu truy vn c th l:
1 ? my_reverse([a,b,c,d],Y).
Y=[d,c,b,a]
V d tip theo l sp xp danh sch theo th t tng dn. gii bi ton ny, chng
ta s xy dng v t c hai tham s sapxep(X,Y), vi X l danh sch cn sp xp, Y
l kt qu danh sch sp xp. Trong v d di y, ta s dng gii thut sp xp
theo kiu chn, s dng bin trung gian
sapxep (X,Y):-i_sort(X,[],Y).
i_sort([],Y,Y).
i_sort([H|T],Z,Y):-insert(H,Z,Y1),i_sort(T,Y1,Y).
insert(X,[Y|T],[Y|NT]):-X>Y,insert(X,T,NT).
insert(X,[Y|T],[X,Y|T]):-X=<Y.
insert(X,[],[X]).