You are on page 1of 70

Tm kim

T Hoi Vit
Khoa Cng ngh Thng tin
i hc Khoa hc T nhin TPHCM
thviet@fit.hcmuns.edu.vn

Ref: http://www.cs.cmu.edu/~awm/tutorials

Tng qut
Bi ton tm kim
Tm kim Theo chiu Rng
Tnh ti u, Tnh y , phc tp thi
gian v khng gian
Cy Tm kim
Tm kim Theo chiu Su

Mt bi ton Tm kim
GOAL

a
c

e
d

START

h
p

Lm sao i t S n G? V s bin i c th
t nht l g?
3

Hnh thc ho mt bi ton tm


kim

Mt bi ton tm kim c nm thnh phn:


Q , S , G , succs , cost
Q l mt tp hu hn cc trng thi.
S Q mt tp khc rng cc trng thi ban u.
G Q mt tp khc rng cc trng thi ch.
succs : Q P(Q) l mt hm nhn mt trng thi lm
u vo v tr v kt qu l mt tp trng thi. succs(s)
ngha l tp cc trng thi c th n t s trong mt
bc.
cost : Q , Q S Dng l mt hm nhn hai trng
thi, s v s, lm u vo. N tr v chi ph mt bc
ca vic di chuyn t s n s. Hm chi ph ch c
nh ngha khi s l trng thi con ca s.
4

Bi ton Tm kim
GOAL

a
c

START

h
p

Q = {START, a , b , c , d , e , f , h , p , q , r , GOAL}
S = { START }
G = { GOAL }
succs(b) = { a }
succs(e) = { h , r }
succs(a) = NULL etc.
cost(s,s) = 1 cho tt c cc bin i
5

Bi ton Tm kim
GOAL

a
c

START

h
p

Q = {START, a , b , c , d , e , f , h , p , q , r , GOAL}
S = { START }
G = { GOAL }
succs(b) = { a }
succs(e) = { h , r }
succs(a) = NULL etc.
cost(s,s) = 1 cho tt c cc bin i
6

Cc Bi ton Tm kim

Cc Bi ton Tm kim
Lp lch
8-Hu

G na?

Gii ton

Tm kim Theo Chiu Rng


GOAL

a
c

START

h
p

Gn nhn tt c trng thi c th i n c t S trong 1 bc nhng


khng th i n c trong t hn 1 bc.
Sau gn nhn tt c trng thi c th i n c t S trong 2 bc
nhng khng th i n c trong t hn 2 bc.
Sau gn nhn tt c trng thi c th i n c t S trong 3 bc
nhng khng th i n c trong t hn 3 bc.
V.v n khi trng thi Goal c i n.
9

Tm kim Theo Chiu Rng


GOAL

a
c

0 bc t
start

e
d

START

h
p

10

Tm
kim
Theo
Chiu
Rng
1 bc t
start

GOAL

a
c

0 bc t
start

e
d

START

h
p

11

Tm
kim
Theo
Chiu
Rng
1 bc t
start

GOAL

a
c

0 bc t
start

e
d

START

h
p

2 bc t
start
12

Tm
kim
Theo
Chiu
Rng
1 bc t
start

GOAL

a
c

0 bc t
start

e
d

START

h
p

3 bc t
start
r

2 bc t
start
13

4 bc t
start

Tm
kim
Theo
Chiu
Rng
1 bc t
start

GOAL

a
c

0 bc t
start

e
d

START

h
p

3 bc t
start
r

2 bc t
start
14

Ghi nh ng i!
GOAL

a
c

START

h
p

Ngoi ra, khi gn nhn mt trng thi, ghi nhn trng thi
trc . Ghi nhn ny c gi l con tr quay lui. Lch
s trc c dng pht sinh con ng li gii, khi
tm c ch:
Ti n ch. Ti thy mnh f trc . V ti
r trc khi ti f. V
. do con ng li gii l S e r f G
15

4 bc t
start

Con tr quay lui

1 bc t
start

GOAL

a
c

0 bc t
start

e
d

START

h
p

3 bc t
start
r

2 bc t
start
16

4 bc t
start

Con tr quay lui

1 bc t
start

GOAL

a
c

0 bc t
start

e
d

START

h
p

3 bc t
start
r

2 bc t
start
17

Bt u Tm kim Theo chiu Rng


Vi bt k trng thi s no gn nhn, ghi nh:
previous(s) l trng thi trc trn ng i ngn nht t trng thi
START n s.
Trong vng lp th k ca thut ton ta bt u vi Vk c nh ngha
l tp cc trng thi m t trng thi start i n c ng k bc
Sau , trong sut vng lp, ta s tnh Vk+1, c nh ngha l tp cc
trng thi m t trng thi start i n c ng k+1 bc
Chng ta bt u vi k = 0, V0 = {START} v nh ngha,
previous(START) = NULL
Sau ta s thm vo nhng trng thi mt bc t START vo V1.
V tip tc.

18

BFS
GOAL

a
c

e
d

START

V0

h
p

19

BFS
GOAL

a
c

e
d

START

V0

h
p

V1
20

BFS
GOAL

a
c

e
d

START

V0

h
p

V1

V2
21

BFS
GOAL

a
c

e
d

START

V0

V3

h
p

V1

V2
22

BFS

V4
GOAL

a
c

e
d

START

V0

V3

h
p

V1

V2
23

Tm kim Theo Chiu Rng


V0 := S (tp cc trng thi ban u)
previous(START) := NIL
k := 0
while (khng c trng thi ch trong Vk v Vk khc rng) do
Vk+1 := tp rng
Vi mi trng thi s trong Vk
Vi mi trng thi s trong succs(s)
Nu s cha gn nhn
t previous(s) := s
Thm s vo Vk+1
k := k+1
If Vk rng th FAILURE
Else xy dng li gii: t Si l trng thi th i trn ng i ngn
nht. nh ngha Sk = GOAL, v vi mi i <= k, nh ngha Si-1 =
previous(Si).
24

BFS

V4
GOAL

a
c

e
d

START

V0

V3

h
p

V1

V2
25

Mt cch khc: i lui


GOAL

a
c

START

h
p

Gn nhn tt c cc trng thi c th n G trong 1 nhng khng th i


n n trong t hn 1 bc.
Gn nhn tt c cc trng thi c th n G trong 2 nhng khng th i
n n trong t hn 2 bc.
V.v. cho n khi n start.
Nhn s bc ti ch xc nh ng i ngn nht. Khng cn
thm thng tin lu tr.
26

Cc chi tit ca Theo Chiu Rng


Vn tt nu c nhiu hn mt trng thi ch.
Vn tt nu c nhiu hn mt trng thi u.
Thut ton ny hot ng theo kiu tin t u.
Thut ton no hot ng theo kiu tin t u
c gi l suy din tin.
Bn cng c th hot ng quay lui t ch.
Thut ton ny rt ging thut ton Dijkstra.
Bt k thut ton no hot ng theo kiu quay lui
t ch c gi l suy din li.
Li so vi tin. Ci no tt hn?
27

Chi ph chuyn i
GOAL

2
c

b
1

2
9

START

1
p

8
d

15

9
5

Lu rng BFS tm ng i ngn nht theo s bin i. N khng


tm thy ng i c chi ph t nht.
By gi chng ta xem xt mt thut ton tm ng i chi ph thp
nht. Trong vng lp th k, vi bt k trng thi S no, t g(s) l chi
ph ng i c chi ph nh nht n S trong k bc hay t hn.
28

Theo Chiu Rng Chi ph Thp nht


Vk = tp cc trng thi c th n c trong ng k bc, v vi n ng i k-bc
chi ph thp nht th t chi ph hn bt k ng i no c di nh hn k. Ni cch
khc, Vk = tp trng thi m gi tr ca n thay i so vi vng lp trc.

V0 := S (tp trng thi u)


previous(START) := NIL
g(START) = 0
k := 0
while (Vk khc rng) do
Vk+1 := rng
Vi mi s trong Vk
Vi mi s trong succs(s)
Nu s cha c gn nhn
HAY nu g(s) + Cost(s,s) < g(s)
t previous(s) := s
t g(s) := g(s) + Cost(s,s)
Thm s vo Vk+1
k := k+1
Nu GOAL cha gn nhn, thot FAILURE
Ngli xy dng li gii theo: t Sk l trng thi th k trn ng i ngn
nht. nh ngha Sk = GOAL, v vi mi i <= k, nh ngha Si-1 = previous(Si).
29

Tm kim Chi ph ng nht


Mt cch tip cn BFS n gin v mt
khi nim khi c chi ph chuyn i
Dng hng i u tin

30

Hng i u tin
Mt hng i u tin l mt cu
trc d liu trong ta c th
thm v ly cc cp (thing, value)
vi cc ton t sau:
Init-PriQueue(PQ)

khi to PQ rng.

Insert-PriQueue(PQ, thing, value)

thm (thing, value) vo hng i.

Pop-least(PQ)

tr v cp (thing, value) vi gi tr thp nht, v


loi b n khi hng i.

31

Hng i u tin
Mt hng i u tin l mt cu
trc d liu trong ta c th
thm v ly cc cp (thing, value)
vi cc ton t sau:
Init-PriQueue(PQ)

khi to PQ rng.

Insert-PriQueue(PQ, thing, value)

thm (thing, value) vo hng i.

Pop-least(PQ)

tr v cp (thing, value) vi gi tr thp nht, v


loi b n khi hng i.

Rt r (d khng
Hng i u tin c th c
tuyt i, nhng r
ci t theo mt cch sao cho
khng tin c!)
chi ph ca cc ton t thm v
ly l
O(log(s mc trong hng i u tin))
32

Tm kim Chi ph ng nht (UCS)


Mt cch tip cn BFS n gin v mt
khi nim khi c chi ph chuyn i
Dng hng i u tin

PQ = Tp trng thi c m hay


ang i m
u tin ca trng thi s = g(s) = chi
ph n s dng ng i cho bi con tr
quay lui.
33

Bt u UCS
GOAL

2
c

b
1

8
2

START

15

PQ = { (S,0) }
34

Lp UCS
GOAL

2
c

b
1

8
2

START

PQ = { (S,0) }

15

q
Lp:
1. Ly trng thi chi ph
thp nht t PQ
2. Thm cc con
35

Lp UCS
GOAL

2
c

b
1

8
2

START

15

PQ = { (p,1), (d,3) , (e,9) }

Lp:
1. Ly trng thi chi ph
thp nht t PQ
2. Thm cc con
36

Lp UCS
GOAL

2
c

b
1

8
2

START

15

PQ = { (d,3) , (e,9) , (q,16) }

Lp:
1. Ly trng thi chi ph
thp nht t PQ
2. Thm cc con
37

Lp UCS
GOAL

2
c

b
1

8
2

START

15

PQ = { (b,4) , (e,5) , (c,11) , (q,16) }

Lp:
1. Ly trng thi chi ph
thp nht t PQ
2. Thm cc con
38

Lp UCS
GOAL

2
c

b
1

8
2

START

15

PQ = { (b,4) , (e,5) , (c,11) , (q,16) }

Lp:
1. Ly trng thi chi ph
thp nht t PQ
2. Thm cc con
39

Lp UCS
GOAL

2
c

b
1

8
2

START

15

PQ = { (e,5) , (a,6) , (c,11) , (q,16) }

Lp:
1. Ly trng thi chi ph
thp nht t PQ
2. Thm cc con
40

Lp UCS
GOAL

2
c

b
1

8
2

START

15

PQ = { (a,6),(h,6),(c,11),(r,14),(q,16) }

Lp:
1. Ly trng thi chi ph
thp nht t PQ
2. Thm cc con
41

Lp UCS
GOAL

2
c

b
1

8
2

START

15

PQ = { (h,6),(c,11),(r,14),(q,16) }

Lp:
1. Ly trng thi chi ph
thp nht t PQ
2. Thm cc con
42

Lp UCS
GOAL

2
c

b
1

8
2

START

15

PQ = { (q,10), (c,11),(r,14) }

Lp:
1. Ly trng thi chi ph
thp nht t PQ
2. Thm cc con
43

Lp UCS
GOAL

2
c

b
1

8
2

START

15

PQ = { (q,10), (c,11),(r,14) }

Lp:
1. Ly trng thi chi ph
thp nht t PQ
2. Thm cc con
44

Lp UCS
GOAL

2
c

b
1

8
2

START

15

PQ = { (c,11),(r,13) }

q
Lp:
1. Ly trng thi chi ph
thp nht t PQ
2. Thm cc con
45

Lp UCS
GOAL

2
c

b
1

8
2

START

PQ = { (r,13) }

15

q
Lp:
1. Ly trng thi chi ph
thp nht t PQ
2. Thm cc con
46

Lp UCS
GOAL

2
c

b
1

8
2

START

PQ = { (f,18) }

15

q
Lp:
1. Ly trng thi chi ph
thp nht t PQ
2. Thm cc con
47

Lp UCS
GOAL

2
c

b
1

8
2

START

PQ = { (G,23) }

15

q
Lp:
1. Ly trng thi chi ph
thp nht t PQ
2. Thm cc con
48

Lp UCS
GOAL

2
c

b
1

8
2

START

PQ = { (G,23) }

15

q
Lp:
1. Ly trng thi chi ph
thp nht t PQ
2. Thm cc con
49

Kt thc UCS
GOAL

2
c

b
1

8
2

START

15

f
9

PQ = { }

q
Lp:
1. Ly trng thi chi ph
thp nht t PQ
2. Thm cc con
50

Biu din cy tm kim


a

GOAL

START

51

nh gi mt thut ton tm kim


Tnh y : thut ton c bo m tm thy li gii nu c
hay khng?
C bo m tm thy ti u? (n s tm thy ng i c chi
ph t nht?)
phc tp v thi gian
phc tp v khng gian (s dng b nh)
Cc bin:
N

s trng thi ca bi ton

nhn t phn nhnh trung bnh (s con trung


bnh) (B>1)

di ng i t start n goal vi s bc
ngn nht
Chng ta nh gi thut ton nh th no?
52

nh gi mt thut ton
N

s trng thi trong bi ton

tha s phn nhnh trung bnh (s con trung bnh) (B>1)

di ng i t start n goal vi s bc (chi ph) t nht

kch c hng i u tin trung bnh

Thut ton

Ti u Thi gian

Khng gian

BFS

Breadth First C
Search

Nu tt c
chuyn i
cng chi
ph

O(min(N,BL))

O(min(N,BL))

LCBFS

Least Cost
BFS

O(BL)

O(min(N,BL))

UCS

Uniform
Cost Search

O(log(Q) * min(N,BL)) O(min(N,BL))

53

Tm kim Theo Chiu Su


GOAL

2
c

b
1

8
2

START

15

4
q

5
3

Mt thay th cho BFS. Lun m t node va mi m


nht, nu n c bt k node con cha th no. Ngc li
quay li node trc trn ng i.
54

DFS trn thc t


GOAL

a
c

b
START
START d
START d b
START
START d b a
START d c
START d c a
START d e
START d e r
START d e r f
START d e r f c
START d e r f c a
START d e r f GOAL

f
h

55

Duyt cy tm kim DFS


a

GOAL

Bn c th v th
t m trong
cc node ca cy
tm kim c
ving?

START

56

Thut ton DFS


Ta dng mt cu trc d liu gi l Path biu din ng i t START n
trng thi hin ti.
VD. Path P = <START, d, e, r >
Cng vi mi node trn ng i, chng ta phi nh nhng con no ta vn
c th m. VD. ti im sau, ta c
P = <START (expand=e , p) ,
d (expand = NULL) ,
e (expand = h) ,
r (expand = f) >

57

Thut ton DFS


t P = <START (expand = succs(START))>
While (P khc rng v top(P) khng l ch)
if m rng ca top(P) rng
then
loi b top(P) (pop ngn xp)
else
gi s mt thnh vin ca m rng ca top(P)
loi s khi m rng ca top(P)
to mt mc mi trn nh ng i P:
s (expand = succs(s))
Thut ton ny c th
If P rng
c vit gn di
dng qui, dng ngn
tr v FAILURE
xp ca chng trnh
Else
ci t P.
tr v ng i cha trng thi ca P

58

nh gi mt thut ton
N

s trng thi trong bi ton

tha s phn nhnh trung bnh (s con trung bnh) (B>1)

di ng i t start n goal vi s bc (chi ph) t nht

kch c hng i u tin trung bnh

Thut ton

Ti u Thi gian

Khng gian

BFS

Breadth First C
Search

Nu chi
ph chuyn
i nh
nhau

O(min(N,BL))

O(min(N,BL))

LCBFS

Least Cost
BFS

O(BL)

O(min(N,BL))

UCS

Uniform
Cost Search

O(log(Q) * min(N,BL)) O(min(N,BL))

DFS

Depth First
Search

59

nh gi mt thut ton
N

s trng thi trong bi ton

tha s phn nhnh trung bnh (s con trung bnh) (B>1)

di ng i t start n goal vi s bc (chi ph) t nht

kch c hng i u tin trung bnh

Thut ton

Ti u Thi gian

Khng gian

BFS

Breadth First C
Search

Nu chi
ph chuyn
i nh
nhau

O(min(N,BL))

O(min(N,BL))

LCBFS

Least Cost
BFS

O(BL)

O(min(N,BL))

UCS

Uniform
Cost Search

O(log(Q) * min(N,BL)) O(min(N,BL))

DFS

Depth First
Search

N/A

N/A

60

nh gi mt thut ton
N

s trng thi trong bi ton

tha s phn nhnh trung bnh (s con trung bnh) (B>1)

di ng i t start n goal vi s bc (chi ph) t nht

LMAX

di ng i di nht t start n bt c u

kch c hng i u tin trung bnh

Thut ton

Ti u Thi gian

Khng gian

BFS

Breadth First C
Search

Nu chi
ph chuyn
i nh
nhau

O(min(N,BL))

O(min(N,BL))

LCBFS

Least Cost
BFS

O(BL)

O(min(N,BL))

UCS

Uniform
Cost Search

O(log(Q) * min(N,BL)) O(min(N,BL))

DFS**

Depth First
Search

Gi s Khng gian Tm
kim khng chu trnh

61

nh gi mt thut ton
N

s trng thi trong bi ton

tha s phn nhnh trung bnh (s con trung bnh) (B>1)

di ng i t start n goal vi s bc (chi ph) t nht

LMAX

di ng i di nht t start n bt c u

kch c hng i u tin trung bnh

Thut ton

Ti u Thi gian

Khng gian

BFS

Breadth First C
Search

Nu chi
ph chuyn
i nh
nhau

O(min(N,BL))

O(min(N,BL))

LCBFS

Least Cost
BFS

O(BL)

O(min(N,BL))

UCS

Uniform
Cost Search

O(log(Q) * min(N,BL)) O(min(N,BL))

DFS**

Depth First
Search

O(BLMAX)

Gi s Khng gian Tm
kim khng chu trnh

O(LMAX)
62

Cu hi suy ngh
Lm sao ngn
nga lp v tn
trong DFS ?

Lm sao bt buc
n a ra mt li
gii ti u?

B
C

63

Cu hi suy ngh

Tr li 1:
PC-DFS (Path Checking DFS):

Lm sao ngn
nga lp v tn
trong DFS ?

Lm sao bt buc
n a ra mt li
gii ti u?

A
Dont
recurse on a state
if that state is already in
B
the current path

Tr li 2:
A

MEMDFS (Memorizing DFS):


B
Remember
all states
expanded soC far. Never
expand anything twice.

64

Cu hi suy ngh

Tr li 1:
PC-DFS (Path Checking DFS):

Lm sao ngn
nga lp v tn
trong DFS ?

Lm sao bt buc
n a ra mt li
gii ti u?

A
Khng
gi li mt trng
thi nu n c trn
B
ng i

Tr li 2:
A

MEMDFS (Memorizing DFS):


B
Nh
tt c trng thi
m. Khng bao
gi m
C
hai ln.

65

Cu hi suy ngh

Tr li 1:
PC-DFS (Path Checking DFS):

Lm sao ngn
nga lp v tn
trong DFS ?

Lm sao bt buc
n a ra mt li
gii ti u?

A
Khng
gi li mt trng
thi nu n c trn
B
ng i

Tr li 2:
A

MEMDFS (Memoizing DFS):


B
Nh
tt c trng thi
m. Khng bao
gi m
C
hai ln.

66

s trng thi trong bi ton

tha s phn nhnh trung bnh (s con trung bnh) (B>1)

di ng i t start n goal vi s bc (chi ph) t nht

LMAX

di ng i khng chu trnh di nht t start n bt c u

kch c hng i u tin trung bnh

Thut ton

Ti u Thi gian

Khng gian

BFS

Breadth First C
Search

Nu chi
ph chuyn
i nh
nhau (1)

O(min(N,BL))

O(min(N,BL))

LCBFS

Least Cost
BFS

O(BL)

O(min(N,BL))

UCS

Uniform
Cost Search

O(log(Q) * min(N,BL)) O(min(N,BL))

PCDFS Path Check C

O(BLMAX)

O(LMAX)

MEMDFS Memoizing

O(min(N,BLMAX))

O(min(N,BLMAX))

DFS
DFS

67

Lp Su dn
Lp su dn l mt thut ton n gin
dng DFS lm mt th tc con:

1. Thc hin DFS ch tm cc ng i c


di 1 hay t hn. (DFS b cc
ng i no di hn hay bng 2)
2. Nu 1 tht bi, thc hin DFS ch tm
cc ng i c di 2 hay t hn.
3. Nu 2 tht bi, thc hin DFS ch tm
cc ng i c di 3 hay t hn.
.v tip tc cho n khi thnh
cng.
Chi ph l

O(b1 + b2 + b3 + b4 + bL) = O(bL)

68

nh gi mt thut ton
N

s trng thi trong bi ton

tha s phn nhnh trung bnh (s con trung bnh) (B>1)

di ng i t start n goal vi s bc (chi ph) t nht

LMAX

di ng i khng chu trnh di nht t start n bt c u

kch c hng i u tin trung bnh

Thut ton

Ti u Thi gian

Khng gian

BFS

Breadth First C
Search

Nu chi
ph chuyn
i nh
nhau (1)

O(min(N,BL))

O(min(N,BL))

LCBFS

Least Cost
BFS

O(BL)

O(min(N,BL))

UCS

Uniform
Cost Search

O(log(Q) * min(N,BL)) O(min(N,BL))

PCDFS Path Check C

O(BLMAX)

O(LMAX)

MEMDFS Memoizing

O(min(N,BLMAX))

O(min(N,BLMAX))

(1)

O(BL)

O(L)

DFS
DFS

ID

Iterative
Deepening

69

iu cn nm
Hiu thu o v BFS, LCBFS, UCS,
DFS, PCDFS, MEMDFS
Hiu cc khi nim v vic liu mt tm
kim l y , ti u hay khng, phc
tp v thi gian v khng gian ca n
Hiu tng ng sau lp su dn.

70

You might also like