You are on page 1of 108

Gio trnh

TR TU NHN TO
ARTIFICIAL INTELLIGENCE

Phm Th Hon, Phm Th Anh L


Khoa Cng ngh thng tin
Trng i hc S phm H Ni

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

Chng 2 Bi ton v phng php tm kim li gii .........................................10


1.

Bi ton v cc thnh phn ca bi ton ........................................................................... 10

2.

Gii thut tng qut tm kim li gii ............................................................................... 14

3.

nh gi gii thut tm kim............................................................................................. 17

4.

Cc gii thut tm kim khng c thng tin phn hi (tm kim m)............................... 18

Chng 3 Cc phng php tm kim heuristic ....................................................25


1.

Gii thut tm kim tt nht u tin (best first search).................................................... 25

2.

Cc bin th ca gii thut best first search...................................................................... 28

3.

Cc gii thut khc............................................................................................................ 31

Chng 4 Cc gii thut tm kim li gii cho tr chi .......................................37


1.

Cy tr chi y ........................................................................................................... 37

2.

Gii thut Minimax ........................................................................................................... 39

3.

Gii thut Minimax vi su hn ch ............................................................................ 41

4.

Gii thut Minimax vi ct ta alpha-beta ........................................................................ 44

Chng 5 Cc phng php tm kim li gii tha mn cc rng buc ..............47


1.

Cc bi ton tha mn cc rng buc................................................................................ 47

2.

Gii thut quay lui vt cn ................................................................................................ 50

3.

Cc ci tin ca gii thut quay lui ................................................................................... 51

4.

Cc gii thut ti u a phng....................................................................................... 54

Chng 6 Cc phng php lp lun trn logic mnh ....................................55


1.

Lp lun v Logic ............................................................................................................. 55

2.

Logic mnh : c php, ng ngha.................................................................................. 55

3.

Bi ton lp lun v cc gii thut lp lun trn logic mnh ........................................ 58

4.

Cu dng chun hi v lut phn gii ............................................................................... 60

5.

Cu dng Horn v tam on lun...................................................................................... 63

6.

Thut ton suy din da trn bng gi tr chn l............................................................. 65

7.

Thut ton suy din da trn lut phn gii...................................................................... 65

8.

Thut ton suy din tin, li da trn cc cu Horn ......................................................... 67

9.

Kt chng........................................................................................................................ 70

Chng 7 Cc phng php lp lun trn logic cp mt .....................................72


1.

C php ng ngha ......................................................................................................... 74

2.

Lp lun trong logic v t cp mt.................................................................................... 78

3.

Php ng nht hai v t, thut gii ng nht ................................................................. 80

4.

Cu dng chun hi, lut phn gii tng qut................................................................... 82

5.

Cu dng Horn v tam on lun tng qut trong logic cp 1.......................................... 84

6.

Gii thut suy din phn gii ............................................................................................ 86

7.

Thut ton suy din tin da trn cu Horn...................................................................... 89

8.

Thut ton suy din li da trn cu Horn........................................................................ 91

Chng 8 Prolog ...................................................................................................92


1.

Lp trnh logic, mi trng lp trnh SWI Prolog ............................................................ 92

2.

Ngn ng Prolog c bn, chng trnh Prolog................................................................. 95

3.

Cu truy vn...................................................................................................................... 97

4.

V t phi logic (cu phi logic)........................................................................................... 97

5.

Tr li truy vn, quay lui, ct, ph nh............................................................................ 98

6.

V t qui ..................................................................................................................... 104

7.

Cu trc d liu trong Prolog.......................................................................................... 105

8.

Thut ton suy din trong Prolog.................................................................................... 106

Chng 9 Lp lun vi tri thc khng chc chn.............................................. 107


Chng 10 Hc mng nron nhn to............................................................... 108

Chng 1 Gii thiu


1. Tr tu nhn to l g?
hiu tr tu nhn to (artificial intelligence) l g chng ta bt u vi khi nim s
bay nhn to (flying machines), tc l ci my bay.
t lu, loi ngi mong mun lm ra mt ci my m c th di chuyn c
trn khng trung m khng ph thuc vo a hnh di mt t, hay ni cch khc l
my c th bay c. Khng c g ngc nhin khi nhng tng u tin lm my bay l
t nghin cu cch con chim bay. Nhng chic my bit bay c thit k theo nguyn l
v cnh nh con chim ch c th bay c qung ng rt ngn v lch s hng khng
thc s sang mt trang mi k t anh em nh Wright thit k my bay da trn cc
nguyn l ca kh ng lc hc (aerodynamics).
Cc my bay hin nay, nh thy, c sc tr rt ln v bay c qung ng
c th vng quanh th gii. N khng nht thit phi c nguyn l bay ca con chim
nhng vn bay c nh chim (dng v), v cn tt hn chim.
Quay li cu hi Tr tu nhn to l g. Tr tu nhn to l tr thng minh ca my
do con ngi to ra. Ngay t khi chic my tnh in t u tin ra i, cc nh khoa hc
my tnh hng n pht hin h thng my tnh (gm c phn cng v phn mm)
sao cho n c kh nng thng minh nh loi ngi. Mc d cho n nay, theo quan nim
ca ngi vit, c m ny vn cn xa mi thnh hin thc, tuy vy nhng thnh tu t
c cng khng h nh: chng ta lm c cc h thng (phn mm chi c vua
chy trn siu my tinh GeneBlue) c th thng c vua c th gii; chng ta lm
c cc phn mm c th chng minh c cc bi ton hnh hc; v.v. Hay ni cch
khc, trong mt s lnh vc, my tnh c th thc hin tt hn hoc tng ng con
ngi (tt nhin khng phi tt c cc lnh vc). chnh l cc h thng thng minh.
C nhiu cch tip cn lm ra tr thng minh ca my (hay l tr tu nhn to),
chng hn l nghin cu cch b no ngi sn sinh ra tr thng minh ca loi ngi nh

th no ri ta bt chc nguyn l , nhng cng c nhng cch khc s dng nguyn l


hon ton khc vi cch sn sinh ra tr thng minh ca loi ngi m vn lm ra ci my
thng minh nh hoc hn ngi; cng ging nh my bay hin nay bay tt hn con chim
do n c c ch bay khng phi l ging nh c ch bay ca con chim.
Nh vy, tr tu nhn to y l ni n kh nng ca my khi thc hin cc cng
vic m con ngi thng phi x l; v khi dng v ng x hoc kt qu thc hin ca
my l tt hn hoc tng ng vi con ngi th ta gi l my thng minh hay my
c tr thng minh. Hay ni cch khc, nh gi s thng minh ca my khng phi
da trn nguyn l n thc hin nhim v c ging cch con ngi thc hin hay
khng m da trn kt qu hoc dng v ng x bn ngoi ca n c ging vi kt qu
hoc dng v ng x ca con ngi hay khng.
Cc nhim v ca con ngi thng xuyn phi thc hin l: gii bi ton (tm kim,
chng minh, lp lun), hc, giao tip, th hin cm xc, thch nghi vi mi trng xung
quanh, v.v., v da trn kt qu thc hin cc nhim v kt lun rng mt ai c
l thng minh hay khng. Mn hc Tr tu nhn to nhm cung cp cc phng php
lun lm ra h thng c kh nng thc hin cc nhim v : gii ton, hc, giao tip,
v.v. bt k cch n lm c nh con ngi hay khng m l kt qu t c hoc dng v
bn ngoi nh con ngi.
Trong mn hc ny, chng ta s tm hiu cc phng php lm cho my tnh bit
cch gii bi ton, bit cch lp lun, bit cch hc, v.v.

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.

Thut ng Tr tu nhn to (Artificial Intelligence - AI) c thit lp bi John


McCarthy ti Hi tho u tin v ch ny vo ma h nm 1956. ng thi, ng
cng xut ngn ng lp trnh Lisp mt trong nhng ngn ng lp trnh hm tiu
biu, c s dng trong lnh vc AI. Sau , Alan Turing a ra "Turing test" nh l
mt phng php kim chng hnh vi thng minh.
Thp k 60, 70 Joel Moses vit chng trnh Macsyma - chng trnh ton hc s dng
c s tri thc u tin thnh cng. Marvin Minsky v Seymour Papert a ra cc chng
minh u tin v gii hn ca cc mng n-ron n gin. Ngn ng lp trnh logic Prolog
ra i v c pht trin bi Alain Colmerauer. Ted Shortliffe xy dng thnh cng mt
s h chuyn gia u tin tr gip chn on trong y hc, cc h thng ny s dng ngn
ng lut biu din tri thc v suy din.
Vo u nhng nm 1980, nhng nghin cu thnh cng lin quan n AI nh cc h
chuyn gia (expert systems) mt dng ca chng trnh AI m phng tri thc v cc k
nng phn tch ca mt hoc nhiu chuyn gia con ngi
Vo nhng nm 1990 v u th k 21, AI t c nhng thnh tu to ln nht, AI
c p dng trong logic, khai ph d liu, chn on y hc v nhiu lnh vc ng dng
khc trong cng nghip. S thnh cng da vo nhiu yu t: tng kh nng tnh ton ca
my tnh, tp trung gii quyt cc bi ton con c th, xy dng cc mi quan h gia AI
v cc lnh vc khc gii quyt cc bi ton tng t, v mt s chuyn giao mi ca cc
nh nghin cu cho cc phng php ton hc vng chc v chun khoa hc chnh xc.

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 .

Biu din tri thc: Mun my tnh c th lu tr v x l tri thc th cn c cc


phng php biu din tri thc. Cc phng php biu din tri thc y bao gm
cc ngn ng biu din v cc k thut x l tri thc. Mt ngn ng biu din tri thc
c nh gi l tt nu n c tnh biu t cao v cc tnh hiu qu ca thut ton
lp lun trn ngn ng . Tnh biu t ca ngn ng th hin kh nng biu din
mt phm vi rng ln cc thng tin trong mt min ng dng. Tnh hiu qu ca cc
thut ton lp lun th hin chi ph v thi gian v khng gian dnh cho vic lp lun.
Tuy nhin, hai yu t ny dng nh i nghch nhau, tc l nu ngn ng c tnh
biu t cao th thut ton lp lun trn s c phc tp ln (tnh hiu qu thp)
v ngc li (ngn ng n gin, c tnh biu t thp th thut ton lp lun trn
s c hiu qu cao). Do , mt thch thc ln trong lnh vc AI l xy dng cc
ngn ng biu din tri thc m c th cn bng hai yu t ny, tc l ngn ng c tnh
biu t tt (ty theo tng ng dng) v c th lp lun hiu qu.
Lp k hoch: kh nng suy ra cc mc ch cn t c i vi cc nhim v a
ra, v xc nh dy cc hnh ng cn thc hin t c mc ch .
Hc my: l mt lnh vc nghin cu ca AI ang c pht trin mnh m v c
nhiu ng dng trong cc lnh vc khc nhau nh khai ph d liu, khm ph tri
thc,
X l ngn ng t nhin: l mt nhnh ca AI, tp trung vo cc ng dng trn ngn
ng ca con ngi. Cc ng dng trong nhn dng ting ni, nhn dng ch vit, dch
t ng, tm kim thng tin,
H chuyn gia: cung cp cc h thng c kh nng suy lun a ra nhng kt
lun. Cc h chuyn gia c kh nng x l lng thng tin ln v cung cp cc kt
lun da trn nhng thng tin . C rt nhiu h chuyn gia ni ting nh cc h
chuyn gia y hc MYCIN, on nhn cu trc phn t t cng thc ha hc
DENDRAL,
Robotics

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.

Chng 2 Bi ton v phng php tm kim li gii


1. Bi ton v cc thnh phn ca bi ton
Chng ny gii thiu cc gii thut my tnh c th gii cc bi ton m thng
thng i hi tr thng minh ca con ngi, nh bi ton ong nc, bi ton 8 s trn
bn c, bi ton tm ng nh m t bn di y. thit k gii thut chung gii cc
bi ton ny, chng ta nn pht biu bi ton theo dng 5 thnh phn: Trng thi bi ton,
trng thi u, trng thi ch, cc php chuyn trng thi, lc chi ph cc php
chuyn trng thi (vit gn l chi ph).
a. Bi ton ong nc

3l

5l

9l

S dng ba can 3 lt, 5 lt v 9 lt, lm th no ong c 7 lt nc.


Bi ton ny c pht biu li theo 5 thnh phn nh sau:
- Trng thi: Gi s nc c trong 3 can ln lt l a, b, c (a 3, b 5, c 9), khi b
ba (a, b, c) l trng thi ca bi ton
- Trng thi u: (0, 0, 0)

// c ba can u rng

- Trng thi ch (-, -, 7)

// 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.

Mt li gii ca bi ton l mt dy cc php chuyn trng thi (ng i) t trng thi


u n trng thi ch. Bng di y l 2 li gii ca bi ton trn:
a

ch

Li gii 2 (chi ph: 5)

ch

Li gii 1 (chi ph: 9)


b. Bi ton di chuyn 8 s trn bn c

Trng thi u

Trng thi ch

Cho bn c kch thc 3 x 3, trn bn c c 8 qun c nh s t 1 n 8 (hnh v).


Trn bn c c mt trng. Chng ta c th chuyn mt qun c c chung cnh vi
trng sang trng. Hy tm dy cc php chuyn t trng thi ban u v trng thi
m cc quan c c xp theo trt t nh Trng thi ch ca hnh trn.
Bi ton di chuyn 8 s trn bn c c th pht biu di dng 5 thnh phn nh sau:
-

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.

Trng thi u (hnh v trn)

Trng thi ch (hnh v trn)

Php chuyn trng thi: i ch c s hiu 0 vi mt trong cc c cng cnh.

Chi ph: mi php chuyn c chi ph 1.

Li gii ca bi ton l dy cc php chuyn t trng thi u n trng thi ch. Mt li


gii ca bi ton l: UP, UP, RIGHT, DOWN, LEFT, UP, RIGHT, RIGHT, DOWN,

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

Mt t robot tm ng i t thnh ph Arad n thnh ph Bucharest. Bit rng xe


robot ny khng c bn y nh trn hnh v trn, nhng khi n n mt thnh ph
mi, n c b cm bin c c bin ch ng n cc thnh ln cn, trn bin ch
ng c khong cch.
Bi ton tm ng c th pht biu theo 5 thnh phn nh sau:
-

Trng thi: v tr ca t robot (tn thnh ph)

Trng thi u: Thnh ph Arad

Trng thi ch: Thnh ph Bucharest

Php chuyn trng thi: t thnh ph sang thnh ph ln cn

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.

2. Gii thut tng qut tm kim li gii


a. Khng gian trng thi ca bi ton
Mi bi ton vi 5 thnh phn nh m t trn, chng ta c th xy dng c mt cu
trc th vi cc nt l cc trng thi ca bi ton, cc cung l php chuyn trng thi.
th ny c gi l khng gian trng thi ca bi ton. Khng gian trng thi c th l
v hn hoc hu hn. V d, vi bi ton di chuyn 8 s trn bn c, khng gian trng
thi c s lng l 8! (8 giai tha) trng thi.
Li gii ca bi ton l mt ng i trong khng gian trng thi c im u l trng
thi u v im cui l trng thi ch. Nu khng gian trng thi ca bi ton l nh, c
th lit k v lu va trong b nh ca my tnh th vic tm ng i trong khng gian
trng thi c th p dng cc thut ton tm ng i trong l thuyt th. Tuy nhin,
trong rt nhiu trng hp, khng gian trng thi ca bi ton l rt ln, vic duyt ton
b khng gian trng thi l khng th. Trong mn hc Tr tu nhn to ny, chng ta s
tm hiu cc phng php tm kim li gii trong cc bi ton c khng gian trng thi
ln.
b. Gii thut tng qut tm kim li gii ca bi ton
Vi cc bi ton c 5 thnh phn trn, chng ta c gii thut chung tm kim li gii
ca bi ton. tng l sinh ra cc li gii tim nng v kim tra chng c phi l li
gii thc s ca bi ton. Mt li gii tim nng l mt ng i trong khng gian trng
thi ca bi ton c nt u l trng thi u v mi cung ca ng i l mt php
chuyn hp l gia cc trng thi k vi cung . Li gii thc s ca bi ton l li gii
tim nng c nt cui cng l trng thi ch. Cc li gii tim nng l cc ng i c
cng nt u tin v dy cc cung l dy cc php chuyn hp l t trng thi u .
Cc li gii tim nng c th t chc theo cy, gc ca cy l trng thi u, cy c

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

rng), hoc nt l no xut hin sau th c chn m rng cy (y l chin lc tm


kim theo chiu su). Chin lc tm kim c th c ci t thng qua mt cu trc d
liu a vo v ly ra trng thi l ca cy tm kim. Hai cu trc d liu c bn l
hng i v ngn xp. Hng i s lu cc trng thi l ca cy v trng thi no c
a vo hng i trc s c ly ra trc, cn ngn xp l cu trc d liu lu trng
thi l ca cy tm kim v vic chn nt l ca cy s theo kiu vo trc ra sau. Bng
di y l chi tit ha thut ton tm kim li gii trn vi chin lc tm kim c
th hin thng qua cu trc d liu hng i (queue) hoc ngn xp (stack). Trong gii
thut chi tit hn ny, cy tm kim c biu din bng mng mt chiu father, trong
father(i) l ch nt cha ca nt i. Th tc path(node,father) dng ln ngc ng i t
trng thi node v nt gc (trng thi u) (node c truyn gi tr l trng thi ch khi
th tc path c gi).
Function General_Search(problem, Queue/Stack) returns a solution, or failure
Queue/Stack make_queue/make_stack(make-node(initial-state[problem]));
father(initial-state[problem]) = empty;
while (1)
if Queue/Stack is empty then return failure;
node = pop(Queue/Stack) ;
if test(node,Goal[problem]) then return path(node,father);
expand-nodes adjacent-nodes(node, Operators[problem]);
push(Queue/Stack, expand-nodes );
foreach ex-node in expand-nodes
father(ex-node) = node;
end

Function path(node,father[]) : print the solution


n node
while (n # empty)
cout<< n << <-- ;
n = father[n];
end
c. Cy tm kim:
Trong qu trnh tm kim li gii, chng ta thng p dng mt chin lc sinh ra cc
li gii tim nng. Cc li gii tim nng c t chc thnh cy m gc l trng thi u
ca bi ton, cc mc tip theo ca cy l cc nt k vi cc nt mc trc. Thng
thng th cy tm kim c m rng n n cha trng thi ch l dng.

3. nh gi gii thut tm kim


Mt gii thut tm kim li gii ca bi ton ph thuc rt nhiu vo chin lc tm kim
(hay l cu trc d liu lu cc nt l ca cy trong qu trnh tm kim). nh gi
gii thut tm kim ngi ta a ra 4 tiu ch sau:
1. Tnh y : gii thut c tm c li gii ca bi ton khng nu bi ton tn ti
li gii?
2. phc tp thi gian: thi gian ca gii thut c kch c nh th no i vi bi
ton?
3. phc tp khng gian: Kch c ca b nh cn cho gii thut? Trong gii thut
tng qut trn, kch c b nh ch yu ph thuc vo cu trc d liu lu cc
trng thi l ca cy tm kim
4. Tnh ti u: Gii thut c tm ra li gii c chi ph ti u (nh nht hoc ln nht
ty theo ng cnh ca bi ton)?

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:
-

b nhn t nhnh ca cy tm kim: s nhnh ti a ca mt nt, hay l s php


chuyn trng thi ti a ca mt trng thi tng qut

d su ca li gii c chi ph nh nht

m su ti a ca cy tm kim (m c th l v hn)

Trong cc gii thut tm kim li gii cp n chng ny, chng ta s nh gi u,


nhc im ca tng gii thut da trn 4 tiu ch trn.

4. Cc gii thut tm kim khng c thng tin phn hi (tm kim m)


Cc gii thut tm kim khng s dng thng tin phn hi (hay l gii thut tm kim m)
l cc gii thut ch s dng thng tin t 5 thnh phn c bn ca bi ton (trng thi tng
qut, trng thi u, trng thi ch, php chuyn trng thi, chi ph). tng chung c
bn ca cc gii thut ny l sinh ra cy li gii tim nng (cy tm kim) mt cch c h
thng (khng b st v khng lp li). Phn ny s gii thiu cc gii thut tm kim theo
chiu rng, tm kim theo chiu su, tm kim theo chiu su c gii hn, tm kim su
dn. Cc gii thut ny u theo gii thut chung gii thiu bn trn, ch khc nhau
chin lc tm kim hay l cu trc d liu lu gi v ly ra cc nt l ca cy tm
kim.
a. Tm kim theo chiu rng
Gii thut tm kim li gii theo chiu rng l ci t c th ca gii thut chung tm
kim li gii, trong c s dng cu trc d liu kiu hng i (queue) lu gi cc
trng thi nt l ca cy tm kim. Cc nt l sinh ra trong qu trnh thc thi gii thut s
c cp nht vo mt hng i theo nguyn tc nt no c a vo hng i trc s
c ly ra trc trong qu trnh m rng cy. Chi tit ca gii thut c cho trong bng
bn di.

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

Khng gian y cc trng thi ca bi ton

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

Cy tm kim ca gii thut theo chiu rng

nh gi gii thut tm kim theo chiu rng:


9 Tnh y : gii thut s cho li gii ca bi ton nu bi ton tn ti li gii v
nhn t nhnh b l hu hn
9 phc tp thi gian: 1+b+b2++bd (s vng lp khi gp trng thi ch) = O(bd)
9 phc tp khng gian: s lng nh ti a s dng trong gii thut (ch yu l
bin Queue, xem hnh v di): bd
9 Tnh ti u: gii thut tm kim theo chiu rng s tm ra li gii vi t trng thi
trung gian nht.

d
b

Hng i trong gii thut tm kim theo chiu rng ch cha cc nt l ca cy tm


kim, v vy c kch thc l bd.
b. Tm kim theo chiu su
Gii thut tm kim theo chiu su hon ton tng t nh gii thut tm kim theo chiu
rng, ch khc ch thay v s dng cu trc d liu hng i, ta s dng cu trc d liu
ngn xp (Stack) lu gi cc trng thi l ca cy tm kim. i vi cu trc d liu
ngn xp, cc trng thi a vo sau cng s c ly ra trc m rng cy tm kim.
Gii thut v din bin cc bin chnh trong gii thut c trnh by trong cc bng v
hnh v di y. Kt qu ca gii thut l li gii G E A S.

Function Depth-Search(problem, Stack) returns a solution, or failure


Stack make-queue(make-node(initial-state[problem]));
father(initial-state[problem]) = empty;
while (1)
if Stack is empty then return failure;
node = pop(Stack) ;
if test(node,Goal[problem]) then return path(node,father);
expand-nodes adjacent-nodes(node, Operators[problem]);
push(Stack, expand-nodes );
foreach ex-node in expand-nodes
father(ex-node) = node;
end
node

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

Cy tm kim ca gii thut theo chiu

nh gi gii thut tm kim theo chiu su:


9 Tnh y : gii thut khng chc chn cho li gii ca bi ton trong trng hp
khng gian trng thi ca bi ton l v hn

9 phc tp thi gian: O(bm)


9 phc tp khng gian: O(b.m)
9 Tnh ti u: gii thut tm kim theo chiu su khng cho li gii ti u.
c. Tm kim theo chiu su c gii hn
Gii thut tm kim theo chiu su trn c u im l n c th sinh ra li gii nhanh
chng m khng tn km b nh ca my tnh. Tuy nhin nu khng gian trng thi ca
bi ton l v hn th rt c th n khng tm c li gii ca bi ton khi hng tm
kim khng cha trng thi ch. khc phc nhc im ny, chng ta c th t gii
hn su trong gii thut: nu su ca trng thi ang xt vt qu ngng no
th chng ta khng b sung cc nt k vi trng thi ny na m chuyn sang hng tm
kim khc. Chi tit ca gii thut c cho trong bng di y, trong chng ta a
thm bin mng mt chiu depth[i] lu su ca trng thi i.
Function Depth-Limitted-Search(problem, maxDepth)
returns a solution, or failure
---------------------------------------------------------------------Stack make-queue(make-node(initial-state[problem]));
father(initial-state[problem]) = empty;
depth(initial-state[problem]) = 0;
while (1)
if Stack is empty then return failure;
node = pop(Stack) ;
if test(node,Goal[problem]) then return path(node,father);
if (depth(node) < maxDepth)
expand-nodes adjacent-nodes(node, Operators[problem]);
push(Stack, expand-nodes );
foreach ex-node in expand-nodes
father(ex-node) = node;
end

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

Chng 3 Cc phng php tm kim heuristic


1. Gii thut tm kim tt nht u tin (best first search)
Cc gii thut trong mc 4 trn c chung c im l tm kim li gii mt cch c h
thng: xy dng tt c khng gian li gii tim nng theo cch vt cn, khng b st v
khng lp li. Trong rt nhiu trng hp, cc gii thut nh vy khng kh thi v khng
gian trng thi bi ton qu ln, tc x l v b nh ca my tnh khng cho php
duyt cc li gii tim nng. hn ch khng gian cy cc li gii tim nng, chng ta
a ra mt hm nh hng vic m rng cy tm kim. Theo cch ny, chng ta s m
rng cy theo cc nt l c nhiu tim nng cha trng thi ch hn cc nt l khc.
V d, i vi bi ton 8 s, chng ta a ra mt hm nh hng m rng cy nh sau:
gi s n l mt trng thi bn c (mt s sp xp 8 qun c trn bn c 3x3), hm nh
hng h nh ngha nh sau:
h(n) = tng khong cch Manhatan cc v tr ca tng qun c trn bn c n vi v tr ca
n trn bn c ch.
Chng hn, nu n l trng thi u nh trong hnh ca mc 1.b, h(n) c th xc nh nh
sau:
Qun c

V tr trn n

V tr trn bn

Khong cch (s ln dch

c ch

chuyn khi bn c khng c


qun c khc)

Trng thi n l trng thi u ca bi ton 8 s trong mc 1.b


1

(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):

Function Best-First-Search(problem, list, h) returns a solution, or failure


list make-list(make-node(initial-state[problem]));
father(initial-state[problem]) = empty;
while (1)
if list is empty then return failure;
node = pop(list) ; // node with max/min h
if test(node,Goal[problem]) then return path(node,father);
expand-nodes adjacent-nodes(node, Operators[problem]);
push(list, expand-nodes ,h);
foreach ex-node in expand-nodes
father(ex-node) = node;
end

Function push(list, expand-nodes ,h);


Chn cc nodes trong expand-nodes vo list sao cho mng list sp theo th t
tng/gim theo hm h

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:

Cy c gc l trng thi u vi gi tr h(u) = 8. T trng thi gc c hai php chuyn:


chuyn trng i v tr cho s 7 (hm h gim i 1) v i v tr trng cho s 8
(hm h tng ln 1). Lc ny danh sch sp xp c 2 nt l tng ng vi hai trng thi c
hm h=7 v h=9. Trong 2 nt l ny, gii thut s chn nt c gi tr hm h nh hn
(h=7) m rng cy. Tip tc m rng cy theo hng nt l c gi tr h nh nht
(trong trng hp c nhiu nt l cng c gi tr nh nht th chn nt l no xut hin
trc) th ta c mt phn ca cy nh trong hnh v trn.

2. Cc bin th ca gii thut best first search


tng ca gii thut tm kim tt nht u tin (best first search) l m rng cy tm
kim theo hng u tin cc nt l c trin vng cha trng thi ch (da trn hm nh
gi h). Gii thut best-first-search c cc bin th sau:
- Khi hm h(n) l chi ph ca dy php chuyn t trng thi u n trng thi n th gii
thut best-first-search c tn gi khc l gii thut tm kim u (uniform search). Trong

trng hp ny, cy tm kim s m rng u v tt c cc hng theo vt du loang t


trng thi u. Khi hm chi ph ca dy php chuyn l s cc nh trung gian th gii
thut uniform search tr thnh gii thut tm kim theo chiu rng. Gii thut uniform
search s cho li gii vi chi ph nh nht, tuy nhin cy tm kim sinh ra trong gii thut
ny thng c kch thc rt ln.
- Khi h(n) l c lng chi ph/khong cch t n n ch (v d nh khong cch
Manhatan trong bi ton 8 s trn) th gii thut best-first-search c gi l gii thut
tham n (greedy search). Gii thut tham n s chn nt l n gn n ch nht trong
s cc nt l ca cy tm kim m rng cy, v n khng quan tm n chi ph t
trng thi u n n. Do vy gii thut c xu hng cho ra kt qu trong thi gian nhanh
nht, nhng khng phi lc no cng l li gii ngn nht.
- Khi h(n) = f(n) + g(n), trong f(n) l hm chi ph/khong cch t trng thi u n n
v g(n) l hm c lng chi ph/khong cch t n n trng thi ch, v nu g(n) l c
lng di ca hm chi ph/khong cch thc s t n n trng thi ch th gii thut
best-first-search c gi l gii thut A*. Gii thut A* l gii thut trung ha gia hai
gii thut uniform v gii thut greedy trn. A* cho li gii c chi ph nh nht (bn
c c th tm hiu chng minh iu ny cc ti liu khc) v cy tm kim c kch
thc va phi.

V d, i vi bi ton tm ng i t thnh ph Arad n thnh ph Bucharest m t


trong 1.b, nu chng ta s dng khong cch clit (khong cch theo ng chim bay) t
mi thnh ph n ch (xem hnh v trn) th cc gii thut uniform, greedy v A* s
cho cc cy tm kim nh sau:

Mt phn cy tm kim ca gii thut Uniform search

Cy tm kim ca gii thut Greedy search

Cy tm kim ca gii thut A*

3. Cc gii thut khc


* Tm kim leo i:

tng: Tm kim theo chiu su kt hp vi hm nh gi. M rng trng thi hin ti


v nh gi cc trng thi con ca n bng hm nh gi heuristic. Ti mi bc, nt l
tt nht s c chn i tip.
Procedure Hill-Climbing_search;
Begin
1. Khi to ngn xp S ch cha trng thi u;
2. Loop do
2.1 If S rng then {thng bo tht bi; stop};
2.2 Ly trng thi u u ngn xp S;
2.3 If u l trng thi kt thc then
{thng bo thnh cng; stop};
2.4 For mi trng thi v k u do t v vo danh sch L;
2.5 Sp xp L theo th t tng dn ca hm nh gi sao cho trng
thi tt nht u danh sch L;
2.6 Chuyn danh sch Lvo ngn xp S;
End;
V d : Vi v d th khng gian trng thi nh hnh 2.2 th cy tm kim leo i
tng ng nh hnh 2.4 :

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;

2.3 If u l trng thi kt thc then


if g(u)<=cost then {cost g(u); quay li 2.1};
2.4 if f(u)>cost then quay li 2.1;
2.5 For mi trng thi v k u do
{g(v) g(u)+k(u,v);
f(v) g(v) +h(v);
t v vo danh sch L1};
2.6 Sp xp L theo th t tng dn ca hm f;
2.7 Chuyn danh sch Lvo ngn xp S;
End;
V d : Vi th khng gian trng thi nh hnh 2.7, nh xut pht A v nh ch
B. p dng thut ton nhnh cn, ta xy dng c cy tm kim nh hnh 2.9 v
gi tr ca hm f ti cc nh c tnh nh bng 2.2:
nh pht
trin (u)
A

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

Tnh gi tr hm f cho thut ton


nhnh-cn

17

21

I 18

19

K 25

Cy tm kim nhnh-cn

Nhn xt : Thut ton nhnh-cn cng l thut ton y v ti u nu h(u) l hm


nh gi thp v c di cc cung khng nh hn mt s dng no

Chng 4 Cc gii thut tm kim li gii cho tr chi


Chng trnh chi c u tin c vit bi Claude Shannon vo nm 1950 l mt
minh chng cho kh nng my tnh c th lm c nhng vic i hi tr thng minh
ca con ngi. T ngi ta nghin cu cc chin lc chi cho my tnh vi cc tr
chi c i th (c hai ngi tham gia). Vic gii quyt bi ton ny c th a v bi
ton tm kim trong khng gian trng thi, tc l tm mt chin lc chn cc nc i
hp l cho my tnh. Tuy nhin, vn tm kim y phc tp hn so vi vn tm
kim trong chng trc, v ngi chi khng bit trc i th s chn nc i no tip
theo. Chng ny s trnh by mt s chin lc tm kim ph bin nh Minimax,
phng php ct ct -.

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):
-

Trng thi xut pht l s sp xp cc qun c ca hai bn khi bt u cuc chi


(cha ai a ra nc i)

Cc ton t bin i trng thi l cc nc i hp l

Cc trng thi kt thc l cc tnh th m cuc chi dng, thng c xc nh bi


mt s iu kin dng (chng hn, qun Trng thng hoc qun en thng hoc hai
bn ha nhau)

Hm kt cuc: mang gi tr tng ng vi mi trng thi kt thc. Chng hn, trong


c vua, hm kt cuc c gi tr l 1 ti cc trng thi m Trng thng, -1 ti cc trng
thi m Trng thua v 0 ti cc trng thi hai bn ha nhau. Trong cc tr chi tnh
im khc th hm kt cuc c th nhn cc gi tr nguyn trong on [-m, m], vi m
l mt s nguyn dng no .

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

Cy tr chi Dodgem vi en i trc

2. Gii thut Minimax


Qu trnh chi c l qu trnh m Trng v en thay phin nhau a ra cc nc i hp
l cho n khi dn n trng thi kt thc cuc chi. Qu trnh ny biu din bi ng
i t nt gc ti nt l trn cy tr chi. Gi s ti mt nh u no trn ng i, nu u
l nh Trng (en) th cn chn mt nc i no n mt trong cc nh con en
(Trng) v ca u. Ti nh en (Trng) v s chn i tip n mt nh con Trng (en) w
ca v. Qu trnh ny tip tc cho n khi t n mt nh l ca cy.
Chin lc tm nc i ca Trng hay en l lun tm nhng nc i dn ti trng thi
tt nht cho mnh v ti nht cho i th. Gi s Trng cn tm nc i ti nh u, nc
i ti u cho Trng l nc i dn ti nh con v sao cho v l tt nht trong s cc nh
con ca u. n lt en chn nc i t v, en cng chn nc i tt nht cho mnh.
chn nc i ti u cho Trng ti nh u, cn xc nh gi tr cc nh ca cy tr chi
gc u. Gi tr ca cc nh l ng vi gi tr ca hm kt cuc. nh c gi tr cng ln
cng tt cho Trng, nh c gi tr cng nh cng tt cho en. xc nh gi tr cc
nh ca cy tr chi gc u, ta i t mc thp nht (cc nh l) ln gc u. Gi s cn xc
nh gi tr ca nh v m cc nh con ca n xc nh. Khi , nu v l nh Trng

th gi tr ca n l gi tr ln nht trong cc nh con, nu v l nh en th gi tr ca n


l gi tr nh nht trong cc nh con.
Sau y l th tc chn nc i cho Trng ti nh u Minimax(u, v), trong v l nh
con c chn ca u:
Procedure Minimax(u, v);
begin
val -;
for mi w l nh con ca u do
if val(u) <= MinVal(w) then
{val MinVal(w); v w}
end;
--------------------------------------------------Function MinVal(u); {hm xc nh gi tr cho cc nh en}
begin
if u l nh kt thc then MinVal(u) f(u)
else MinVal(u) min{MaxVal(v) | v l nh con ca u}
end;
--------------------------------------------------Function MaxVal(u); { hm xc nh gi tr cho cc nh Trng}
begin
if u l nh kt thc then MaxVal(u) f(u)
else MaxVal(u) max{MinVal(v) | v l nh con ca u}
end;
Trong cc th tc v hm trn, f(u) l gi tr ca hm kt cuc ti nh kt thc u.
Thut ton Minimax l thut ton tm kim theo chiu su. V l thuyt, chin lc
Minimax cho php tm nc i ti u cho Trng. Tuy nhin trong thc t, ta khng c
thi gian tnh ton nc i ti u ny. Bi v thut ton tnh ton trn ton b cy tr

chi (xem xt tt c cc nh ca cy theo kiu vt cn). Trong cc tr chi hay th kch


thc ca cy tr chi l cc ln. Chng hn, trong c vua, ch tnh n su 40 th cy
tr chi c n 10120 nh. Nu cy c cao m v ti mi nh c b nc i th
phc tp v thi gian ca thut ton Minimax l O(bm).
Trong thc t, cc tr chi u c gii hn v thi gian. Do , c th tm nhanh nc
i tt (khng phi ti u) thay v s dng hm kt cuc v xt tt c cc nh ca cy tr
chi, ta s dng hm nh gi v ch xem xt mt b phn ca cy tr chi.

3. Gii thut Minimax vi su hn ch


a) Hm nh gi
Hm nh gi eval cho mi nh u l nh gi mc li th ca trng thi u. Gi tr
ca eval(u) l s dng cng ln th trng thi u cng c li cho Trng, gi tr ca eval(u)
l s dng cng nh th trng thi u cng c li cho en, eval(u)=0 th trng thi u
khng c li cho i th no, eval(u)=+ th u l trng thi thng cuc cho Trng,
eval(u)=- th u l trng thi thng cuc cho en.
Hm nh gi ng vai tr rt quan trng trong cc tr chi, nu hm nh gi tt s nh
hng chnh xc vic la chn cc nc i tt. Vic thit k hm nh gi ph thuc vo
nhiu yu t: cc qun c cn li ca hai bn, s b tr cc qun c ny, a ra hm
nh gi chnh xc i hi nhiu thi gian tnh ton, tuy nhin, trong thc t ngi chi
b gii hn thi gian a ra nc i. V vy, vic a ra hm nh gi ph thuc vo kinh
nghim ca ngi chi. Sau y l mt s v d v cch xy dng hm nh gi:
V d 1: Hm nh gi cho c vua. Mi loi qun c gn mt gi tr s ph hp vi
sc mnh ca n. Chng hn, qun tt Trng (en) c gn gi tr 1 (-1), m hoc
tng Trng (en) c gn gi tr 3 (-3), xe Trng (en) c gn gi tr 5 (-5) v hu
Trng (en) c gn gi tr 9 (-9). Hm nh gi ca mt trng thi c tnh bng cch
ly tng gi tr ca tt c cc qun c trong trng thi . Hm nh gi ny c gi l
hm tuyn tnh c trng s, v c th biu din di dng:

s1w1 + s2w2 + + snwn


Trong , wi l gi tr ca qun c loi i, si l s qun loi .
y l cch nh gi n gin, v n khng tnh n s b tr ca cc qun c, cc mi
tng quan gia chng.
V d 2: Hm nh gi trng thi trong tr chi Dodgem. Mi qun Trng c gn gi
tr tng ng vi cc v tr trn bn c nh trong hnh bn tri. Mi qun en c gn
gi tr cc v tr tng ng nhu hnh bn phi:
30

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.

Trng cn trc tip en

Trng cn gin tip en

c thm 40 im

c thm 30 im

p dng cch tnh hm nh gi nu trn, ta tnh c gi tr ca cc trng thi cc


hnh di nh sau:

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;

4. Gii thut Minimax vi ct ta alpha-beta


Trong chin lc Minimax vi su hn ch th s nh ca cy tr chi phi xt vn
cn rt ln vi h>=3. Khi nh gi nh u ti su h, thut ton Minimax i hi phi
nh gi tt c cc nh ca cy gc u vi su h. Tuy nhin, phng php ct ct
alpha-beta cho php ct b nhng nhnh khng cn thit cho vic nh gi nh u.
Phng php ny lm gim bt s nh phi xt m khng nh hng n kt qu nh
gi nh u.
tng: Gi s ti thi im hin ti ang nh Trng a, nh a c anh em l v c
nh gi. Gi s cha ca nh a l b, b c anh em l u c nh gi, v cha ca b l c
nh hnh sau:
max

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

ca mt nh Trng, tham s ghi li gi tr nh nht trong cc gi tr ca cc nh


con nh gi ca mt nh en.
Thut ton:
Procedure Alpha_beta(u, v);
begin
-; -;
for mi w l nh con ca u do
if <= MinVal(w, , ) then
{ MinVal(w, , ); v w}
end;
--------------------------------------------------Function MinVal(u, , ); {hm xc nh gi tr cho cc nh en}
begin
if u l nh kt thc or u l l ca cy hn ch then
MinVal(u, , ) eval(u)
else for mi nh v l con ca u do
{ min{, MaxVal(v, , )} ;
If >= then exit};
/*ct b cc cy con t cc nh v cn li */
MinVal(u, , ) ;
end;
--------------------------------------------------Function MaxVal(u, , ); { hm xc nh gi tr cho cc nh Trng}
begin
if u l nh kt thc or l l ca cy hn ch then
MaxVal(u, , ) eval(u)
Else for mi nh v l con ca u do

max{, MinVal(v, , )} ;
If >= then exit};
/*ct b cc cy con t cc nh v cn li */
MaxVal(u, , )
end;

Chng 5 Cc phng php tm kim li gii tha mn


cc rng buc
1. Cc bi ton tha mn cc rng buc
a. Bi ton 8 qun hu

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.

Trng thi u: Mt mng ngu nhin 8 phn t, mi phn t nhn gi tr t 0 n 7

Trng thi ch: Gn cc gi tr khc nhau phm vi t 0 n 7 cho cc phn t ca


mng sao cho i-HAU[i] j-HAU[j] (khng nm trn cng ng cho ph) v
i+HAU[i] j + HAU[j] (khng nm trn cng ng cho chnh).

Chi ph: khng xc nh

Trong bi ton ny, trng thi ch l khng tng minh m c xc nh bi tp cc


rng buc. Khc vi cc bi ton trc, li gii ca bi ton ny khng phi l ng i
t trng thi u n trng thi ch m l mt php gn cc gi tr cho cc bin m t
trong trng thi ca bi ton sao cho php gn tha mn cc rng buc ca trng thi
ch.
gii cc bi ton tha mn cc rng buc, chng ta khng cn xc nh 5 thnh phn
nh cc bi ton trong cc chng trc, m chng ta cn quan tm n cc thnh phn
sau:
-

Tp cc bin m t trng thi ca bi ton: HAU[0], HAU[1], .., HAU[7] trong bi


ton 8 qun hu (HAU[i] l s hiu dng t con hu ct I, v d HAU[0]=0 c
ngha l con hu ct u tin (ct 0) s t dng u tin (dng 0).

Min gi tr cho cc bin: HAU[i] {0, 1, 2, 3, 4, 5, 6, 7}

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:
-

Tp cc bin: WA, NT, Q, NSW, V, SA, T (cc bin l cc k t u ca tn cc


bang)

Min gi tr: 7 bin c th nhn cc gi tr trong tp {, xanh l cy, xanh da tri}

Tp rng buc: WANT, WASA, NTSA, NTQ, SAQ, SANSW, SAV,


QNSW, NSWV

Li gii ca bi ton t mu th l php gn cc gi tr {, xanh da tri, xanh l cy}


cho tp 7 bin tha mn tp cc rng buc.
c. Bi ton gii m cc k t
Tm cc ch s thch hp cho cc k t php tnh sau l ng:

Bi ton gii m cc k t c m t bng 3 thnh phn sau:


-

Tp cc bin: T, W, O, F, U, R, N1, N2, N3 (N1, N2, N3 l 3 s nh ca php cng


cc v tr hng n v, hng chc, hng trm)

Min gi tr: Cc bin c th nhn cc gi tr: {0, 1, .., 9}

Rng buc: T, W, O, F, U, R phi khc nhau i mt; O + O = X +10.N1; N1 + W +


W = U + 10.N2; N2 + T + T = O + 10.N3; F=N3; T0; F0

Li gii ca bi ton l mt php gn cc ch s t 0 n 9 cho cc bin v tha mn tp


cc rng buc.

2. Gii thut quay lui vt cn


Vic gii bi ton tha mn cc rng buc l tm ra mt php gn gi tr cho tp cc bin
ca bi ton sao cho tp cc rng buc c tha mn. Gi s bi ton cn gn gi tr cho
n bin, chng ta c th tm li gii ca bi ton bng cc bc m t nh sau:
- Bt u bng php gn rng, cha gn gi tr cho bin no c { }.
- Nu tt c cc bin c gn gi tr, in ra li gii v thot khi chng trnh
- Tm gi tr gn cho bin cha c gi tr m khng xung t vi cc cc bin c
gn trc (xung t hay khng l da trn tp rng buc). Nu khng tm c gi tr
tha mn cc rng buc cho bin ang xt th hy b php gn gi tr cho bin lin trc
v tm gi tr mi cho n.
- Nu bin u tin khng cn gi tr ph hp gn th bi ton khng c li gii.
Gii thut gn gi tr cho n bin nh trn gi l gii thut quay lui vt cn hay th v sai
(backtracking). Trong gii thut, mi bc thc hin mt php gn vi cch lm ging
nhau v li gii ca bi ton ch xut hin bc gn cho bin cui cng. Gii thut trn
c th ci t quy nh sau:
Function Backtracking-Search(problem) returns a solution, or failure
Return RescusiveBacktracking({},problem);
------------------------------------------------------------Function RescusiveBacktracking(assignment, problem) returns a solution, or failure
if (length(assignment)==n) return assignment ;
var Chn_bin_cha_gn(problem, assignment);
for each value in Min_gi_tr(var,problem)
if KiemTraNhtQun(assignment U{var=value}, problem)
assignment= assignment U{var=value}
RescusiveBacktracking(assignment, problem);
assignment= assignment - {var=value}
return failure;

Bn cht ca gii thut RescusiveBacktracking l php duyt theo chiu su c thm


bc kim tra s tha mn ca cc rng buc mi bc. Th t vic gn gi tr cho cc
bin trong bi ton t mu th c th biu din bng th sau:

Mt phn th biu din th t php gn gi tr


cho cc bin ca gii thut Backtracking

3. Cc ci tin ca gii thut quay lui


Trong gii thut RescusiveBacktracking trn, th t cc bin c th nh hng n thi
gian v khng gian b nh ca gii thut. Chng ta c th thay i th t cc bin gn
gi tr, v khi bin c chn, chng ta c th chn gi tr no trc cc gi tr khc trong
cc gi tr hp l gn cho bin . i khi th t cc bin v th t cc gi tr gn cho
cc bin lm tng ng k hiu qu ca gii thut.
a) Nguyn tc chn bin tip theo
V li gii ca bi ton ch xut hin mc su n trong gii thut qui, v vy
ResicusiveBacktracking u tin pht trin theo chiu su tm ra php gn y (tc
l li gii) ca bi ton trong thi gian nhanh nht. Khi mt s bin c gn gi tr,
min gi tr ca cc bin cn li cng s b co hp li do tp cc rng buc chi phi. V

th, c th tm kim c php gn c su n nhanh nht m khng b hy b gn


li gi tr cho bin th c 2 nguyn tc sau:
-

Nguyn tc 1: La chn bin m min gi tr hp l cn li l t nht (bin c t la


chn nht nn c chn trc lm gim phc tp ca cy tm kim)

Nguyn tc 2: La chn bin tham gia vo nhiu rng buc nht (gn cho bin kh
tha mn nht)

Trong hai nguyn tc trn, nguyn tc th nht c u tin cao hn v c p dng


trong sut qu trnh thc hin ca gii thut. i vi php chn biu u tin hoc trong
trng hp c nhiu bin c cng s gi tr t nht th nguyn tc th hai s c s dng
la chn bin tip theo.
V d, i vi bi ton t mu th, ban u chng ta chn bin SA gn gi tr v SA
tham gia vo nhiu mi rng buc hn (nguyn tc 2). Khi chn mu bin cho SA th cc
bin WA, NT, Q, NSW,V s c chn bc gn tip theo do ch cn 2 la chn l hai
mu cn li (nguyn tc 1), trong 5 bin ny ta li ly bin NT, Q hoc NSW v n tham
gia vo nhiu rng buc hn (c th chn 1 trong ba bin ny ngu nhin). C nh vy
chng ta s chn th t cc bin cn li da trn Nguyn tc 1, nu c nhiu bin cng
tha mn nguyn tc 1 th chn trong chng bin tha mn Nguyn tc 2.
b) Nguyn tc chn th t gi tr gn cho bin
Mt khi mt bin c la chn gn gi tr th s c nhiu gi tr c th gn cho bin
. Vic la chn th t gi tr gn cho bin c tc ng khng nh trong vic tm ra li
gii u tin. Trong trng hp bi ton cn tm tt c li gii hoc bi ton khng c li
gii th th t cc gi tr gn cho bin khng c tc dng.
Trong trng hp bi ton yu cu tm ra mt li gii v chng ta mong mun tm ra li
gii trong thi gian nhanh nht th chng ta s la chn gi tr cho bin ang xt sao cho
n t rng buc n cc bin cn li nht. V d: nu ta chn WA=, NT=xanh da tri
v chng ta ang xem xt gn gi tr cho bin Q. C 2 gi tr c th gn cho Q m khng
b xung t vi hai php gn trc: v xanh da tri. Trong 2 cch ny th nu gn xanh

da tri th lm cho bin SA khng cn gi tr gn, cn nu gn mu th s c 1 gi


tr c th gn cho bin SA. Vy trong trng hp ny ta s gn mu cho bin Q
tng kh nng tm c li gii u tin.

c) Kim tra tin (kim tra trc forward checking)


Trong nguyn tc chn th t gi tr gn cho mt bin, chng ta cn phi kim tra xem
gi tr nh gn s tc ng th no i vi cc bin cha gn thng qua cc rng buc.
Vic hn xc nh tc ng trc nh vy gi l forward checking. Forward checking cn
c tc dng hn ch khng gian tm kim (hn ch min gi tr cho cc bin cn li khi
bin hin ti c gn mt gi tr c th). V d, nu ban u chng ta gn WA mu
th min gi tr ca cc bang ln cn (NT v SA) s khng th l mu c na. Nu
gn tip Q l mu xanh l cy th NT v SA ch cn nhn gi tr l xanh da tri v NSW
ch cn min gi tr l mu (xem din bin min gi tr cc bin thu hp dn trong qu
trnh gn gi tr cho bin WA v Q)

d) Lan truyn rng buc (constraint propagation)

Trong qu trnh gn gi tr cho bin, nu mt bin c m min gi tr ca n khng cn


gi tr no hp l gn th chng ta phi hy b vic gn gi tr cho bin ngay trc
v gn bng gi tr khc. Nu mt trong cc bin cn li m min gi tr ch 1 gi tr hp
l th chng ta c th p dng tp cc rng buc lin quan n bin gim min gi
tr cho bin cn li khc. Chng hn, bng forward checking chng ta xc nh c
bin SA ch c gi tr mu xanh da tri th chng ta p dng cc rng buc lin quan n
SA suy ra rng bin NSW khng th nhn gi tr mu xanh da tri. Khi NSW ch
cn mu v p dng cc rng buc lin quan n NSW suy ra V khng th nhn mu
, v.v. Qu trnh loi b min gi tr cho cc bin cn li da trn cc rng buc gi l
lan truyn rng buc nhm gim bt khng gian tm kim php gn hp l.

4. Cc gii thut ti u a phng

Chng 6 Cc phng php lp lun trn logic mnh


1. Lp lun v Logic
Loi ngi thng minh v bit lp lun. Liu my tnh c kh nng lp lun c
(nh con ngi) khng? tr li cu hi ny, chng ta trc ht hy cho bit th no l
lp lun.
Lp lun l hnh ng sinh ra mt pht biu ng mi t cc pht biu ng c
trc. Hay ni cch khc, mt ngi hoc mt h thng c gi l bit lp lun nu n
ch ra rng mt pht biu no c ng (true) khi cho trc mt tp cc pht biu ng
hay khng? Cc pht biu phi tun theo mt tp cc qui tc nht nh (ng php) v
cch xc nh mt pht biu l ng (true) hay l sai (false). Mt tp cc qui tc qui nh
ng php v cch xc nh ng ngha ng/sai ca cc pht biu gi l logic. Nh vy
logic l mt ngn ng m mi cu trong ngn ng c ng ngha (gi tr) l ng hoc
sai, v v vy c th cho php chng ta lp lun, tc l mt cu mi c gi tr ng khng
khi cho cc cu trc l ng hay khng. Cc cu cho trc c gi l c s tri thc
(Knowledge base - KB), cu cn chng minh l ng khi bit KB ng gi l cu truy
vn (query - q). Nu q l ng khi KB l ng th ta ni rng KB suy din ra q (k hiu l
KB q).
Trong chng ny v cc chng tip theo, chng ta s xy dng cc thut gii cho
php lp lun t ng trn cc logic khc nhau. Cc thut gii ny gip my tnh c th
lp lun, rt ra pht biu mi t cc pht biu cho trc.

2. Logic mnh : c php, ng ngha


Logic n gin nht l logic mnh . Cc pht biu (cu) trong logic mnh c
hnh thnh t cc k hiu mnh (mi k hiu c ngha l mt mnh v v vy c th
nhn gi tr ng hoc sai ty theo mnh l ng hay sai trong th gii thc) v cc

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

phc bit ng/sai v cc qui tc chuyn i tnh ng/sai gia cc cu n v


cu phc theo cc qui tc trn.
2.3 Cc v d:
Gi A l mnh ti chm hc, B l mnh ti thng minh, C l mnh ti
thi t im cao mn Tr tu nhn tao; Ta c th biu din cc cu sau trong logic mnh
:
- Nu ti chm hc th ti thi t im cao mn Tr tu nhn to: A C
- Ti va chm hc li va thng minh: A B
- Nu ti chm hc hoc ti thng minh th ti thi t im cao mn Tr tu nhn
to: A B C
2.4 Cc cu hng ng:
Trong logic mnh , ta c:
9 A A (lut ph nh kp)
9 A A (lut loi tr)
9 (A B) (AB) (BA)
9 (AB) A B
9 (AB) A B (lut DeMorgan i vi php )
9 (AB) A B (lut DeMorgan i vi php )
9 C (AB) (CA) (CB) (lut phn phi php i vi php )
9 C (AB) (CA) (CB) (lut phn phi php i vi php )
9 (A (AB)) B (Tam on lun)
9 Lut phn gii (xem mc 4)

3. Bi ton lp lun v cc gii thut lp lun trn logic mnh

Nh ni trong phn 1 ca Chng ny, lp lun l tr li cu hi mt cu q c l


ng khi cho c s tri thc (l mt cu phc l hi ca tp cc cu cho trc) l ng
hay khng (KB q)? Mt cch n gin nht l chng ta lp bng gi tr chn l cho
KB v cho q v kim tra xem tt c cc trng hp lm cho KB nhn gi tr true cng
lm cho q nhn gi tr true khng? Nu c th ta kt lun KB q, ngc li th kt lun
l khng. Phng php suy lun ny gi l phng php lit k v c th thut ton
ha c (chi tit xem trong mc 6 ca Chng ny).
Mt cch tip cn khc tr li cho cu hi KB q l s dng cc lut hng ng
ca logic mnh (xem trong mc 2.4). Ban u KB bao gm tp cc cu (hi ca
cc cu), chng ta p dng cc lut ca logic mnh trn tp cc cu ny sinh ra
cu mi, ri b sung cu mi ny vo KB, lp li p dng lut ca logic v sinh ra cu
mi, v.v., n khi no xut hin cu q trong KB th dng li (khi KB q) hoc
khng th sinh ra cu mi no na t KB (khi ny ta kt lun KB khng suy ra c
q) Li gii cho bi ton suy din theo cch ny l mt ng i t trng thi u n
trng thi ch ca bi ton tm ng sau:
9 Trng thi u: KB
9 Cc php chuyn trng thi: cc lut trong logic mnh , mi lut x p dng
cho KB sinh ra cu mi x(KB), b sung cu mi ny vo KB c trng thi
mi KB x(KB)
9 Trng thi ch: trng thi KB cha q
9 Chi ph cho mi php chuyn: 1
V s lut hng ng trong logic mnh l tng i ln nn nhn t nhnh ca bi
ton trn cng l ln (tt c cc cch p dng cc lut trn tp con tt c cc cu
ca KB), v vy khng gian tm kim li gii ca bi ton trn l rt ln. hn
ch khng gian tm kim li gii ca bi ton, chng ta biu din KB v q bng ch
cc cu dng chun hi (xem mc 4), khi chng ta ch cn p dng mt loi
lut l lut phn gii trn KB v mi php chuyn l mt php phn gii hai cu c

cha t nht mt literal l ph nh ca nhau trong KB, kt qu ca php phn gii


hai cu dng chun hi li l mt cu dng chun hi v c b sung vo KB, lp
li p dng lut phn gii trn KB n khi no KB cha cu q th dng. Chi tit
thut ton suy din da trn lut phn gii KB q c trnh by trong mc 7 ca
Chng ny (thc t th thut ton suy din phn gii tr li bi ton tng ng
(KB q) [].)
Gii thut suy din phn gii l gii thut y trong logic mnh , tc l vi
mi cu q m ko theo c t KB (q ng khi KB ng) th s dng gii thut
suy din phn gii u c th suy din c KB q (tc l khng c cu no ko
c t KB l khng suy din phn gii c); bi v bt c cu trong logic mnh
u c th biu din c bng cu dng chun hi (xem mc 4).
Do lin tc phi b sung cc cu mi vo KB v lp li tm kim cc cp cu c
th phn gii vi nhau c nn nhn t nhnh ca cy tm kim li gii tng dn
theo su ca cy tm kim. V vy khng gian v thi gian ca gii thut s
tng rt nhanh, gii thut phn gii lm vic khng hiu qu. khc phc nhc
im ny, ngi ta tm cch biu din KB dng cc cu Horn v p dng ch mt
loi lut (tam on lun, xem mc 5) suy din (tam on lun p dng trn 2
cu dng Horn v sinh ra cu mi cng l cu dng Horn). Thut gii suy din
tin/li trn c s tri thc dng Horn trnh by chi tit trong mc 8, n c phc
tp tuyn tnh i vi s cu trong KB. Tuy nhin thut gii suy din tin/li li l
khng y trong logic mnh , bi v c nhng cu trong logic mnh khng
th biu din c di dng Horn c th p dng c gii thut suy din
tin/li.

4. Cu dng chun hi v lut phn gii


Cu dng chun hi l cu hi ca cc cu tuyn (clause). Nh trn ni, cu
tuyn l cu dng A1 A2 An, trong cc Ai l cc k hiu mnh hoc
ph nh ca k hiu mnh . Vy cu dng chun hi c dng:

(A11 A12 A1n) (A21 A22 A2m) (Ak1 Ak2 Akr)


clause

clause

clause

Vi Aij l cc literal (l k hiu mnh hoc ph nh ca k hiu mnh ).


Vi mt cu bt k trong logic mnh , liu c th biu din di dng chun hi
nh trn c khng? Cu tr li l c. Vi cu s, chng ta lit k tt c cc k
hiu mnh xut hin trong n, lp bng gi tr chn l nh gi s, khi s l
hi cc tuyn m mi tuyn s tng ng vi dng lm cho s bng true false. Vi
mi tuyn (tng ng vi mt dng), nu ct ca k hiu mnh trn dng
c gi tr true th k hiu mnh s l literal dng m, cn nu gi tr l false th
k hiu mnh s l literal m dng trong cu tuyn. V d, chng ta mun bit
dng chun hi ca cu sau:
C AB
Trong cu trn, c 3 k hiu mnh l A, B, C. Ta lp bng gi tr chn l v
chuyn sang dng chun hi nh bng sau:
A

C AB

Clause

ABC

Dng chun hi:


C AB
= (ABC) (ABC) (ABC)

ABC

ABC

Vi cch chuyn mt cu sang dng chun hi nh dung bng gi tr chn l


trn, chng ta khng nh bt k cu no cng c th chuyn sang dng chun hi
c. Ngoi phng php s dng bng chn l, chng ta c th p dng 4 qui tc
sau y (theo th t c lit k) chuyn bt k cu no sang dng chun hi
c.
9 QT1: Loi b : thay th bng ( )( ).
9 QT2: Loi b : Thay th bng
9 QT3: chuyn hoc loi b du t trc cc k hiu bng cc lut
deMorgan v lut ph nh kp ()= ; ()= ;
= .
9 QT4: p dng lut phn phi ca php i vi php
Chng hn, chng ta cn chuyn cu trong v d trn sang dng chun hi, bng
cch p dng ln lt cc qui tc trn:
C AB
= (C) (AB)

(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)

v Pi,Qj l cc literal ph nh ca nhau (Pi=Qj)


th chng ta cng c clause sau l ng
(P1 P2 Pi-1 Pi+1 PnQ1 Q2 Qj-1 Qj+1 Qm)
(Clause mi l tuyn cc literal trong hai clause ban u nhng b i Pi v Qj)

9 Kt qu ca php phn gii cng l mt clause (tuyn cc literal), hay ni


cch khc php phn gii c tnh ng, phn gii ca cc clause l mt
clause. y l tnh cht rt quan trong trong vic xy dng gii thut suy
din t ng trnh by pha di.
Cu dng chun tuyn (tham kho thm): Cu dng chun tuyn l cu tuyn ca
cc hi. Ging nh cu trc ca cu dng chun hi, cu dng chun tuyn cng
c cu trc nh vy, nhng chng ta i ch du bi du v ngc li. Vi bt
k mt cu trong logic mnh , chng ta cng c th biu din n di dng
chun tuyn. Tuy nhin chng ta khng c lut ng lin quan n tuyn ca hai
cu hi sinh ra cu hi mi nh lut phn gii ca hai cu tuyn.

5. Cu dng Horn v tam on lun


Cu dng Horn: Nh trn ta ch ra rng tt c cc cu trong logic mnh u
c th biu din c di dng chun hi, tc l hi ca cc clause, mi clause
c dng: P1 P2 Pi Pn, vi Pi l cc literal. Nu trong clause m c nhiu
nht mt literal dng (tc l khng c k hiu ph nh ng trc) th clause
gi l cu dng Horn. Nh vy cu dng Horn l cu c mt trong ba dng:
P1 P2 Pn (khng c literal dng no)
hoc P (c mt literal dng v khng c literal m no)
hoc P1 P2 PnQ (c mt literal dng l Q v t nht mt
literal m)
vi P1, P2,,Pn v Q l cc k hiu mnh .

Nu chuyn cc cu dng Horn sang dng lut th chng c dng nh sau:


(P1 P2 Pn)
hoc P
hoc P1 P2 Pn Q (c mt literal dng l Q)
Trong cu dng th hai v cu ba gi l cu Horn dng (c ng 1 literal
dng) thng c s dng biu din tri thc trong c s tri thc KB, cu dng
th nht ch xut hin trong biu din cc cu truy vn.
Tam on lun (hay lut Modus ponens):
Nu chng ta c cc cu Horn dng sau l ng:
P 1,
P 2,

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 .

6. Thut ton suy din da trn bng gi tr chn l


Trong cc phn cn li ca Chng ny, chng ta s xy dng cc gii thut ci t
cho my tnh n bit lp lun. Gii thut lp lun t ng l gii thut ch ra rng
nu KB (c s tri thc) l ng th cu truy vn q c ng hay khng?
Phng php lp lun u tin l da lit k cc tt c cc trng hp c th c ca
tp cc k hiu mnh , ri kim tra xem liu tt c cc trng hp lm cho KB ng
xem q c ng khng. Chi tit thut gii nh bng sau:

Function Suydien_Lietke(KB, q) return true or false


symbols=get_list_of_symbols(KB,q);
n= symbols.size();
int b_gi_tr[n]; //dng lu b cc gi tr logic (true:1, false:0)
for (i=1; i2n; i++) {
b_gi_tr [1,..,n]=generate(i); // sinh ra b th i
if (evaluate(KB, b_gi_tr)==true && evaluate(q, b_gi_tr)=false)
return false
return true;

Thut gii trn l sinh ra ton b bng gi tr chn l nh gi KB v q, nu ch cn


mt trng hp KB ng m q sai th q s kt lun KB khng suy din c ra q.
Gii thut trn c phc tp thi gian l 2n * m, vi n l s k hiu c trong KB,q v
m di cu trong KB.

7. Thut ton suy din da trn lut phn gii


khc phc nhc im phc tp thi gian ca gii thut suy din da trn lit
k trn, chng ta a ra thut gii nhanh hn, thi gian thc hin nhanh hn.

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;

8. Thut ton suy din tin, li da trn cc cu Horn


Nh ta thy trong mc 5, lut Modus ponens l ng trong cc cu dng Horn
dng, c ngha l nu hai cu dng Horn dng tha mn cc iu kin ca lut
Modus ponens th s sinh ra cu dng Horn dng mi. Nu chng ta biu din c
KB v q bng cc cu dng Horn dng th c th s dng lut Modus ponens suy
din.
Khi KB biu din bng hi cc cu Horn dng, chng ta cc cu Horn dng ny
thnh 2 loi: (1) cu c ng mt literal dng m khng c literal m no, y l cc
cu n hay l cc k hiu mnh ; (2) cu c ng mt literal dng v c t nht
mt literal m, y l cc cu ko theo m phn thn ca php ko theo ch l mt k
hiu mnh .
C hai cch ci t thut gii suy din da trn lut Modus ponens trn cc cu Horn
dng. Cch th nht l bt u t cc k hiu mnh c cho l ng trong KB,

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).

Function Forward_Horn(KB, q) return true or false


Input: - KB tp cc cu Horn dng, nh s clause1, .., clausen
- q: cu truy vn dng cu n (k hiu mnh )
Output: true or false
Cc bin a phng:
-

Int count[0.. n], count[i] l s k hiu xut hin trong phn iu kin ca
clausei.

Bool proved[danhsach_kyhieu]: proved[kyhieu]=1 nu kyhieu c


chng minh l suy din c t KB, ngc li =0; ban u khi to=0
vi mi k hiu

working_symbols: danh sch k hiu ang xem xt, khi u bng danh
sch cc k hiu c lp trong KB

while working_symbols is not empty


p= pop(working_symbols);
if (!proved[p])
proved[p]=1;
for each clausei whose p appears
count[clausei] = count[clausei] -1;
if count[clausei]==0
if head[clausei]==q return true;
push (head[clausei], working_symbols);
return false;

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.

Chng 7 Cc phng php lp lun trn logic cp mt


Trong Chng trc chng ta tm hiu logic mnh , mt ngn ng a ra cc qui
tc xc nh ng php v ng ngha (tnh ng/sai) cc cu. Cu n gin nht trong
logic mnh l cc k hiu mnh , n biu din cho cc s kin hoc thng tin trong
th gii thc. Cu phc tp hn lin kt cc cu n bng cc php ni logic (, , , ,
) biu din mnh phc, m t quan h hoc lin kt cc mnh n. Nh vy,
logic mnh ch c th biu din c cc MNH v cc lin kt hoc quan h gia
cc MNH . V vy sc mnh biu din ca logic mnh ch gii hn trong th gii
cc mnh . N khng quan tm n ni dung cc mnh nh th no. V th m logic
mnh c nhng hn ch trong vic biu din v suy din. V d, nu chng ta cho c
s tri thc pht biu trong ngn ng t nhin nh sau:
An l sinh vin.
Mi sinh vin u hc gii.
Vi c s tri thc nh vy ta c th suy din ra rng An hc gii. Tuy nhin nu s
dng logic mnh th cu An l sinh vin c th biu din bng mt k hiu mnh
P1; cn cu Mi sinh vin u hc gii th thng thng biu din bng mt k hiu
mnh , chng hn Q. Mnh m chng ta cn suy din An hc gii k hiu bi T1.
Khi c s tri thc c dng:
P1
Q
v mnh cn truy vn l T1. V logic mnh khng quan tm n ni dung bn trong
cc mnh nn chng ta khng th thc hin suy din {P1Q} T1 c v chng
chng lin quan g vi nhau. Nu chng ta bit c danh sch tt c cc sinh vin, chng
hn {An, Bnh, , Yn} th chng ta c th chuyn cu Mi sinh vin u hc gii
thnh cu phc [An l sinh vin th An hc gii] V [Bnh l sinh vin th Bnh hc

gii] V V [Yn l sinh vin th Yn hc gii] th cu s biu din c thnh


cu phc trong logic mnh dng:
(P1 T1) (P2 T2) (Pn Tn)
Vi P1,T1 l k hiu mnh ni trn; P2 l mnh Bnh l sinh vin, T2 l
Bnh hc gii, , Pn l Yn l sinh vin v Tn l Yn hc gii.
Khi , s dng mnh P1 bit l ng th ta p dng lut Modus ponens trong logic
mnh th suy din ra c T1.
Vi cch biu din cu Mi sinh vin u hc gii bng (P1 T1) (P2 T2)
(Pn Tn) trong logic mnh ta c th Modus ponens vi cu trc l P1
sinh ra T1. Tuy nhin khi s cu c trong c s tri thc s l rt ln (c bao nhiu sinh
vin th c by nhiu cu Pi Ti), v khi cc thut ton suy din t ng s tr nn
khng hiu qu. V quan trng hn cu c tnh cht ph bin Mi sinh vin u hc
gii khng th no biu din thnh dng lit k cho tng sinh vin c. Logic mnh
thiu cc cu m t c trng cho mt lp cc i tng (cng ging nh nu mt ngn
ng lp trnh m thiu cc cu lnh lp nh for, while m ch c cc kiu lnh n l v
r nhnh), v th m sc mnh biu din ca n rt hn ch.
Trong chng ny, chng ta s xem xt logic cp mt, hay logic v t, mt m rng ca
logic mnh m cho php biu din nhng mnh mang tnh ph qut (vi mi) v
nhng mnh mang tnh c th (tn ti) mt cch d dng. lm c iu ,
chng ta phn tch mnh thnh dng (ch ng - v t) hoc (ch ng - v t - tn ng)
v chuyn ch ng v tn ng thnh i tng (hoc bin) ca v t. V vy m cu n
ca logic cp mt c dng V_t(ch_ng) hoc V_t(ch_ng, tn ng); chng hn
An l sinh vin biu din l Sinhvien(An); An yu Bnh biu din l Yeu(An,Binh).
Chnh v th m ta gi n l logic v t. T cc cu n nh vy ta xy dng cc cu
phc s dng cc k hiu (, , , , ) v , (hai k hiu ny khng c trong logic
mnh ). Quan trng hn, lm th no chng ta xy dng cc thut gii lp lun t ng,
gii thut ci t cho my tnh n c th chng minh c KB q, vi KB v q l cc

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 Cu n: K_hiu_v_t(hng_thc_1, hng_thc_2, , hng_thc_k)


l mt cu (cu n), trong hng_thc_i l biu thc ca cc i tng,
c php ca hng thc c xy dng t cc k hiu hng, bin v hm
nh sau:
Cc k hiu hng v cc k hiu bin l mt hng thc
Nu t1, t2, ..,tn l cc hng thc v f l mt k hiu hm gm n tham
s th f(t1, t2, ..,tn) cng l mt hng thc
V d v cc cu n l:
love(An,Binh)
father(An,Nhan)
sinhvien(Hoa)
9 Cu phc: Nu A, B l cc cu v x l mt k hiu bin th cc cng thc
sau cng l cu:
A
(A B)
(A B)
(A B)
(A B)
x, A
x, A
Cc khi nim v qui c khc:
9 Nu mt hng thc khng cha bin th gi l hng thc nn
9 Mt cu n cng c tn gi l cu phn t hay cng thc phn t

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.

(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
(A B) biu din mi quan h A ko theo B v B ko theo A
x A biu din s ph bin ca A, nhn gi tr true tt c cc cu
sinh ra t A bng cch thay x bi mt gi tr/i tng c th thuc
min gi tr bin x u l true, ngc li th cu ph bin ny nhn
gi tr false
x A biu din s tn ti ca A, nhn gi tr true khi c mt gi tr
x0 trong min gi tr ca bin x lm cho A true, false trong cc
trng hp cn li.
Nh vy, vic xc nh tnh ng/sai ca mt cu n (v t) l da trn
tnh ng sai ca s kin hoc thng tin m n m ch, cn vic xc nh
tnh ng sai ca cu 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 phc bit ng/sai v cc qui tc chuyn i tnh ng/sai gia
cc cu n v cu phc theo cc qui tc trn.
1.3 Cc v d:
Cc cu trong ngn ng t nhin c th biu din trong logic v t cp mt:
9 An l sinh vin

Sinhvien(An)

9 Nam l cha ca Hon

Cha(Nam,Hon)

9 Mi sinh vin u hc gii

x Sinhvien(x) Hocgioi(x)

(ch thng i vi . Khc vi x Sinhvien(x) Hocgioi(x))


9 Trong sinh vin c bn hc gii x Sinhvien(x) Hocgioi(x)
(ch thng i vi . Khc vi x Sinhvien(x) Hocgioi(x).

1.4 Cc cu hng ng (c gi tr chn l lun bng true)


Ngoi cc cng cu hng ng trong logic mnh , chng ta thm cc cu hng ng
lin quan n cc lng t nh sau:
x P(x) y P(y)

(qui tc i tn)

x P(x) y P(y)

(qui tc i tn)

xy P(x,y) yx P(x,y)

(qui tc giao hon)

xy P(x,y) yx P(x,y)

(qui tc giao hon)

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)

x P(x) P(a), vi a l gi tr thuc min gi tr ca X

(loi b )

x P(x) P(e), vi e l mt gi tr v danh, khng c trong c s tri thc


(loi b )
P(a) x P(x)

(a k hiu vo)

Lut phn gii tng qut (xem mc 3 ca Chng ny)


Modus Ponens tng qut (xem mc 4 ca Chng ny)

2. Lp lun trong logic v t cp mt


V d: Xem xt bi ton lp lun (hay chng minh) c pht biu trong ngn ng
t nhin nh sau:
Cho:
An l con trai. Thy l con gi. Tc ca con gi di hn tc ca con trai
Hy chng minh:

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)

xy Contrai(x) Congai(y) Tocdaihon(y,x)

(3)

Chng ta cn chng minh (cu truy vn q):


Tocdaihon(Thuy,An).
y l mt li gii ca bi ton trn (li gii l dy cc bc p dng lut logic v
t cp mt a c s tri thc v iu cn chng minh):
Bc 1: T (1) v (2) ta p dng lut a vo (A,B A B):
Contrai(An) Congai(Thuy)

(4)

Bc 2: p dng lut loi b trong (3) vi {x/An, y/Thuy} ta c:


Contrai(An) Congai(Thuy) Tocdaihon(Thuy,An)

(5)

Bc 3: p dng lut Modus ponens cho (4) v (5) ta c:


Tocdaihon(Thuy,An)

(6)

n y ta c iu phi chng minh.


Cng ging nh trong logic mnh , bi ton lp lun (chng minh KB q) c
th xem l bi ton tm ng i nh sau:
9 Trng thi u: KB
9 Cc php chuyn trng thi: mi php chuyn trng thi l mt ln p dng
lut trong logic v t cp mt (nhiu hn cc lut ca logic mnh ) trn tp
cu trong KB. Mi lut l p dng cho KB sinh ra cu mi l(KB), b sung cu
mi ny vo KB c trng thi mi KB l(KB)

9 Trng thi ch: trng thi KB cha q


9 Chi ph cho mi php chuyn: 1
Bi ton trn c th tm c li gii bng cch p dng cc thut ton tm kim
nh trnh by trong cc chng u ca gio trnh ny v tm kim. Tuy nhin
khng gian tm kim li gii ca bi ton ny l rt ln. Cng ging nh trong
logic mnh , nu c s tri thc (KB) v cu truy vn (q) c biu din bng
(hoc c th chuyn c sang) cc cu c dng thch hp, th chng ta c th ch
cn p dng mt loi lut ca logic mnh chng minh rng KB q. C th
l nu KB v q biu din c bng cc cu Horn th ch cn p dng lin tip cc
lut Modus ponens l chng minh c KB q (xem mc 5,7,8); cn nu KB v
q biu din bng cc cu dng chun hi th ta ch cn lin tip p dng cc lut
phn gii l thc hin c vic suy din KB q (xem mc 4,6).

3. Php ng nht hai v t, thut gii ng nht


Php ng nht l g? Khi p dng lut trong logic v t, ta thng xuyn gp phi
vic i sch cc v t trong hai cu xem chng c th ng nht c vi nhau
khng (tc l chng s hon ton nh nhau trn mt b gi tr no . Chng hn
bc 2 trong chng minh v d trn, khi p dng Lut loi b k hiu trong
cu c tnh ph bin (3) c cu c th trn b gi tr (x=An, y=Thuy), ta phi
i snh cc cp v t <Contrai(An) v Contrai(x)>, <Congai(Thuy) v
Congai(y)> tm ra gi tr x=An, y=Thuy cho cc cp v t l hon ton
nh nhau ( c p dng cc lut tip theo). Vic i snh hai v t tm ra mt
b gi tr cho cc bin sao cho hai v t l ng nht c gi l php ng nht.
Vy php ng nht l thao tc thc hin trn hai v t (hoc ph nh ca v t)
v cho kt qu l s thay th cc bin xut hin trong cc v t bng cc hng thc
(cc gi tr) hai v t l nh nhau.
V d:
9 ng nht (Contrai(An), Contrai(y)) = {y/An}

9 ng nht (Yu(An,x), Yu(y,Binh)) = {x/Binh; y/An}


9 ng nht (Yu(An,x), Yu(y, Emgai(Hoa)) = {x/Emgai(Hoa); y/An} (ch
: trong trng hp ny Emgai(x) l mt hm em gi ca x, khng phi l
v t)
9 ng nht (Yeu(An,x), Yeu(An,y)) = {x, y/x }
9 ng nht (Ban(An,x), Ban(y, Emgai(y))={x/Emgai(An); y/An}
9 ng nht (P(a,X), P(X,b)) = failure
9 ng nht[parents(x, father(x), mother(Jane)), parents(Bill, father(y),
mother(y))]= failure
Gii thut ng nht:
9 Input: hai literal p v q.
9 Output: S thay th gn gi thay th cc bin theta
Procedure ng_nht(p, q, theta) return true or false
(r,s)=hng thc u tin khng nht qun gia (p,q);
if ((r,s)=empty) return theta; thnh cng
if (l_bin(r))
theta = theta {r/s}
ng_nht(thaythe(theta,p), thaythe(theta,q), theta)
elseif (l_bin(s))
theta = theta {s/r}
ng_nht(thaythe(theta,p), thaythe(theta,q), theta)
else return failure

4. Cu dng chun hi, lut phn gii tng qut


a) Cu dng chun hi: Cng ging nh trong logic mnh , cu dng chun hi
trong logic v t cp mt c dng sau (l hi ca cc tuyn)
(A11 A12 A1n) (A21 A22 A2m) (Ak1 Ak2 Akr)
clause

clause

clause

vi Aij l cc literal (l k hiu v t hoc ph nh ca k hiu v t).


(chnh xc hn phi c thm cc lng t cho tt c cc bin trong cu)
b) Chuyn cu bt k sang dng chun hi: mt cu bt k trong logic v t cp mt
u c th biu din sang dng chun hi. chuyn mt cu sang dng chun
hi, ta p dng cc qui tc sau y:
9 QT1: Loi b : thay th bng ( )( ).
9 QT2: Loi b : Thay th bng
9 QT3: chuyn hoc loi b du t trc cc k hiu bng cc lut deMorgan
v lut ph nh kp ()= ; ()= ; = ;
xP(x)= xP(x); xP(x)= xP(x)
9 QT4: Chun ha cc bin: cc bin lng t khng c trng tn, v d
xP(x) xQ(x) chuyn thnh xP(x) yQ(y)
9 QT5: chuyn cc lng t v u cu, v d xP(x) yQ(y) chuyn thnh
xy P(x) Q(y)
9 QT6: loi b bng gi tr v danh: v d x Rich(x) tr thnh Rich(c) vi c l
k hiu hng v danh, khng trng vi cc k hiu c trong c s tri thc. Ch
khi t bn trong , phi s dng hm v danh; v d: xyz P(x,y,z) tr

thnh xz P(x,f(x),z) vi f l k hiu hm v danh, khng trng vi k hiu


hm khc trong c s tri thc.
9 QT7: b qua cc k hiu lng t
9 QT8: p dng lut phn phi ca php i vi php
V d: Biu din cc cu sau thnh cc cu trong logic v t v chuyn chng v
dng chun hi:
Tt c con ch u sa v ban m. H nh ai c mo th nh ngi u khng
c chut. Nhng ai kh ng th u khng nui bt c con g m sa v ban m.
B Bnh c mo hoc c ch
x (L_Ch(x) Sa_v_m(x))

(1)

xy (C(x,y) L_Mo(y) z (C(x,z) L_Chut(z)))

(2)

x (Kh_ng(x) z(C(x,z) Sa_v_m(z))

(3)

x (C(BBinh,x) (L_Mo(x) L_Ch(x))

(4)

p dng cc qui tc (QT) trn, ta chuyn sang cc cu dng clause nh sau:


(1) Tng ng vi:
(2)

L_Ch(x) Sa_v_m(x)

xy ( (C(x,y) L_Mo(y)) (z (C(x,z) L_Chut(z))))


xy (C(x,y) L_Mo(y) (z (C(x,z) L_Chut(z))))
xyz (C(x,y) L_Mo(y) (C(x,z) L_Chut(z)))
C(x,y) L_Mo(y) C(x,z) L_Chut(z)

(3)

x (Kh_ng(x) ( z(C(x,z) Sa_v_m(z)))


x (Kh_ng(x) (z(C(x,z) Sa_v_m(z)))
xz (Kh_ng(x) C(x,z) Sa_v_m(z))
Kh_ng(x) C(x,z) Sa_v_m(z)

(4)

x (C(BBinh,x) (L_Mo(x) L_Ch(x))


C(BBinh,a) (L_Mo(a) L_Ch(a))

(tch ra thnh hai clause)

c) Lut phn gii:


Nu chng ta c hai clause sau l ng:
(P1 P2 Pi Pn)
(Q1 Q2 Qj Qm)
v c php thay th theta sao cho
thaythe(theta,Pi)= thaythe(theta,Qj)
th chng ta cng c clause sau l ng
thaythe(theta, P1 P2 Pi-1 Pi+1 PnQ1 Q2 Qj-1 Qj+1 Qm)
(Clause mi l tuyn cc literal trong hai clause ban u nhng b i Pi v Qj)

d) Kt qu ca php phn gii cng l mt clause (tuyn cc literal), hay ni cch


khc php phn gii c tnh ng, phn gii ca cc clause l mt clause. y l
tnh cht rt quan trong trong vic xy dng gii thut suy din t ng trnh by
pha di.

5. Cu dng Horn v tam on lun tng qut trong logic cp 1


Cu dng Horn: Tt c cc cu trong logic v t cp mt u c th biu din c
di dng chun hi, tc l hi ca cc clause, mi clause c dng: P1 P2 Pi
Pn, vi Pi l cc literal. Nu trong clause m c nhiu nht mt literal dng
(tc l khng c k hiu ph nh ng trc) th clause gi l cu dng Horn.
Nh vy cu dng Horn l cu c mt trong ba dng:
P1 P2 Pn (khng c literal dng no)
hoc P (c mt literal dng v khng c literal m no)

hoc P1 P2 PnQ (c mt literal dng l Q v t nht mt


literal m)
vi P1, P2,,Pn v Q l cc k hiuv t.
Nu chuyn cc cu dng Horn sang dng lut th chng c dng nh sau:
(P1 P2 Pn)
hoc P
hoc P1 P2 Pn Q (c mt literal dng l Q)
Trong cu dng th hai v cu ba gi l cu Horn dng (c ng 1 literal
dng) v thng c s dng biu din tri thc trong c s tri thc KB. Cu
dng th nht c gi l cu dng Horn m (khng c literal dng no), v ph
nh cu dng Horn m ny s l hi cc cu Horn dng. Cu dng Horn m ch
xut hin trong biu din cc cu truy vn (q) v khi q s l cc cu Horn
dng v thay v chng minh KB suy din ra q th ta chng minh KB q suy
din ra [], khi ny c s tri thc KB q l hi cc cu dng Horn dng.
Tam on lun (hay lut Modus ponens tng qut):
Nu chng ta c cc cu Horn dng sau l ng:
P1,
P2,

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

Kt qu lut Modus ponens t hai cu dng Horn dng sinh ra cu


thaythe(theta,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 .

6. Gii thut suy din phn gii


Gii thut suy din phn gii da trn lut phn gii: hai cu tuyn (clause) c mt
literal dng v mt literal m m ng nht vi nhau c th s sinh ra cu
tuyn mi l tuyn cc literal cn li ca c hai cu sau khi b i hai literal ng
nht ny. Cu mi (l kt qu ca php phn gii) cng l cu dng tuyn (clause)
v khi b sung vo KB (tc l KB cu_clause_mi) th kt qu KB cng l dng
chun hi (hi cc cu tuyn). V vy m trc khi p dng gii thut phn gii ta
phi chuyn KB q sang dng chun hi.
Ging nh gii thut phn gii trong logic mnh , gii thut phn gii trong loc
v t cp mt cng thc hin lin tip cc php phn gii hai clause trong biu din
dng chun hi ca KB q, b sung clause mi vo KB v lp li n khi hoc
sinh ra cu rng ([]) hoc khng kt qu phn gii khng b sung thm clause no
vo KB c na.

Function Resolution(KB, q) return true or false


KB = KB q
clauses=get_list_of_clauses(KB);
while ([] not in KB)
(Ci,Cj)=get_resolvable_pair(KB); // ly hai cu m cha cp literals
//c th ng nht vi nhau c,
//nhng du ngc nhau
if (Ci,Cj)=empty return "failure
else
resolvent = resolution-rule(S1, S2);
KB = KB resolvent;
return success;
Mi ln thc hin php phn gii l mt php chuyn trng thi t KB sang trng
thi mi KB resolvent (vi resolvent l kt qu ca php phn gii). mt trng
thi bt k, c nhiu cp clause c th phn gii c vi nhau, hay ni cch khc
c nhiu php chuyn trng thi; vic la chn php chuyn trng thi no l da
trn chin lc la chn, chng ta c th chn theo chiu rng, hoc chn theo
chiu su nh cc chin lc tm kim theo chiu rng hoc theo chiu su nh
trnh bay trong Chng Cc phng php tm kim li gii.
Vic chng minh KBq[] cng c th thc hin bng chin lc chng minh
li (tm kim li), xut pht t q (l ch ca bi ton gc KBq ch khng phi
ch []) ta tm cc cu trong KB c th phn gii c vi q, p dng lut phn
gii theo chiu rng, n khi no [] c sinh ra th dng. Gii thut phn gii
theo cch ny gi l gii thut phn gii li.

V d minh ha: Gi s chng ta c c s tri thc nh cho trong v d mc 4


trong Chng ny, hy chng minh Nu b Bnh l ngi kh ng th nh b y
khng c chut. Cu cn chng minh ny tng ng vi cu sau trong logic v
t cp mt (q):
Kh_ng(BBinh) z(C(BBinh,z) L_Chut(z))
V q l cu:
(Kh_ng(BBinh) z(C(BBinh,z) L_Chut(z)))
Hay cc cu tng ng sau:
[Kh_ng(BBinh) (z(C(BBinh,z) L_Chut(z)))]
[Kh_ng(BBinh) z(C(BBinh,z) L_Chut(z)))]
Kh_ng(BBinh) C(BBinh,b) L_Chut(b)
(vi b l k hiu hng v danh)
Khi KB q gm cc clause sau (dng chun hi):
L_Ch(x) Sa_v_m(x)

(1)

C(x,y) L_Mo(y) C(x,z) L_Chut(z)

(2)

Kh_ng(x) C(x,z) Sa_v_m(z)

(3)

C(BBinh,a)

(4)

L_Mo(a) L_Ch(a)

(5)

Kh_ng(BBinh)

(6)

C(BBinh,b)

(7)

L_Chut(b)

(8)

KB q [] theo cc bc phn gii nh sau:

- (1) v (5) {x/a}


L_Mo(a) Sa_v_m(a)

(9)

- (2) v (8) {z/b}


C(x,y)L_Mo(y)C(x,b)

(10)

- (7) v (10) {x/BBinh}


C(BBinh,y)L_Mo(y)

(11)

- (9) v (11) {y/a}


C(BBinh,a) Sa_v_m(a)

(12)

- (4) v (12)
Sa_v_m(a)

(13)

- (3) v (13) {z/a}


Kh_ng(x) C(x,a)

(14)

- (4) v (14) {x/BBinh}


Kh_ng(BBinh)

(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.

7. Thut ton suy din tin da trn cu Horn


Gii thut suy din phn gii trn l y trong logic v t cp mt, c ngha l
gii thut s cho php chng minh c KBq ch bng p dng mi loi lut phn
gii nu q chng minh c t KB trong logic v t cp mt (v ta lun c th chuyn
KBq v dng chun hi cc cu tuyn v v th ch cn p dng lut phn gii).
Tuy nhin, gii thut phn gii phi duyt tt c cc cp cu tuyn c trong KB m c
th phn gii c vi nhau v chn cch phn gii theo mt chin lc (tm kim)

no , sau b sung kt qu phn gii vo KB v lp li thc hin tm kim cc


cu tuyn c th phn gii c. Gii thut ny thng khng hiu qu v s lng
cu tuyn trong KB s tng ln sau mi ln lp.
Trong mc ny, chng ta s xem xt cc gii thut chng minh hiu qu hn. Nh
xt trong mc 5, lut Modus ponens (hay tam on lun) c tnh cht ng trong cc
cu Horn dng (cu tuyn c ng mt literal dng), v th nu c KB v q (hoc
q) c th biu din c dng cu Horn dng th chng ta c th chng minh
KBq (hoc KBq[]) ch bng cc lut Modus ponens.
chng minh KBq (khi KB biu din bng hi cc cu Horn dng), ta chia KB
thnh 2 loi cu: (1) cu c mt literal dng v khng c literal m no (hay gi l
cc cu n hoc cc cu s kin) v (2) cu c mt literal dng v c t nht mt
literal m (hay goi l cu lut). Gii thut suy din tin thc hin nh sau: bt u vi
tp cc cu s kin trong KB, lp li vic p dng cc lut Modus ponens tng qut
(xem mc 5) sinh ra cc cu s kin mi, nu cu s kin mi ny l q th dng v
thng bo suy din thnh cng, nu khng th b sung cc cu s kin mi ny vo
tp cc cu s kin bit v p dng cc lut Modus ponens tng qut; nu khng
c cu s kin mi no c sinh ra th vic chng minh KBq l tht bi. Chi tit
gii thut suy din tin da trn cc cu Horn dng v lut Modus ponens tng qut
nh trang sau.
Gii thut suy din tin c mt s nhc im, trong c nhc im l n s sinh
ra rt nhiu s kin m khng lin quan g n cu truy vn (v bn cht ca gii
thut ny l tm kim theo chiu rng).

Function FOL_Forward_Horn(KB, q) return true or false


Input: - KB tp cc cu Horn dng (cu s kin, cu ko theo)
- q: cu truy vn dng cu n (k hiu v t)
Output: true or false
while new is not empty
new {};
for each r in {cu ko theo trong KB}
(P1 P2 Pn Q) Phntchcu(r);
for some P1, P2, Pn in {cu s kin trong KB}
if (ng_nht(P1P2Pn, P1P2Pn, )
Q thaythe( ,Q);
if (ng_nht (Q,q)) return true
else new new Q;
KB KB new;
return false;

8. Thut ton suy din li da trn cu Horn

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.

1. Lp trnh logic, mi trng lp trnh SWI Prolog


Lp trnh logic:
Khc vi cc lp trnh th tc (lp trnh C, Pasal, Fortran, v.v.) l ch ra th t cc cu
lnh x l trn tp cc cu trc d liu gii quyt bi ton sinh ra output t input; lp
trnh logic l khai bo cc s kin, tri thc (lut) bit (hoc ng) v s dng my
tnh (c trang b thut gii suy din) truy vn mt s kin mi hoc tri thc mi t cc
s kin v tri thc cho (xem s bn di). Cc loi tri thc truy vn c th kim tra
mt s kin hoc tri thc no c ng hay khng, hoc lit k cc b gi tr ca cc
bin sao cho tha mn iu kin logic no (tc l lm cho mt biu thc logic no
nhn gi tr true).

C s tri thc
(KB)

Th tc suy din
(SWI Prolog)

Tri thc truy vn?

Lp trnh logic = Khai bo C s tri thc + Truy vn


tr li cc cu truy vn, chng ta cn th tc suy din (lp lun) nh trnh by
trong cc chng trc. Chng ta bit, khi c s tri thc biu din c thnh hi cc
cu Horn th thut ton suy din s rt hiu qu (c phc tp thi gian l tuyn tnh i
vi s cu Horn trong c s tri thc). V th m hu ht cc sn phm ci t trn my
tnh u hn ch ngn ng biu din tri thc dng cc cu Horn. Trong ti liu ny,
chng ta s tm hiu mt ci t min ph, SWI Prolog.

Mi trng lp trnh SWI Prolog:


SWI Prolog l mt ci t th tc suy din h tr cc cu Horn c b sung thm mt s
thnh phn phi logic (cc php ton input/output, cc php ton tng sc mnh biu din
hoc tng tnh hiu qu ca thut ton suy din). B suy din ca SWI Prolog s dng
gii thut phn gii SLD (Selective Linear Definite clause resolution), tng chnh l
biu din cc cu Horn dng cc cu tuyn (clause) c mt literal dng, ri p dng gii
thut phn gii li. Gii thut phn gii SLD ny s c m t chi tit trong phn cui
ca Chng ny. SWI Prolog c th download min ph ti a ch sau:
http://www.swi-prolog.org/download/stable.
Sauk khi ci t v chy chng trnh SW Prolog, H thng hin th du nhc yu cu
nhp vo cu truy vn nh sau:
1?- |
Tt nhin, trc khi nhp cu truy vn, chng ta phi cho H thng bit chng ta s truy
vn trn c s tri thc no. Mt c s tri thc l mt khai bo cc s kin v cc lut v
mt lnh vc no , v c lu trong mt file. load mt file c s tri thc, ta s
dng menu File Consult Chn file. Cc m t cc s kin v lut (cc cu Horn)
trong cc file c s tri thc c gi l chng trnh prolog. Nhim v ca ngi lp
trnh logic l vit cc chng trnh prolog ny v cc cu truy vn.
V d, ta son tho mt file chng trnh prolog (c s tri thc) c tn file l giapha.pl
(c th s dng bt c b son tho vn bn no, hoc s chnh b son tho do SWI
Prolog cung cp bng cch s dng menu File New/Edit Nhp tn file), ni
dung ca file nh sau:
cha( hoan, nam ).

% cha cua hoan la nam

cha( duong, hoan ).


me( duong, hoa ).
chame( X, Y ) :- cha( X, Y ).
chame( X, Y ) :- me( X, Y ).

ongba( X, Y ) :- chame( X, Z ), chame( Z, Y ).

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.

2. Ngn ng Prolog c bn, chng trnh Prolog


Qui c t tn bin v tn hng:
Prolog l ngn ng cho my tnh, v vy n cn mt qui c rt quan trng trong vic t
tn bin v tn hng, theo , tn mt bin phi bt u bng k t in hoa (chng hn X,
Sinhvien, v.v.), cn tn hng phi bt u bng k t in thng (v d: an, binh,
lasinhvien, v.v.). V Prolog l ngn ng cc cu Horn trong logic v t cp mt nn cc
bin ch xut hin trong cc hng thc l tham s ca cc v t.
Chng trnh Prolog, cc cu Horn dng:
Chng trnh prolog v c bn l dy (hi) cc cu Horn dng (cu tuyn c ng 1
literal dng). Cc cu ny c dng Horn dng trong prolog c dng tng qut nh sau:
head:- p1, p2, , pn.
{ngha l: if (p1 and p2 and and pn) then head}
y head, P1, p2, , pn l cc v t (c th c cc tham s); v t head gi l phn
u ca lut, cn P1, p2, , pn gi phn thn (phn iu kin) ca lut. Nu n>0 th cu
Horn dng trn l cu dng lut; cn nu n=0 th cu khng c phn iu kin, khi ny
ta c cu m t s kin v c th vit n gin l:

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).

4. V t phi logic (cu phi logic)


Chng trnh l dy (th t l quan trng!) cc cu s kin v cu lut c c php
nh nh ngha nh trn. Ngoi cc cu chun Horn trong logic v t cp mt ny
(cc cu khai bo tri thc), Prolog cn c cc v t phi logic iu khin vic thc
hin suy din hoc vo/ra d liu nh trong cc ngn ng th tc. V d v cc

cu phi logic l (mc d l cc cu phi logic, nhng Prolog vn gn gi tr hng ng


cho chng):
write(hang_thuc).

% lnh ny in hang_thuc ra mn hnh

nl.

% a con tr mn hnh xung dng mi

read(ten_bien).
X is bieu-thuc.

% nhp gi tr t bn phm vo bin


% gn gi tr bieu-thuc cho bin X

V d, chng trnh Hello.pl c ni dung nh sau:


xinchao:-write('What is your name?'), nl, read(X), write('Hello '),
write(X).
Sau khi load chng trnh Hello.pl v chy chng trnh (cu truy vn) th c kt
qu sau:
1 ?- xinchao.
What is your name?
|: hoan.

% ch : kt thc nhp d liu bng du chm (.)

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 (!).

5. Tr li truy vn, quay lui, ct, ph nh


Tr li truy vn quay lui:
tm hiu cc chng trnh Prolog uc thc thi nh th no (trnh bin dch
Prolog tr li cc cu truy vn th no), chng ta tm hiu v d sau:
Bi ton l vit chng trnh Prolog tm s ln nht trong hai s. Chng ta son tho
file chng trnh timsolonnhat.pl vi v t bigger(N,M) in ra s ln nht nh sau:

bigger(N,M):- N < M, write(The bigger number is ), write(M).


bigger(N,M):- N > M, write(The bigger number is ), write(N).
bigger(N,M):- N =:= M, write(Numbers are the same).
Sau khi load chng trnh, chng ta nhp cc cu truy vn sau (cu tr li truy vn
xut hin sau mi truy vn):
1 ?- bigger(3,5).
The bigger is 5
true.b
2 ?- bigger(8,7).
The bigger is 8
true.
3 ?- bigger(10,10).
Numbers are the same
true.
tr li cc cu truy vn trn, SWI Prolog s thc hin ng nht cu truy vn
vi cc v t l phn u cc lut theo th t t trn xung di. Khi gp lut c th
ng nht c, SWI Prolog s thc hin ng nht cu truy vn vi phn u ca
lut v thc hin cc lnh trong phn thn ca lut. Nu tt c cc bin trong lut (sau
khi ng nht) u xc nh c gi tr th SWI Prolog s tr v cho ngi dng
kt qu true v i tng tc vi ngi dng. Khi ngi dung mun tm kt qu tip
theo, nhn phm ;, SWI Prolog s chuyn sang tm, ng nht v thc hin cc lut
tip theo.
Khi cu truy vn ng nht c vi mt lut m c mt bin no vn cn cha
xc nh c gi tr, SWI Prolog s hnh thnh cc cu truy vn mi l cc v t cn
cha bin; sau thc hin qui vic tm, ng nht v thc hin cc lut trong c

s tri thc theo th t t trn i vi cc cu truy vn trung gian ny (ch trung


gian). Vic thc hin suy din li nh th ny cn gi l quay lui.
Mt im lu na, sau khi tm c lut ng nht vi cu truy vn, SWI Prolog s
thc hin phn thn ca lut theo th t t tri qua phi. V phn thn ca lut c
dng hi cc v t, nn khi thc hin, nu gp mt v t m c gi tr chn l l false
th SWI Prolog s khng thc hin cc v t sau .
V t Ct (!):
Khi thc hin chng trnh, SWI Prolog thc hin t trn xung, t tri qua phi, v
chng minh cu truy vn bng quay lui (li). Khi tm c mt li gii ca cu truy
vn, SWI Prolog s thc hin quay lui vt cn tm li gii tip theo. Trong trng
hp chng ta ch cn tm 1 li gii, hoc trong trng hp chng ta bit chc chn
khng c li gii khi thc hin quay lui, ta c th t v t ct (!) sau danh sch cc
v t mong mun. Khi c v t ct xut hin trong mt cu th SWI Prolog s khng
thc hin quay lui i vi cc v t t trc n. hiu c ch ngt quay lui ca v
t ct (!), ta ly v d sau:
a(X, Y) :- b(X), c(Y).
a(4,4).

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(X, Y) :- b(X), c(Y).


a(4,4).

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):

a(X, Y) :- !, b(X), c(Y).

% khng quay lui i vi v t a

a(X, Y) :- b(X),!, c(Y).

% khng quay lui i vi v t a,b

a(X, Y) :- b(X), c(Y),!.

% khng quay lui i vi v t a,b,c

V thc hin li cu truy vn th ta s c cc kt qu khc nhau nh trong cc


hnh v sau.
a(X,Y)

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), c(Y).


a(4,4).

a(X,Y)

b(X)
{X|1

b(1)

c(Y)
c(1)

b(2)

b(3)

a(X, Y) :- b(X),!, c(Y).


a(4,4).

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)

a(X, Y) :- b(X), c(Y), !.


a(4,4).
V t ph nh:
Trong SWI Prolog, v t not(X) c gi tr true khi SWI khng chng minh c X.
Hay ni cch khc, nhng s kin m SWI khng chng minh c l true th SWI
s cho l s kin l false (gi thuyt ng). V d, cho chng trnh logic nh
sau:
lacontrai( binh).

% binh la con trai

lacontrai( an).
khonglacontrai( X) :- not (lacontrai(X)).

Nu ta thc hin cc cu truy vn:


1 ? - khonglacontrai(X).

false

v SWI khng tm c i tng no lm cho v t khonglacontrai(X) l ng.


Nhng khi chng ta thc hin truy vn sau:
2 ? - khonglacontrai(thanh).
true

kt qu cho l true v SWI khng chng minh c lacontrai( thanh).


V t not c tc dng trong mt s trng hp, chng hn bi ton kim tra xem mt
s c l s nguyn t khng, tc l s m khng chia ht cho cc s nh hn n (tr
s 1 v chnh n). Bi ton ny c gi c th xem phn cui chng ny.

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

fibonaci( N,F) :- N>2, N1 is N-1, N2 is N-2, fibonaci(N1,F1), fibonaci(N2,F2), F


is F1+F2.

Truy vn chng trnh logic ny vi cc tham s N khc nhau ta s c kt qu lu


trn bin F l phn t th N ca dy. V d:
1 ? - fibonaci(3,F).
F=1
2 ? - fibonaci(4,F).
F=2
3 ? - fibonaci(10,F).
F=34

Ch : V t fibonaci(N,F) trn l nh ngha phn t th N ca dy Fibonaci v


kt qu lu trong F, v vy m SWI ch c th thc hin cc cu truy vn m
tham s th nht l hng s, v d cu truy vn nh fibonaci(10,F) tm phn t th
10 ca dy; cu truy vn nh fibonaci(10,34) kim tra xem phn t th 10 ca dy
c l 34 khng; cu truy vn fibonaci(N,34) s khng thc hin c trn SWI!

7. Cu trc d liu trong Prolog


Danh sch:
Danh sch l mt cu trc d liu c to dng sn trong SWI Prolog v cng c
sn cc php ton ly phn t u v phn ui danh sch. Danh sch l nhm bt
k cc hng thc vi nhau bng du [ v ] v phn cch bi du ,. V d
[a,b,c,d] l danh sch gm 4 phn t. Thao tc c bn thao tc vi danh sch l
tch phn t u ca danh sch. V d:
1 ? [X|Y]=[a,b,c,d].
X=a,
Y=[b,c,d]
2 ? [X,Y|Z]=[a,b,c,d].
X=a,
Y=b,
Z=[c,d]
3 ? [X,[Y|Z]]=[a,b,c,d].
X=a,
Y=b,
Z=[c,d]

Ngoi thao tc c bn trn, SWI cng xy dng mt s thao tc khc, v d:


4 ? member(b,[a,b,c,d]).
khng?
true

% b c phi l phn t ca danh sch [a,b,c,d]

5 ? append([a,b,c],[d,e,f],X). % ni hai danh sch


X = [a, b, c, d, e, f]

hiu r thm v danh sch, chng ta xt v d sau: hy vit chng trnh o


ngc danh sch.
my_reverse([],[]).
my_reverse([H|T],L):- my_reverse(T,R),append(R,[H],L).

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]).

8. Thut ton suy din trong Prolog

Chng 9 Lp lun vi tri thc khng chc chn


Trong cc chng trc, chng ta tm hiu logic mnh , logic v t cp mt, v
prolog. Ngn ng v ng ngha ca cc logic ny ch gii hn cho cc cu ng/sai.
Trong thc t, nhiu thng tin/tri thc chng ta khng hon ton bit c n l ng hay
sai v chng ta vn c th rt ra (lp lun ra) cc thng tin/tri thc t nhng iu ta
khng chc chn mc d cc thng tin/tri thc rt ra cng l nhng ci khng chc
chn.
Mt v d v vic lp lun vi cc thng tin khng chc ng v vi kt lun cng khng
chc ng nh sau. Gi s chng ta bit (qua quan st 100 ngy gn y) v cc hot
ng ca anh A vi cc iu kin thi tit khc nhau. Trong s 100 ngy, c 70 ngy tri
nng v khng c gi. Anh y khng i chi golf vo cc ngy c gi hoc khng nng.
Trong 70 ngy nng v khng c gi th anh y ch i chi golf trong 50 ngy. Vic i
chi golf hay khng ph thuc vo thi tit, i khi n gin cng ch v hm anh c
thch hay khng. By gi da vo nhiu iu bit ny, chng ta phi tr li cc cu hi
nh: ngy mai anh y c i chi golf khng nu bit rng d bo thi thit ngy mai tri
c th c ma?, hoc kh nng ngy mai anh y i chi golf l bao nhiu?, hoc l
nu bit anh y khng i chi golf th thi tit hm th no?, v.v. R rang cc thng
tin/tri thc bit l khng chc chn v cu truy vn th tr li cng c th khng phi
l dng chc chc.
Vy lm th no m my tnh c th biu din c cc thng tin/tri thc khng chc
chn v lp lun tr li cc cu truy vn nh trn. C ba cch tip cn gii quyt
vn biu din v suy din cc thng tin v tri thc khng chc chn: logic m, l
thuyt kh nng v l thuyt xc sut. Trong chng ny, chng ta ch tm hiu v l
thuyt xc sut, mt ngn ng biu din cc thng tin, tri thc khng chc chn v l
thuyt xc sut cho php chng ta lp lun rt ra cc thng tin v tri thc mi.

Chng 10 Hc mng nron nhn to


H thng c gi l c kh nng hc (c dng v hc nh con ngi) l h thng c
kh nng tm ra mt s khi qut hoc m hnh cho cc d liu hun luyn (d liu c
gn nhn nhn din hoc phn loi). c trng khi qut hoc m hnh c th c s
dng nhn din hoc phn loi d liu mi. H thng hc thng minh l h thng c
dng v ng x (hoc kt qu nhn din hoc kt qu d on) nh a tr con hc;
chng quan st cc hnh nh ca cc k t c phn loi (thng qua vic ni vi
chng y l k t g - d liu hun luyn), v khi qut cc c trng ca cc loi k t;
khi a hnh nh ca k t mi (d liu kim tra) vo th chng nhn din hoc phn loi
c k t thuc loi no. H thng thng minh l h thng nhn din ng hoc phn
loi ng d liu kim tra, v khi h thng c gi l c kh nng hc (hay c dng
v hc).

You might also like