Professional Documents
Culture Documents
2
Tác nhân thông minh (hợp lý)
◎ Tác nhân (agent) là một thực thể có khả năng nhận thức và sau đó là hành động.
: ∗ →
◎ Tác nhân hợp lý (rational agent) sẽ hành động để đạt được kết quả tốt nhất.
○ Sau khi nhận thức có thể suy nghĩ/suy diễn.
○ Sau khi nhận thức có thể phản xạ mà không cần suy nghĩ.
3
Tác nhân hợp lý
5
Thực hiện theo kế hoạch
6
Thế giới Pac-man
◎ Lên kế hoạch?
7
Thế giới Pac-man
8
Tác nhân giải quyết bài toán
9
Nội dung
10
Bài toán tìm kiếm
○ Hàm “successor”
◉ Cho biết từ một trạng thái sẽ có thể đi đến những trạng thái kế nào (với hành động nào và
chi phí bao nhiêu)
“N”, 1.0
○ Trạng thái bắt đầu, và hàm kiểm tra trạng thái đích
“E”, 1.0
11
Bài toán tìm kiếm
◎ Xác định các thông tin trong bài toán tìm đường đi từ Arad đến Bucharest:
12
Mô hình
◎ Bài toán tìm kiếm = mô hình hóa về thế giới và giải quyết
nó thông qua mô hình.
13
Bài toán tìm kiếm
◎ Một lời giải là một kế hoạch gồm một chuỗi các hành
động mà sẽ chuyển từ trạng thái bắt đầu sang trạng thái
đích.
14
Không gian trạng thái
Trạng thái thế giới thực bao gồm mọi chi tiết của môi trường (vd, vị trí của
Pacman, hướng quay mặt của Pacman, màu sắc Pacman, …)
Trạng thái trong bài toán tìm kiếm chỉ gồm các thông tin cần thiết cho việc lên
kế hoạch
16
Cây tìm kiếm
◎ Cây tìm kiếm giúp ta dễ xác định các trạng thái có thể tại mỗi thời điểm.
Bắt đầu
“N”, 1.0 “E”, 1.0
17
Cây tìm kiếm và kế hoạch
Một đỉnh của cây không chỉ là một trạng thái mà là một kế hoạch: một đường
đi từ S đến trạng thái này
Do đó, trong cây, một trạng thái có thể xuất hiện nhiều lần
18
Cây tìm kiếm và đồ thị trạng thái
S G
s
a b
b G a G
a G b G
… … 19
Nội dung
20
Tìm kiếm mù
21
Các thuật toán tìm kiếm
Ý tưởng:
- Từ trạng thái bắt đầu, tiến hành phát triển dần cây tìm kiếm (lập kế hoạch) theo
một chiến lược nào đó.
- Làm cho đến khi tìm được trạng thái đích.
22
Các thuật toán tìm kiếm
Cụ thể:
◎ Trong quá trình tìm kiếm, ta sẽ có biến fringe lưu danh sách các kế hoạch tiềm năng (ứng với các
node lá của cây đang xây dựng).
◎ Ở mỗi vòng lặp, ta sẽ lấy ra từ fringe một kế hoạch theo một chiến lược nào đó và mở rộng ra (dựa
vào hàm successor), rồi thêm các kế hoạch mới này vào fringe (ứng với việc phát triển cây)
◎ Cứ thế cho đến khi kế hoạch được lấy ra đến được trạng thái đích, hoặc trong fringe không còn gì
nữa (không tìm được lời giải)
23
Thuật toán Depth-First Search (DFS)
24
Thuật toán DFS
25
Thuật toán DFS
d e p
b c e h r q
a a h r p q f
p q f q c G
q c a
G
a 26
Thuật toán DFS
Ta dùng một cấu trúc dữ liệu gọi là Path để biểu diễn đường đi từ START đến trạng thái hiện tại.
VD. Path P = <START, d, e, r >
Cùng với mỗi node trên đường đi, chúng ta phải nhớ những con nào ta vẫn có thể mở. VD. tại điểm
sau, ta có
P = <START (expand=e , p) ,
d (expand = NULL) ,
e (expand = h) ,
r (expand = f) >
27
Thuật toán DFS
28
Nhận xét về DFS
◎ DFS duyệt cây theo hướng từ trái qua phải (hoặc từ phải qua
trái tùy theo cách cài đặt)
29
Nhận xét về DFS
◎ DFS có đảm bảo tìm được lời giải (nếu tồn tại)?
○ Nếu trong đồ thị có vòng lặp thì DFS sẽ có thể bị đào sâu mãi
mãi.
30
Nhận xét về DFS
◎ DFS có đảm bảo tìm được lời giải tối ưu (nếu tồn tại)?
○ Không, DFS tìm được lời giải ở phía trái nhất của cây (nếu
không gặp vấn đề bị đào sâu mãi mãi)
31
Minh họa DFS
32
Nội dung
33
Thuật toán Breadth-First Search (BFS)
34
Thuật toán BFS
35
Thuật toán BFS
a GOAL
b c
e
d f
START h
p r
q
Gán nhãn tất cả trạng thái có thể đi đến được từ S trong 1 bước nhưng không thể
đi đến được trong ít hơn 1 bước.
Sau đó gán nhãn tất cả trạng thái có thể đi đến được từ S trong 2 bước nhưng
không thể đi đến được trong ít hơn 2 bước.
Sau đó gán nhãn tất cả trạng thái có thể đi đến được từ S trong 3 bước nhưng
không thể đi đến được trong ít hơn 3 bước.
V.v… đến khi trạng thái Goal được đi đến.
36
Thuật toán BFS
a G
b c
e
d f
S h
p r
q
d e p
Các tầng
tìm kiếm b c e h r q
a a h r p q f
p q f q c G
q c a
G
a 37
Tìm kiếm Theo Chiều Rộng
a GOAL
b c
0 bước từ e
start d
f
START h
p r
q
38
Tìm kiếm Theo Chiều Rộng
1 bước từ
start a GOAL
b c
0 bước từ e
start d
f
START h
p r
q
39
Tìm kiếm Theo Chiều Rộng
1 bước từ
start a GOAL
b c
0 bước từ e
start d
f
START h
p r
q
2 bước từ
start
40
Tìm kiếm Theo Chiều Rộng
1 bước từ
start a GOAL
b c
0 bước từ e
start d
f
START h
3 bước từ
start
p r
q
2 bước từ
start
41
Tìm kiếm Theo Chiều Rộng
1 bước từ
start a GOAL
c
4 bước từ
b
start
0 bước từ e
start d
f
START h
3 bước từ
start
p r
q
2 bước từ
start
42
Ghi nhớ đường đi
a GOAL
b c
e
d f
START h
p r
q
Ngoài ra, khi gán nhãn một trạng thái, ghi nhận trạng thái trước
đó. Ghi nhận này được gọi là con trỏ quay lui. Lịch sử trước đó
được dùng để phát sinh con đường lời giải, khi đã tìm được
đích:
“Tôi đã đến đích. Tôi thấy mình đã ở f trước đó. Và tôi đã ở r
trước khi tới f. Và…
…. do đó con đường lời giải là S e r f G”
43
Con trỏ quay lui
1 bước từ
start a GOAL
b c 4 bước từ
start
0 bước từ e
start d
f
START h
3 bước từ
start
p r
q
2 bước từ
start
44
Con trỏ quay lui
1 bước từ
start a GOAL
4 bước từ
b c
start
0 bước từ e
start d
f
START h
3 bước từ
start
p r
q
2 bước từ
start
45
Giải thuật BFS
46
Nhận xét về BFS
47
Chi phí chuyển đổi khác nhau
a GOAL
2 2
b c
5
5
1 8
2 e
3 d
f
9 1 9
START h
1 4 5
p 15 4 3 r
q
Nếu chi phí chuyển trạng thái là khác nhau thì BFS không thể trả về lời giải
tối ưu.
Tại sao?
Vậy phương pháp nào để tìm được lời giải tối ưu trong trường hợp này?
48
Minh họa BFS
49
So sánh DFS và BFS
50
Nội dung
51
Thuật toán Uniform Cost Search (UCS)
52
Thuật toán UCS
53
Bắt đầu UCS
a GOAL
2
2
c
b 2
5
1 8
2 e
3 d
f
9 1
9
START h
4 5
1
4 3
p 15 r
q
PQ = { (S,0) }
54
Lặp UCS
a GOAL
2
2
c
b 2
5
1 8
2 e
3 d
f
9 1
9
START h
4 5
1
4 3
p 15 r
q
Lặp:
1. Lấy trạng thái chi phí thấp
nhất từ PQ
2. Thêm các con
PQ = { (S,0) }
55
Lặp UCS
a GOAL
2
2
c
b 2
5
1 8
2 e
3 d
f
9 1
9
START h
4 5
1
4 3
p 15 r
q
Lặp:
1. Lấy trạng thái chi phí thấp
nhất từ PQ
2. Thêm các con
PQ = { (p,1), (d,3) , (e,9) }
56
Lặp UCS
a GOAL
2
2
c
b 2
5
1 8
2 e
3 d
f
9 1
9
START h
4 5
1
4 3
p 15 r
q
Lặp:
1. Lấy trạng thái chi phí thấp
nhất từ PQ
2. Thêm các con
PQ = { (d,3) , (e,9) , (q,16) }
57
Lặp UCS
a GOAL
2
2
c
b 2
5
1 8
2 e
3 d
f
9 1
9
START h
4 5
1
4 3
p 15 r
q
Lặp:
1. Lấy trạng thái chi phí thấp
nhất từ PQ
2. Thêm các con
PQ = { (b,4) , (e,5) , (c,11) , (q,16) }
58
Lặp UCS
a GOAL
2
2
c
b 2
5
1 8
2 e
3 d
f
9 1
9
START h
4 5
1
4 3
p 15 r
q
Lặp:
1. Lấy trạng thái chi phí thấp
nhất từ PQ
2. Thêm các con
PQ = { (b,4) , (e,5) , (c,11) , (q,16) }
59
Lặp UCS
a GOAL
2
2
c
b 2
5
1 8
2 e
3 d
f
9 1
9
START h
4 5
1
4 3
p 15 r
q
Lặp:
1. Lấy trạng thái chi phí thấp
nhất từ PQ
2. Thêm các con
PQ = { (e,5) , (a,6) , (c,11) , (q,16) }
60
Lặp UCS
a GOAL
2
2
c
b 2
5
1 8
2 e
3 d
f
9 1
9
START h
4 5
1
4 3
p 15 r
q
Lặp:
1. Lấy trạng thái chi phí thấp
nhất từ PQ
2. Thêm các con
PQ = { (a,6),(h,6),(c,11),(r,14),(q,16) }
61
Lặp UCS
a GOAL
2
2
c
b 2
5
1 8
2 e
3 d
f
9 1
9
START h
4 5
1
4 3
p 15 r
q
Lặp:
1. Lấy trạng thái chi phí thấp
nhất từ PQ
2. Thêm các con
PQ = { (h,6),(c,11),(r,14),(q,16) }
62
Lặp UCS
a GOAL
2
2
c
b 2
5
1 8
2 e
3 d
f
9 1
9
START h
4 5
1
4 3
p 15 r
q
Lặp:
1. Lấy trạng thái chi phí thấp
nhất từ PQ
2. Thêm các con
PQ = { (q,10), (c,11),(r,14) }
63
Lặp UCS
a GOAL
2
2
c
b 2
5
1 8
2 e
3 d
f
9 1
9
START h
4 5
1
4 3
p 15 r
q
Lặp:
1. Lấy trạng thái chi phí thấp
nhất từ PQ
2. Thêm các con
PQ = { (q,10), (c,11),(r,14) }
64
Lặp UCS
a GOAL
2
2
c
b 2
5
1 8
2 e
3 d
f
9 1
9
START h
4 5
1
4 3
p 15 r
q
Lặp:
1. Lấy trạng thái chi phí thấp
nhất từ PQ
2. Thêm các con
PQ = { (c,11),(r,13) }
65
Lặp UCS
a GOAL
2
2
c
b 2
5
1 8
2 e
3 d
f
9 1
9
START h
4 5
1
4 3
p 15 r
q
Lặp:
1. Lấy trạng thái chi phí thấp
nhất từ PQ
2. Thêm các con
PQ = { (r,13) }
66
Lặp UCS
a GOAL
2
2
c
b 2
5
1 8
2 e
3 d
f
9 1
9
START h
4 5
1
4 3
p 15 r
q
Lặp:
1. Lấy trạng thái chi phí thấp
nhất từ PQ
2. Thêm các con
PQ = { (f,18) }
67
Lặp UCS
a GOAL
2
2
c
b 2
5
1 8
2 e
3 d
f
9 1
9
START h
4 5
1
4 3
p 15 r
q
Lặp:
1. Lấy trạng thái chi phí thấp
nhất từ PQ
2. Thêm các con
PQ = { (G,23) }
68
Lặp UCS
a GOAL
2
2
c
b 2
5
1 8
2 e
3 d
f
9 1
9
START h
4 5
1
4 3
p 15 r
q
Lặp:
1. Lấy trạng thái chi phí thấp
nhất từ PQ
2. Thêm các con
PQ = { (G,23) }
69
Lặp UCS
a GOAL
2
2
c
b 2
5
1 8
2 e
3 d
f
9 1
9
START h
4 5
1
4 3
p 15 r
q
Lặp:
1. Lấy trạng thái chi phí thấp
nhất từ PQ
2. Thêm các con
PQ = { }
70
Biểu diễn cây tìm kiếm
2 a G
b 8
c
1 2
2 e
3 d 9 2 f
S h 8 1
1 p r
q
15
S 0
d 3 e 9 p 1
b 4 c e 5 h 17 r 11 q 16
11
Cost a 6 a h 13 r 7 p q f
contours
p q f 8 q c G
a
q 11 c G 10
a 71
Nhận xét về UCS
72
Nhận xét về UCS
◎ UCS khám phá chi phí tăng dần theo dạng đường bao.
○ Phải duyệt tất cả các trạng thái ở mọi hướng.
Chi phí tính toán cao
Start Goal
73
Minh họa UCS
74
Một số thuật toán khác
75
Bidirectional search
Nội dung
76
Phương pháp nào là DFS, BFS, UCS? (1)
77
Phương pháp nào là DFS, BFS, UCS? (2)
78
Phương pháp nào là DFS, BFS, UCS? (3)
79
So sánh DFS, BFS, DFS
80
So sánh DFS, BFS, DFS
81
Tìm kiếm và mô hình
82
Ví dụ
83
Ví dụ
84
85
Tài liệu tham khảo
86