Chuong 3 - Tim Kiem Co Ban

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 64

Tr Tu Nhn To

Nguyn Nht Quang


quangnn-fit@mail.hut.edu.vn
Vin Cng ngh Thng tin v Truyn thng
Trng i hc Bch Khoa H Ni
Nm hc 2009-2010

Ni dung mn hc:

Gii thiu v Tr tu nhn to

Tc t

Gii quyt vn : Tm kim, Tha mn rng buc

Cc chin lc tm kim c bn (Uninformed search)

Logic v suy din

Biu din tri thc

Suyy din vi tri thc khng


g chc chn

Hc my

Lp k hoch
Tr tu nhn to

Gii quyt vn bng tm kim

Gii quyt vn bng tm kim

Tm chui cc hnh ng cho php t n (cc) trng thi mong mun

Cc bc chnh

Xc nh mc tiu cn t n (goal formulation)

Pht biu bi ton (problem formulation)

Vi mt mc tiu, xc nh cc hnh ng v trng thi cn xem xt

Qu trnh tm kim (search process)

L mt tp hp ca cc trng thi (ch)


Da trn: trng thi hin ti (ca mi trng) v nh gi hiu qu hnh ng
(ca tc t)

Xem xt cc chui hnh ng c th


Chn chui
hnh ng tt
nht

Gii thut tm kim

u vo: mt bi ton (cn gii quyt)


u ra: mt gii php, di dng mt chui cc hnh ng cn thc hin
Tr tu nhn to

Tc t g
gii q
quyt
y vn

Tr tu nhn to

Gii quyt vn bng tm kim

Mt ngi du lch ang trong chuyn i du lch Rumani

Pht biu
mc tiu:

Cn phi c mt Bucharest

Pht biu bi ton:

Anh ta hin
thi ang
g Arad
Ngy mai, anh ta c chuyn bay khi hnh t Bucharest
By gi, anh ta cn di chuyn (li xe) t Arad n Bucharest

Cc trng thi: cc thnh ph (i qua)


Cc hnh ng: li xe gia cc thnh ph

Tm kim gii php:

Chui cc thnh ph cn i qua, v d: Arad, Sibiu, Fagaras,


Bucharest
Tr tu nhn to

Gii quyt vn bng tm kim

Tr tu nhn to

Cc kiu bi ton

Xc nh, c th quan st hon ton Bi ton trng thi


n

Khng quan st c Bi ton thiu cm nhn

Tc t c th khng bit l n ang trng thi no


Gii php ca bi ton: mt chui hnh ng

Khng xc nh v/hoc c th
quan st mt phn
Bi
ton c s kin ngu nhin

Tc t bit chnh xc trng thi tip theo m n s chuyn qua


Gii php ca bi ton: mt chui hnh ng

Cc nhn thc cung cp cc thng tin mi v trng thi hin ti


Gii php ca bi ton: mt k
hoch (chnh sch)
Thng kt hp an xen gia: tm kim v thc hin

Khng bit v khng gian trng thi Bi ton thm d


Tr tu nhn to

V d: Bi ton my ht bi (1)

Nu l bi ton trng thi


n

Bt u trng thi #5.

Gii php?

Tr tu nhn to

V d: Bi ton my ht bi (2)

Nu l bi ton trng thi


n

Bt u trng thi #5.

Gii php?

[Sang phi, Ht bi]

Tr tu nhn to

V d: Bi ton my ht bi (3)

Nu l bi ton thiu cm
nhn

Bt u (c th) trng thi


{ , , , , , , , }
{#1,#2,#3,#4,#5,#6,#7,#8}
Lun bt u bng di chuyn
sang phi

Gii php?

Tr tu nhn to

10

V d: Bi ton my ht bi (4)

Nu l bi ton thiu cm
nhn

Bt u (c th) trng thi


{ , , , , , , , }
{#1,#2,#3,#4,#5,#6,#7,#8}
Lun bt u bng di chuyn
sang phi

Gii php?

[Sang phi, Ht bi, Sang tri,


Ht bi]

Tr tu nhn to

11

V d: Bi ton my ht bi (5)

Nu l bi ton c s kin
ngu nhin

Bt u trng thi #5
Khng xc nh: Ht bi c th
lm bn mt ci thm sch!
C th quan st mt phn: v
tr mc bn v tr hin
tr,
thi

Gii php?

Tr tu nhn to

12

V d: Bi ton my ht bi (6)

Nu l bi ton c s kin
ngu nhin

Bt u trng thi #5
Khng xc nh: Ht bi c th
lm bn mt ci thm sch!
C th quan st mt phn: v
tr mc bn v tr hin
tr,
thi

Gii php?

[Sang phi, if Bn then Ht


bi]

Tr tu nhn to

13

Pht biu bi ton trng thi n


Bi ton c nh ngha bi 4 thnh phn:

Trng
g thi u

V d: ang thnh ph Arad

Cc hnh ng Xc nh bi hm chuyn trng thi:

Kim tra mc tiu, c th l

S(trng_thi_hin_thi)
(
g_
_
_
) = tp
p cc cp
p <hnh_ng,
_
g trng_thi_tip_theo>
g_
_ p_

V d: S(Arad) = {<Arad Zerind, Zerind>, }

Chi ph ng i (gii php)

Trc
c ttip
p v d
d: Trng
g tthi
hin
tthi
x = ang
a g tthnh
p
ph
Bucharest"
uc a est
Gin tip v d: HtC(x), Sch(x),
V d: Tng cc khong cch,
cch S lng cc hnh ng phi thc hin,
hin
c(x,a,y) 0 l chi ph bc (b phn) chi ph cho vic p dng hnh
ng a chuyn t trng thi x sang trng thi y

Mt gii php: Mt chui cc hnh ng cho php dn t trng thi


u n trng thi ch
Tr tu nhn to

14

Xc nh khng gian trng thi

Cc bi ton thc t thng c m t phc tp


Khng gian trng thi cn c khi qut (abstracted) phc
v cho
h vic
i gii
ii quyt
t bi ton
t

Trng thi (khi qut) = Mt tp cc trng thi thc t

Hnh ng (khi qut) = Mt kt


hp phc tp ca cc hnh
ng thc t

V d: Hnh ng "Arad Zerind" biu din mt tp kt hp cc



ng,
vng,
ng

ch
h ngh,
h

m bo vic thc hin (qu trnh tm kim), bt k trng


thi thc t no cng phi c th t n c t trng thi
thc t khc

Gii php (khi qut) = Mt tp cc ng i gii php trong


th t
thc
Tr tu nhn to

15

th khng gian trng thi (1)


Bi
ton
my
ht
b i
bi

Cc trng thi?
Cc hnh ng?
Kim tra mc tiu?
Chi ph ng i?
Tr tu nhn to

16

th khng gian trng thi (2)


Bi
ton
my
ht
b i
bi

Cc trng thi?
Cc hnh ng?
Kim tra mc tiu?
Chi ph ng i?

Ch bn v v tr my ht bi
Sang tri, sang phi, ht bi, khng lm g
Khng cn ch (v tr) no bn
1 (mi hnh ng), 0 (khng lm g c)
Tr tu nhn to

17

V d: Bi ton ch (1)
Bi ton
ch 8 s

Cc trng thi?
Cc hnh ng?
Kim tra mc tiu?
Chi ph ng i?

Tr tu nhn to

18

V d: Bi ton ch (2)
Bi ton
ch 8 s

Cc trng thi?
Cc hnh ng?
Kim tra mc tiu?
Chi ph
h ng
i?

Cc v tr ca cc s
Di chuyn trng sang tri,
tri sang phi,
phi
ln trn, xung di
t trng thi ch (goal state)
1 cho
h mi
i di chuyn
h
Tr tu nhn to

19

Cc gii thut tm kim theo cu trc cy


n0

tng:

Khm ph (xt) khng gian trng thi


bng cch sinh ra cc trng thi k tip
ca cc trng thi khm ph ( xt)
Cn g
gi l phng
p
gp
php
p khai trin (pht
(p
trin) cc trng thi

Tr tu nhn to

n
( )
successors(n)
Goal

20

V d biu din theo cu trc cy (1)

Tr tu nhn to

21

V d biu din theo cu trc cy (2)

Tr tu nhn to

22

V d biu din theo cu trc cy (3)

Tr tu nhn to

23

V d tr chi c ca-r (Tic-Tac-Toe)

Tr tu nhn to

24

Biu din bngg cy v th


B
C
A
C

l cha ca C
l con ca B
l t tin ca C
l con chu ca A

Tr tu nhn to

25

th tm kim Cy tm kim

Cc bi ton tm kim trn th c th c chuyn


thnh cc bi ton tm kim trn cy

Thay th mi lin kt (cnh) v hng bng 2 lin kt (cnh) c


hng
Loi b cc vng lp tn ti trong th ( trnh khng duyt 2
ln
i
vi mt nt trong bt
k ng i no)
Tr tu nhn to

26

Tm kim theo cu trc cy - Gii thut

Tr tu nhn to

27

Biu din cy tm kim

Mt trng thi l mt biu din ca mt hnh trng (configuration)


thc t
Mt nt (ca cy) l mt phn cu thnh nn cu trc d liu ca
mt cy tm kim

Mt nt cha cc thuc tnh: trng thi, nt cha, nt con, hnh ng,


su, chi ph ng i g(x)

Hm Expand to nn cc nt mi,

Gn gi tr cho cc thuc tnh (ca nt mi)


S dng
g hm Successor-Fn to
nn cc trng
g thi tng
g ng
g vi
cc nt mi
Tr tu nhn to

28

Cc chin lc
tm kim

Mt chin lc tm kim c xc nh bng vic chn


trnh t
p
pht trin ((khai trin)) cc nt

Cc chin lc tm kim c nh gi theo cc tiu ch:

Tnh hon chnh: C m bo tm c mt li gii (nu thc s


tn ti mt li gii)?
phc tp v thi gian: S lng cc nt c sinh ra
phc tp v b nh: S lng ti a cc nt c lu trong
b nh
Tnh ti u: C m bo tm c li gii c chi ph thp nht?

phc tp v thi gian v b nh c nh gi bi:

b: H s phn nhnh ti a ca cy tm kim


d: su ca li gii c chi ph thp nht
m: su ti a ca khng gian trng thi ( su ca cy) c
th
l
Tr tu nhn to

29

Cc chin lc tm kim c bn

Cc chin lc tm kim c bn (uninformed search


strategies)
t t i ) ch
h s
dng
d
cc
thng
th tin
ti cha
h trong
t
h
nh
ngha ca bi ton

T kim
Tm
ki theo
th chiu
hi rng
(Breadth-first
(B dth fi t search)
h)

Tm kim vi chi ph cc tiu (Uniform-cost search)

Tm kim theo chiu su (Depth-first search)

Tm kim gii hn su (Depth


(Depth-limited
limited search)

Tm kim su dn (Iterative deepening search)

Tr tu nhn to

30

Tm kim theo chiu rng BFS

Pht trin cc nt cha xt theo chiu rng Cc nt c


xt theo th t

su tng
g dn

Ci t gii thut BFS

fringe l mt cu trc kiu hng i(FIFO cc nt mi c b


sung vo
cui
i ca
fringe)
fi
)

Cc k hiu c s dng trong gii thut BFS

fringe:
g Cu trc kiu hng
g i
(q
(queue)) lu g
gi cc nt ((trng
g thi)) s
c duyt
closed: Cu trc kiu hng i (queue) lu gi cc nt (trng thi)
c duyt
G=(N,A): Cy biu
din
khng gian trng thi ca bi ton
n0: Trng thi u ca bi ton (nt gc ca cy)
ICH: Tp cc trng thi ch ca bi ton
(n): Tp cc trng thi (nt) con ca trng thi (nt) ang xt n
Tr tu nhn to

31

BFS Gii thut

BFS (N, A, n0, ICH)


{
fringe n0;
closed ;
while (fringe ) do
{
n GET_FIRST(fringe);
// ly phn t u tin ca fringe
closed closed n;
if (n ICH) then return SOLUTION(n);
if ((n) ) then fringe fringe (n);
}
return (No solution);
}

Tr tu nhn to

32

BFS V d
(1)
( )

Pht trin cc nt cha xt theo chiu rng Cc nt c


xt theo th t su tng dn

Tr tu nhn to

33

BFS V d
(2)
( )

Pht trin cc nt cha xt theo chiu rng Cc nt c


xt theo th t

su tng
g dn

Tr tu nhn to

34

BFS V d
(3)
( )

Pht trin cc nt cha xt theo chiu rng Cc nt c


xt theo th t

su tng
g dn

Tr tu nhn to

35

BFS V d
(4)
( )

Pht trin cc nt cha xt theo chiu rng Cc nt c


xt theo th t

su tng
g dn

Tr tu nhn to

36

BFS Cc c
im

Tnh hon chnh?


C (nu b l hu hn)

phc tp v thi gian?


1+b+b2+b3+ +bd + b(bd-1) =
d 1)
O(bd+1

phc tp v b nh?
O(bd+1) Lu tt c cc nt
trong b nh)

Tnh ti u?
C (nu
( chi ph =1 cho mi

bc)

Tr tu nhn to

37

Tm kim vi chi ph cc tiu UCS

Pht trin cc nt cha xt c chi ph thp nht Cc


nt
t c

xt
t theo
th th t
t chi
hi ph
h (t nt
t gc
n
nt
t
ang xt) tng dn

Ci t:

fringe l mt cu trc hng i, trong cc phn t c sp


xp theo chi ph ng i

Tr thnh phng php tm kim theo chiu rng, nu


cc chi ph mi bc (mi cnh ca cy tm kim) l
nh nhau

Tr tu nhn to

38

UCS Gii thut


UCS (N, A, n0, ICH)
{
fringe n0;
closed ;
while (fringe ) do
{
n GET_LOWEST_COST(fringe);

// ly phn t c chi ph
// ng i nh nht

closed closed n;
if (n ICH) then return SOLUTION(n);
if (((n)
( ) )) then fringe
g fringe
g (n);
( );
}
return (No solution);
}
Tr tu nhn to

39

UCS Cc c im

Tnh hon chnh?

phc tp v thi gian?

Ph
thuc
vo tng
g s cc nt c chi p
ph chi p
ph ca li g
gii ti
u: O(bC*/ ), trong C* l chi ph ca li gii ti u

phc tp v b nh?

C (nu chi ph mi bc )

Ph thuc
Ph
th vo
tng
t s
cc
nt
t c
chi
hi ph
h chi
hi ph
h ca
li gii
ii ti
u: O(bC*/ )

Tnh ti u?

C (nu cc nt c xt theo th t tng dn v chi ph g(n))

Tr tu nhn to

40

Tm kim theo chiu su DFS

Pht trin cc nt cha xt theo chiu su Cc nt

c
xt
t theo
th th t
t su
gim
i dn
d

Ci t:

fringe l mt cu trc kiu ngn xp (LIFO) Cc nt mi c


b sung vo u ca fringe)

Tr tu nhn to

41

DFS Gii thut

DFS (N, A, n0, ICH)


{
fringe n0;
closed ;
while (fringe ) do
{
n GET_FIRST(fringe);
// ly phn t u tin ca fringe
closed closed n;
if (n ICH) then return SOLUTION(n);
if ((n) ) then fringe (n) fringe;
}
return (No solution);
}

Tr tu nhn to

42

DFS V d
(1)
( )

Pht trin cc nt cha xt theo chiu su Cc nt c xt


theo th t su gim dn

Tr tu nhn to

43

DFS V d
(2)
( )

Pht trin cc nt cha xt theo chiu su Cc nt c xt


theo th t su gim dn

Tr tu nhn to

44

DFS V d
(3)
( )

Pht trin cc nt cha xt theo chiu su Cc nt c xt


theo th t su gim dn

Tr tu nhn to

45

DFS V d
(4)
( )

Pht trin cc nt cha xt theo chiu su Cc nt c xt


theo th t su gim dn

Tr tu nhn to

46

DFS V d
(5)
( )

Pht trin cc nt cha xt theo chiu su Cc nt c xt


theo th t su gim dn

Tr tu nhn to

47

DFS V d
(6)
( )

Pht trin cc nt cha xt theo chiu su Cc nt c xt


theo th t su gim dn

Tr tu nhn to

48

DFS Cc c
im

Tnh hon chnh?

phc tp v thi gian?

O(bm): rt ln, nu m ln hn nhiu so vi d

phc tp v b nh?

Khng Tht bi (khng tm c li gii) nu khng gian trng


thi c su v hn, hoc nu khng gian trng thi cha cc
vng lp gia cc trng thi
c: Sa i trnh vic mt trng thi no b lp li (b
xt li) theo mt ng i tm kim
t tnh hon chnh i vi khng gian trng thi hu hn

O(bm) - phc tp tuyn tnh

Tnh ti u?

Khng
Tr tu nhn to

49

Tm kim gii hn su DLS


= Phng php tm kim theo chiu su (DFS) + S dng gii
hn v su l trong qu trnh tm kim
cc nt su l khng c nt con

Tr tu nhn to

50

(Tr chi ch 8 s - Gii thut DLS vi gii hn su l=5)

Tm kim su dn IDS

Vn vi gii thut tm kim vi gii hn su (DLS)

Nu tt c cc li gii (cc nt ch) nm su


N
s ln hn gii
hn su l, th gii thut DLS tht bi (khng tm c li gii)

Gii thut tm kim su dn

p dng gii thut DFS i vi cc ng i (trong cy) c di


<=1
Nu tht bi (khng tm c li gii),
gii) tip tc p dng gii thut
DFS i vi cc ng i c di <=2
Nu tht bi (khng tm c li gii), tip tc p dng gii thut
DFS i vi cc ng i c di <=3
(tip tc nh trn, cho n khi: 1) tm c li gii, hoc 2)
ton b cy c xt m khng tm c li gii)

Tr tu nhn to

52

IDS Gii thut


((1))

Tr tu nhn to

53

IDS V d (1)
Gii hn su l = 0

Tr tu nhn to

54

IDS V d (2)
Gii hn su l = 1

Tr tu nhn to

55

IDS V d (3)
Gii hn su l = 2

Tr tu nhn to

56

IDS V d (4)
Gii hn su l = 3

Tr tu nhn to

57

IDS Gii thut


((2))
IDS (N, A, n0, ICH, l)

// l: gii hn su

{
fringe n0;
closed ;
depth l;
while (fringe ) do
{ n GET_FIRST(fringe);
// ly phn t u tin ca fringe
closed closed n;
if (n ICH) then return SOLUTION(n);
if ((n) ) then
{
case d(n) do
// d(n): su ca nt n
[0..(depth-1)]: fringe (n) fringe;
d th
depth:
fi
fringe
fringe
fi
(n);
( )
(depth+1):
{ depth depth + l;
if (l=1) then fringe (n);
else fringe (n) fringe;
}
}
}
return (No solution);
}
Tr tu nhn to

58

DLS vs. IDS

Vi su d v h s phn nhnh b, th s lng cc


nt c
sinh ra trong
gg
gii thut
tm kim g
gii hn

su
l:
NDLS = b0 + b1 + b2 + + bd-2 + bd-1 + bd
Vi su d v h s
phn nhnh b, th s
lng cc
nt c sinh ra trong gii thut tm kim su dn l:
NIDS = (d+1)b0 + d b^1 + (d-1)b^2 + + 3bd-2 +2bd-1 + 1bd
V d vi b = 10, d = 5:

NDLS = 1 + 10 + 100 + 1,000 + 10,000 + 100,000 = 111,111


NIDS = 6 + 50 + 400 + 3
3,000
000 + 20
20,000
000 + 100
100,000
000 = 123
123,456
456
Lng ph = (123,456 - 111,111)/111,111 = 11%

Tr tu nhn to

59

IDS Cc c im

Tnh hon chnh?


C
phc tp v thi gian?
0
1
(d+1)b + d b + (d
(d-1)b
1)b2 + + bd = O(bd)
phc tp v b nh?
O(bd)
Tnh ti u?
C - nu chi p
ph cho mi bc ((mi cnh
ca cyy tm
kim) = 1

Tr tu nhn to

60

So snh gia cc gii thut tm kim c bn

Tr tu nhn to

61

Tm kim trn th ((1))

Nu khng pht hin c (v x l) cc trng thi lp li, th


phc tp ca qu trnh tm kim c th l hm m (thay v
ch l hm tuyn tnh)

Gii php: Khng bao gi xt (duyt) mt nt qu 1 ln


Tr tu nhn to

62

Tm kim trn th - Gii thut

Khng bao gi xt (duyt) mt nt qu 1 ln


Tr tu nhn to

63

Cc gii thut tm kim c bn Tng kt

Vic pht biu bi ton thng yu cu vic khi qut ha cc


chi tit ca bi ton thc
t,, c th nh
ngha
g
khng
gg
gian
trng thi sao cho vic xt (khm ph) cc trng thi trong qu
trnh tm kim c thun tin
C nhiu chin lc tm kim c bn

Tm kim theo chiu rng (BFS)


Tm kim theo chiu su (DFS)
Tm kim vi chi ph cc tiu (UCS)
Tm kim gii hn su (DLS)
Tm kim su dn (IDS)

Ph
Phng
php
h tm
t kim
ki su
d
dn (IDS)

Chi ph v b nh mc hm tuyn tnh


Chi ph v thi gian ch nhiu hn mt cht so vi cc phng php tm
ki c b
kim
bn khc
kh
Tr tu nhn to

64

You might also like