Bài giảng Kỹ thuật lập trình - Chương 4: Tìm kiếm kinh nghiệm

Tìm kiếm kinh nghiệm (heuristic)

 Heuristics: là các phỏng đoán, ước chừng dựa

trên kinh nghiệm, trực giác.

 Các hệ giải quyết AI sử dụng heuristic trong

hai tình huống cơ bản:

– Bài toán được định nghĩa chính xác nhưng chi phí tìm

lời giải bằng TK vét cạn là không thể chấp nhận.

VD: Sự bùng nổ KGTT trong trò chơi cờ vua.

– Vấn đề với nhiều sự mơ hồ trong lời phát biểu bài

toán hay dữ liệu cũng như tri thức sẵn có.

VD: Chẩn đoán trong y học.

pdf 21 trang yennguyen 4200
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Kỹ thuật lập trình - Chương 4: Tìm kiếm kinh nghiệm", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Bài giảng Kỹ thuật lập trình - Chương 4: Tìm kiếm kinh nghiệm

Bài giảng Kỹ thuật lập trình - Chương 4: Tìm kiếm kinh nghiệm
Lec 4-TTNT. p.1
Lec 4
Tìm kiếm kinh nghiệm
TTNT. p.2
Tìm kiếm kinh nghiệm (heuristic)
 Heuristics: là các phỏng đoán, ước chừng dựa 
trên kinh nghiệm, trực giác.
 Các hệ giải quyết AI sử dụng heuristic trong 
hai tình huống cơ bản:
– Bài toán được định nghĩa chính xác nhưng chi phí tìm 
lời giải bằng TK vét cạn là không thể chấp nhận.
VD: Sự bùng nổ KGTT trong trò chơi cờ vua.
– Vấn đề với nhiều sự mơ hồ trong lời phát biểu bài 
toán hay dữ liệu cũng như tri thức sẵn có.
VD: Chẩn đoán trong y học.
TTNT. p.3
Giải quyết bài toán bằng tìm kiếm 
heuristic
 Tìm biểu diễn thích hợp mô tả các trạng thái và 
các toán tử của bài toán
 Xây dựng hàm đánh giá
 Thiết kế chiến lược chọn trạng thái để phát triển 
ở mỗi bước.
TTNT. p.4
Giải thuật Heuristic
 Một giải thuật heuristic có thể được xem gồm 2 
phần:
– Phép đo heuristic: thể hiện qua hàm đánh giá 
heuristic (evaluation function), dùng để đánh giá các 
đặc điểm của một trạng thái trong KGTT.
– Giải thuật tìm kiếm heuristic:
• Tìm kiếm tốt nhất-đầu tiên (best-first search): Tìm kiếm 
theo chiều rộng + hàm đánh giá
• Tìm kiếm leo đồi (hill-climbing): Tìm kiếm theo chiều sâu + 
hàm đánh giá
TTNT. p.5
KGTT của tic-tac-toe được thu nhỏ nhờ tính đối xứng 
của các trạng thái.
TTNT. p.6
Phép đo heuristic 
Heuristic “Số đường thắng nhiều nhất” áp dụng cho các 
nút con đầu tiên trong tic-tac-toe.
TTNT. p.7
Tìm kiếm tốt nhất-đầu tiên
Procedure Best-first search;
Begin
1. Khởi tạo danh sách L chỉ chứa trạng thái đầu;
2. Loop do
2.1 If L rỗng then {thông báo thất bại; stop};
2.2 Loại trạng thái u ở đầu danh sách L;
2.3 If u là trạng thái kết thúc then
{thông báo thành công; stop};
2.4 For mỗi trạng thái v kề u do
Chèn v vào danh sách L sao cho L được sắp 
theo thứ tự tăng dần của hàm đánh giá;
End;
TTNT. p.8
Ví dụ:tìm kiếm tốt nhất-đầu tiên
10
A
F
C
D
I
B
H
G
K
E
20
6
7
8 12
530
15
Đồ thị không gian trạng thái B H
G
K
E
A
20
D6
7
I 8
12
5
30
C15
Cây tìm kiếm tốt nhất-đầu tiên
F10
TTNT. p.9
Giải thuật Leo đồi
 Giải thuật:
– Mở rộng trạng thái hiện tại và đánh giá các trạng thái con của nó bằng hàm đánh 
giá heuristic.
– Con “tốt nhất” sẽ được chọn để đi tiếp.
Procedure Hill-Climbing_search;
Begin
1. Khởi tạo danh sách L chỉ chứa trạng thái đầu;
2. Loop do
2.1 If L rỗng then {thông báo thất bại; stop};
2.2 Loại trạng thái u ở đầu danh sách L;
2.3 If u là trạng thái kết thúc then
{thông báo thành công; stop};
2.4 For mỗi trạng thái v kề u do đặt v vào L1;
2.5 Sắp xếp L1 theo thứ tự tăng dần của hàm đánh giá sao cho trạng thái tốt 
nhất ở đầu danh sách L1;
2.6 Chuyển danh sách L1vào đầu danh sách L sao cho L1 ở đầu danh sách L;
End;
TTNT. p.10
Giải thuật Leo đồi
 Giới hạn: 
– Giải thuật có khuynh hướng bị sa lầy ở những cực đại 
cục bộ:
 Lời giải tìm được không tối ưu
 Không tìm được lời giải mặc dù có tồn tại lời giải
– Giải thuật có thể gặp vòng lặp vô hạn do không lưu 
giữ thông tin về các trạng thái đã duyệt. 
TTNT. p.11
Ví dụ: tìm kiếm leo đồi
E
A
20
D6
7
I 8
5
C15
Cây tìm kiếm leo đồi
F10
GB0
A
F
C
D
I
B
H
G
K
E
20
6
7
8 12
530
15
Đồ thị không gian trạng thái
TTNT. p.12
KGTT càng thu nhỏ khi áp dụng heuristic
TTNT. p.13
Giải thuật TK tốt nhất
1. open = [A5]; closed = []
2. Đánh giá A5; open = [B4,C4,D6]; 
closed = [A5]
3. Đánh giá B4; 
open = [C4,E5,F5,D6]; 
closed = [B4,A5]
4. Đánh giá C4; 
open = [H3,G4,E5,F5,D6]; 
closed = [C4,B4,A5]
5. Đánh giá H3; 
open = [O2,P3,G4,E5,F5,D6]; 
closed = [H3,C4,B4,A5]
6. Đánh giá O2; 
open = [P3,G4,E5,F5,D6]; 
closed = [O2,H3,C4,B4,A5]
7. Đánh giá P3; tìm được lời giải!
TTNT. p.14
Giải thuật Beam
Tìm kiếm beam (beam search) giống tìm kiếm theo 
chiều rộng. Tuy nhiên, trong tìm kiếm Beam ở mỗi 
mức chỉ hạn chế phát triển k đỉnh tốt nhất (các đỉnh 
này được xác định bởi hàm đánh giá)
Ví dụ: Trong ví dụ trên lấy k=2
H
G
K
E
A
20
D6
7
I 8
12
5
3B0
C15
Cây tìm kiếm Beam
F10
B0 G5
TTNT. p.15
Cài Đặt Hàm Đánh Giá 
(Evaluation Function)
2 8 3
1 6 4
7 5
2 8 3
1 6 4
7 5
2 8 3
1 4
7 6 5
2 8 3
1 6 4
7 5
start
1 2 3
8 4
7 6 5
goal
g(n) = 0
g(n) = 1
6 4 6
Xét trò chơi 8-puzzle. Cho mỗi trạng thái n một giá trị f(n):
f(n) = g(n) + h(n)
g(n) = khoảng cách thực sự từ n đến trạng thái bắt đầu
h(n) = hàm heuristic đánh giá khoảng cách từ trạng thái n đến 
mục tiêu. 
f(n) = 
h(n): số lượng các vị trí còn sai
TTNT. p.16
Khó khăn trong thiết kế hàm heuristic
Ba heuristic áp dụng vào 3 trạng thái của trò chơi ô đố 8 số
TTNT. p.17
Heuristic trong trò chơi đối kháng
 Giải thuật minimax:
– Hai đấu thủ trong trò chơi được gọi là MIN và MAX.
– Mỗi nút lá có giá trị:
• 1 nếu là MAX thắng, 
• 0 nếu là MIN thắng.
– Minimax sẽ truyền các giá trị này lên cao dần trên đồ 
thị, qua các nút cha mẹ kế tiếp theo các luật sau:
• Nếu trạng thái cha mẹ là MAX, gán cho nó giá trị lớn nhất
có trong các trạng thái con.
• Nếu trạng thái bố, mẹ là MIN, gán cho nó giá trị nhỏ nhất 
có trong các trạng thái con.
TTNT. p.18
Hãy áp dụng GT Minimax vào 
Trò Chơi NIM
TTNT. p.19
Minimax với độ sâu lớp cố định
 Minimax đối với một KGTT giả định.
 Các nút lá được gán các giá trị heuristic
 Còn giá trị tại các nút trong là các giá trị nhận 
được dựa trên giải thuật Minimax
TTNT. p.20
Heuristic trong trò chơi tic-tac-toe
Hàm Heuristic: E(n) = M(n) – O(n)
Trong đó: M(n) là tổng số đường thắng có thể của tôi
O(n) là tổng số đường thắng có thể của đối thủ
E(n) là trị số đánh giá tổng cộng cho trạng thái n
TTNT. p.21
Minimax 2 lớp được áp dụng vào 
nước đi mở đầu trong tic-tac-toe
Trích từ Nilsson (1971).

File đính kèm:

  • pdfbai_giang_ky_thuat_lap_trinh_chuong_4_tim_kiem_kinh_nghiem.pdf