Trong bài 4 chúng ta sẽ cùng tìm hiểu về tìm kiếm kinh nghiệm thông qua các nội dung sau đây: Giải quyết bài toán bằng tìm kiếm heuristic, giải thuật Heuristic, phép đo heuristic, tìm kiếm tốt nhất-đầu tiên, giải thuật Leo đồi,...và một số nội dung khác.
Trang 1Lec 4
Trang 2Tì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
Trang 3Giải quyết bài toán bằng tìm kiếm
Trang 4Giả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á
Trang 5KGTT của tic-tac-toe được thu nhỏ nhờ tính đối xứng
của các trạng thái
Trang 6Phé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
Trang 7Tì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á;
Trang 8Ví dụ:tìm kiếm tốt nhất-đầu tiên
20 6
7
8 12
5 3
0 15
G
K E
3 0
Trang 9Giải thuật Leo đồi
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 L theo thứ tự tăng dần của hàm đánh giá sao cho trạng thái tốt
Trang 10Giả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
Trang 11Ví dụ: tìm kiếm leo đồi
20 6
7
8 12
5 3
0
15
Đồ thị không gian trạng thái
Trang 12KGTT càng thu nhỏ khi áp dụng heuristic
Trang 13Giải thuật TK tốt nhất
1 open = [A5]; closed = []
2 Đánh giá A5; open = [B4,C4,D6];
Trang 14Giả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
Trang 15Cài Đặt Hàm Đánh Giá (Evaluation Function)
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
Trang 16Khó khăn trong thiết kế hàm heuristic
Trang 17Heuristic 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.
• 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.
Trang 18Hãy áp dụng GT Minimax vào
Trò Chơi NIM
Trang 19Minimax 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
Trang 20Heuristic trong trò chơi tic-tac-toe
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ủ
Trang 21Minimax 2 lớp được áp dụng vào
nước đi mở đầu trong tic-tac-toe