Ref: http://www.cs.cmu.

edu/~awm/tutorials

TRÍ TU NHÂN T O
Tìm ki m có thông tin heuristic, A*

N i dung trình bày
2

Tìm ki m có thông tin heuristic t t nh t Nh ng ñi m không thích h p c a tìm ki m t t nh t M o: tính luôn chi phí ñi ñ n tr ng thái hi n t i. Vi c tìm ki m k t thúc khi nào? Heuristic ch p nh n ñư c Tìm ki m A* là ñ y ñ Tìm ki m A* luôn d ng Khuy t ñi m c a A* Ti t ki m nhi u b nh v i IDA* (Iterative Deepening A*)

Tìm ki m v i thông tin heuristic
3

Các phương pháp tìm ki m mù (blind search): thông tin v tr ng thái ñích không ñóng vai trò trong vi c tìm ki m.
S a b c
Nên ñi ñư ng nào?

G

Có th s d ng ư c lư ng kho ng cách ñ n ñích gi a các tr ng thái ñ tìm ñư ng ñi?

Tìm ki m v i thông tin heuristic (tt)
4

Gi s ngoài vi c ñ c t tìm ki m chu n ta cũng có m t heuristic.

M t hàm heuristic ánh x m t tr ng thái thành m t ư c lư ng v chi phí ñ n ñích t tr ng thái ñó.
B n có th nghĩ ra ví d v heuristics? VD. ñ i v i bài toán 8-puzzle? VD. ñ l p ñư ng ñi trong ma tr n? Ký hi u heuristic b ng m t hàm h(s)

Heuristic theo Kho ng cách Euclide
5

2 b h=11 3 1

a h=8 8

GOAL 2 c h=5 2 d h=4 e 1 h h=6 4 q h=9 h=6 3 r f 9 5 h=4 2 5 h=0

h=8
START

9 4

h=12

1 p h=11

15

Tìm ki m v i thông tin heuristic t t nh t (Best-first)
6

2 b h=11 3 1

a h=8 8

GOAL 2 c h=5 2 d h=4 e 1 h h=6 4 q h=9 h=6 3 r f 9 5 h=4 2 5 h=0

h=8
START

9 4

h=12

1 p h=11

15

Tìm ki m t t nh t (tt)
7

2 b h=11 3 1

a h=8 8

GOAL 2 c h=5 2 d h=4 e 1 h h=6 4 q h=9 h=6 3 r f 9 5 h=4 2 5 h=0

h=8
START

9 4

h=12

1 p h=11

15

PQ = {(Start,12)}

Tìm ki m t t nh t (tt)
8

2 b h=11 3 1

a h=8 8

GOAL 2 c h=5 2 d h=4 e 1 h h=6 4 q h=9 h=6 3 r f 9 5 h=4 2 5 h=0

h=8
START

9 4

h=12

1 p h=11

15

PQ = {(e,4),(d,8),(p,11)}

Tìm ki m t t nh t (tt)
9

2 b h=11 3 1

a h=8 8

GOAL 2 c h=5 2 d h=4 e 1 h h=6 4 q h=9 h=6 3 r f 9 5 h=4 2 5 h=0

h=8
START

9 4

h=12

1 p h=11

15

PQ = {(h,6),(r,6),(d,8),(p,11)}

Tìm ki m t t nh t (tt)
10

2 b h=11 3 1

a h=8 8

GOAL 2 c h=5 2 d h=4 e 1 h h=6 4 q h=9 h=6 3 r f 9 5 h=4 2 5 h=0

h=8
START

9 4

h=12

1 p h=11

15

PQ = {(r,6),(d,8),(q,9),(p,11)}

Heuristic trong bài toán 8-puzzle
11

Theo s ô n m sai v trí
1 5 2 6 3 7 4 8 1 2 3 4 5 6 7 8

h=6

Heuristic trong bài toán 8-puzzle (tt)
12

Theo t ng kho ng cách Manhattan

1 5 2 6 3 7 4 8
d = dx + dy

h=9

1 2 3 4 5 6 7 8

h = 0 + 2 + 1 + 2 + 2 + 1 +0 + 1 = 9

Thu t toán tìm ki m t t nh t
13

Init-PriQueue(PQ) Insert-PriQueue(PQ,START,h(START)) while (PQ khác r ng và PQ không ch a tr ng thái ñích) (s , h ) := Pop-least(PQ) V i m i s’ trong succs(s) N u s’ không có trong PQ và s’ chưa ñư c vi ng trư c ñó bao gi Insert-PriQueue(PQ,s’,h(s’)) Thu t toán BestFS
Best First Search

ð C

T i ưu Th i gian K

Không gian

O(min(N,BLMAX))

O(min(N,BLMAX))

M t vài c i ti n c a thu t toán này có th làm cho m i vi c t t ñ p hơn. Nó là th mà chúng ta g i là: A*….
* Vi c s d ng heuristic làm thay ñ i B

Hãy Xem “t t nh t” ng ng n th nào!
14

4 2 S h=4 A h=3 1 B h=2 1 C h=1 2 G h=0

Tìm ki m t t nh t rõ ràng không ñ m b o tìm th y ñư ng ñi t i ưu Câu h i: Chúng ta có th làm gì ñ tránh l i ng ng n này?

A* - Ý tư ng Cơ b n
15

Best-first: Khi b n m m t node n, l y node con n' và ñ t nó vào PriQueue v i ñ ưu tiên h(n') A*: Khi b n m m t node n, l y node con n' và ñ t nó vào PriQueue v i ñ ưu tiên (Chi phí ñi ñ n n') + h(n') ð t g(n) = Chi phí ñi ñ n n và ñ nh nghĩa… f(n) = g(n) + h(n) (3) (1) (2)

A* không ng ng n!
16

4 2 S h=4 A h=3 1 B h=2 1 C h=1 2 G h=0

A* d ng khi nào?
17

Ý tư ng: Ngay khi nó phát sinh ñư c tr ng thái ñích? Xem ví d sau:

1 A
h=7

S
h=8

1 B

h=3

1
h=2

C 1

7 G 7
h=0

D

h=1

Quy t c D ng A* ðúng ð n:
18

A* D ng Ch Khi m t Tr ng Thái ðích ðư c L y ra kh i Priority Queue 1 A
h=7

S
h=8

1 B

h=3

1
h=2

C 1

7 G 7
h=0

D

h=1

Các tr ng thái quay l i A*
19

M t câu h i khác: ði u gì x y ra n u A* quay l i m t tr ng thái ñã m , và tìm ñư c m t ñư ng ng n hơn?

1 A
h=7

S
h=8

1 B

h=3

1 C
h=2

1/2
Trong ví d này m t tr ng thái ñã m ñư c m l i. Như th nào và t i sao ?

D G 7

1
h=1

Các tr ng thái quay l i A*
20

ði u gì n u A* thăm m t tr ng thái ñã có trong hàng ñ i?
h=8

1 A
h=7

S

1 B

h=3

1 C
h=8

1/2
Trong ví d này m t tr ng thái ñã có trong hàng ñ i và ñang ñ i m có ñ ưu tiên tăng v t lên. Như th nào và t i sao?

D G 7

1
h=1 lưu ý r ng giá tr h này ñã thay ñ i so v i trang trư c.

Thu t toán A*
21

Priority queue PQ ban ñ u r ng. V (= t p các (b ba (state,f,backpointer)) ñã thăm trư c ñó b t ñ u là r ng. ð t S vào PQ và V v i ñ ưu tiên f(s) = g(s) + h(s) PQ r ng? Có? Không có l i gi i. Không? Lo i b node v i f(n) th p nh t kh i queue. G i nó là n. N u n là m t ñích, d ng và báo thành công. “M ” n : V i m i n' trong succs(n) ð t f’ = g(n') + h(n') = g(n) + cost(n,n') + h(n') N u n' chưa th y trư c ñó, hay n' ñã m v i f(n')>f’, hay n' hi n trong PQ v i f(n')>f’ Thì ð t/C p nh t n' trong PQ v i ñ ưu tiên f’ và c p nh t V ñ bao g m (state=n', f ’, BackPtr=n). Ngư c l i b qua n'

A* Có B o ñ m Tìm th y ðư ng ñi T i ưu?
22

1

A
h=6

1
h=0

S

h=7

G 3

Không. Và ví d sau cho th y t i sao.

Heuristic ch p nh n ñư c
23

ð t h*(n) = chi phí t i thi u th p nh t t n ñ n ñích. M t heuristic h là ch p nh n ñư c n u h(n) <= h*(n) v i m i tr ng thái n. M t heuristic ch p nh n ñư c ñ m b o không bao gi ư c tính quá chi phí ñ n ñích. M t heuristic ch p nh n ñư c là t i ưu.

Ví d 8-Puzzle
24

Tr ng thái ví d

1 5 2 6 3 7 4 8

Tr ng thái ñích

1 2 3 4 5 6 7 8

Heuristics nào sau ñây là ch p nh n ñư c?
• h(n) = S ô n m sai v trí trong tr ng thái n • h(n) = 0 • h(n) = T ng kho ng cách Manhattan gi a m i ô so v i v trí ñích • h(n) = 1

• h(n) = min (2, h*(n)) • h(n) = h*(n) • h(n) = max (2, h*(n))

A* v i heuristic ch p nh n ñư c b o ñ m ñư ng ñi t i ưu
25

Ch ng minh ñơn gi n (B n có th t ch ng minh…?)

So sánh L p Sâu d n v i A*
26

Trong sách c a Russell and Norvig, trang 107, Hình4.8 V i 8-puzzle, s tr ng thái ñư c m trung bình trong 100 bài toán ñư c ch n ng u nhiên trong ñó ñư ng ñi t i ưu dài… …4 bư c …8 bư c …12 bư c

L p Sâu d n Tìm ki m A* dùng “s ô sai v trí” làm heuristic A* dùng “T ng kho ng cách Manhattan” làm heuristic

112 13 12

6,300 39 25

3.6 x 106 227 73

A* : Khuy t ñi m
27

A* có th dùng nhi u b nh . Trên lý thuy t: O(s tr ng thái) V i không gian tìm ki m th c s l n, A* s dùng h t b nh .

IDA* : Tìm ki m V i B nh Gi i h n
28

A* l p v i ñ sâu tăng d n. Th t s , r t khác so v i A*. Gi s chi phí là s nguyên.
1. 2. 3. 4.

Th c hi n l p-không dùng DFS, không m r ng node nào có f(n) > 0. Có tìm th y ñích? N u có, d ng. Th c hi n l p-không dùng DFS, không m r ng node nào có f(n) > 1. Có tìm th y ñích? N u có, d ng. Th c hi n l p-không dùng DFS, không m r ng node nào có f(n) > 2. Có tìm th y ñích? N u có, d ng. Th c hi n l p-không dùng DFS, không m r ng node nào có f(n) > 3. Có tìm th y ñích? N u có, d ng.

…l p l i ñi u này, tăng ngư ng f(n) lên m t 1 m i l n, cho ñ n khi d ng.

Cái này
ð yñ B o ñ m tìm ñư c l i gi i t i ưu Nói chung t n chi phí nhi u hơn A*.

ði u c n n m
29

Hi u th u ñáo A*. Có th ch y tay các ví d th c thi A* ñơn gi n. Hi u ñư c “tính ch p nh n ñư c” c a heuristics. Ch ng minh tính ñ y ñ , b o ñ m tính t i ưu c a ñư ng ñi. Có th nh n xét v các ñánh giá.

Th c m c
30

Sign up to vote on this title
UsefulNot useful