Các kỹ thuật tìm kiếm heuristics Các kỹ thuật tìm kiếm heuristics Các kỹ thuật tìm kiếm heuristics Các kỹ thuật tìm kiếm heuristics Các kỹ thuật tìm kiếm heuristics Các kỹ thuật tìm kiếm heuristics Các kỹ thuật tìm kiếm heuristics Các kỹ thuật tìm kiếm heuristics Các kỹ thuật tìm kiếm heuristics Các kỹ thuật tìm kiếm heuristics Các kỹ thuật tìm kiếm heuristics Các kỹ thuật tìm kiếm heuristics Các kỹ thuật tìm kiếm heuristics Các kỹ thuật tìm kiếm heuristics Các kỹ thuật tìm kiếm heuristics
Trang 1Ch ươ ng 3: Các k ỹ thu ậ t tìm
Trang 2Thu giảm ràng buộc
Giải thuật cắt tỉa α - β
Trang 4Khái ni ệ m: Heuristic
Heuristics : là các phỏng đố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:
lời giải 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 tốn
hay dữ liệu cũng như tri thức sẵn cĩ
VD: Chẩn đốn trong y học
Trang 5Khái ni ệ m: Gi ả i thu ậ t Heuristics
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 f(n) - EF), 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:
TK tốt nhất (best-first search)
A* search
Giải thuật leo núi (hill-climbing)
Trang 6Ví d ụ phép ñ o Heuristics
Trang 7Ví d ụ phép ñ o Heuristics (tt)
Heuristic “S ố ñườ ng th ắ ng nhi ề u nh ấ t” (theo các
ñườ ng chéo trên bàn c ờ ) áp d ụ ng cho các con c ờ
ñầ u tên ñặ t vào bàn c ờ trong bàn c ờ tic-tac-toe
Trang 8Ví d ụ phép ñ o Heuristics (tt)
Trang 9Gi ả i thu ậ t leo ñồ i (Hill climbing)
Giải thuật
Xét trạng thái bắt ñầu
Nếu là ñích => dừng
Ngược lại: thiết lập khởi ñầu như TT hiện tại
Lặp ñến khi: gặp ñích OR không còn luật nào chưa
ñược áp dụng vào TT hiện tại
Lựa một luật ñể áp dụng vào TT hiện tại ñể sinh ra một
TT mới
Xem xét TT mới này
Nếu là ñích => dừng
Nếu không là ñích, nhưng tốt hơn TT hiện tại => thiết lập
TT mới là TT hiện tại
Nếu không tốt hơn thì thì tiếp lần lặp kế
Trang 10Lờ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 11Gi ả i thu ậ t leo ñồ i (tt)
Bài toán 8 Hậu
Trang thái bắt ñầu: mỗi Hậu trên 1cột
Trạng thái ñích: các Hậu không thể tấn công nhau
Phép ño Heuristic h(n) : số lượng các cập hậu ñối kháng
nhau
Trang 12Tìm ki ế m t ố t nh ấ t (BFS)
Là phương pháp dung hoà của BrFS và DFS
Có sử dụng ñể ñánh giá ưu thế của mỗi trạng thái, có thể
là ước lượng từ nó ñến TT ñích
Tại mỗi bước, GT sẽ chọn trạng thái mà nó cho rằng là có
ưu thế nhất trong số các trạng thái ñã sinh ra ñược ñến
thời ñiểm ñó
Khác với GT leo ñồi có cải tiến ở chổ: có lưu tất cả những
TT ñã phát sinh ñến thời ñiểm chọn TT ñể xét tiếp
Dùng hai danh sách:
OPEN: chứa các TT sẽ ñược xét.
CLOSED: chứa các TT ñã xét qua.
Trang 13Phát sinh các con của nó
Với mỗi con:
Nếu nó chưa ñược phát sinh: gán nó trị ñánh giá, ñưa vào OPEN, ghi nhận TT cha của nó
Nếu ñã ñược phát sinh trước: Nếu ñạt ñến bởi ñường khác tốt hơn
=> ghi nhận lại TT cha của nó, cập nhật lại trị ñánh giá của nó và của các con của nó
Trang 14Tìm ki ế m t ố t nh ấ t (BFS)
1. open = [A5]; closed = [ ]
2. đánh giá A5; open = [B4,C4,D6];
7. đánh giá P3; tìm ựược lời giải!
Trang 15Cài ñặ t hàm ñ ánh giá (EF)
Xét trò chơi 8- ô , mỗi trạng thái n, một giá trị f(n):
f(n) = g(n) + h(n)
n ñến mục tiêu
5 7
4 6 1
3 8 2
5 7
4 6 1
3 8 2
5 6 7
4 1
3 8 2
5 7
4 6 1
3 8 2
start
5 6 7
4 8
3 2 1
goal
g(n) = 0
g(n) = 1h(n): số lượng các vị trí còn sai;
Trang 16Ví d ụ
Trang 17Ví d ụ …
Trang 18Ví d ụ …
Trang 19Heuristic 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.
Nếu trạng thái cha mẹ là MIN, gán cho nó giá trị nhỏ nhất có
trong các trạng thái con.
Trang 200 1
K Ế T QU Ả C Ủ A
MIN
K Ế T QU Ả C Ủ A MAX
Trang 22Heuristic 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
Trang 23Minimax 2 l ớ p ñượ c áp d ụ ng vào
n ướ c ñ i m ở ñầ u trong tic-tac-toe
Max (X) có 5
ñườ ng th ắ ng, Min(O) có 4, hàm heuristic là -1
Trang 24Thu gi ả m bài toán
ðồ thị AND-OR :
ðược dùng ñể biểu diễn KGTT cho bài toán giải ñược bằng cách
phân rã ra các bài toán nhỏ hơn
Khi bài toán ñược phân rã thành N bài toán con, mà tất cả chúng phải ñược giải ñể hoàn thành bài toán lớn thì ñược biểu diễn thành cung AND chỉ ñến N trạng thái con
Nhiều cách giải cho bài toán có thể ñược dùng thì có thể biểu diễn bởi cung OR
A có thể ñược thông qua hai cách:
- Giải B, hoặc
- Giải cả C và D
Trang 25Thu gi ả m bài toán (tt)
ðồ thị AND-OR :
Nếu dùng giải thuật BFS cho việc tìm lời giải trên ñồ thị
AND-OR thì có lẽ không thích hợp vì như xem xét ñồ thị sau:
Nếu giá trị ghi kề bên trạng thái là trị ước lượng cho trạng thái ñó.
Theo BFS thì trạng thái kế tiếp ñược chọn là C, như:
Khi chọn cách giải qua C thì bắt buộc phải giải cả D Do vậy tổng chi phí cho cách giải này là: C+D+ 2 = 9, 2 là giá trị của hàm g trong BFS
Trong khi ñó nếu chọn cách giải qua B thì chi phí chỉ là: B+1 = 6
Trang 26Thu gi ả m bài toán (tt)
GT thu giảm bài toán
Lấy một TT chưa mở rộng và mở rộng nó Nếu không có con thì gán FUTILITY bằng trị của TT này Ngược lại, thêm các con vào
ñồ thị và mỗi chúng tính f’ (sử dụng chỉ h’, bỏ qua g) Nếu f’ =0
thì gán nhãn cho TT ñó là SOLVED
Thay ñổi f’ của TT ñã ñược mở rộng ñể phản ánh thông tin ñược cung cấp bởi con của nó Lan truyền trị này ngược lên ñồ thị Nếu một TT có cung mà tất cả các con của nó ñã ñược gán nhãn
SOLVED thì nó cũng ñược gán nhãn SOLVED Khi lan truyền ngược lên ñồ thị ñánh dấu cung nào là tốt nhất như là phần của con
ñường tốt nhất hiện tại
Trang 27Thu gi ả m bài toán (tt)
GT Thu giảm (tt.) - từng bước:
Trang 28Thu gi ả m bài toán (tt)
GT Thu giảm (tt.) - từng bước:
Trang 29Gi ả i thu ậ t c ắ t t ỉ a α - β
Tìm kiếm theo kiểu depth-first.
Nút MAX có 1 giá trị α (luôn tăng)
Nút MIN có 1 giá trị β (luôn giảm)
Tìm Kiếm có thể kết thúc dưới bất kỳ:
Nút MIN nào có ββββ ≤≤≤≤ αααα của bất kỳ nút cha MAX nào.
Nút MAX nào có αααα ≥≥≥≥ ββββ của bất kỳ nút cha MIN nào.
Giải thuật cắt tỉa α - β thể hiện mối quan hệ giữa các nút ở
lớp n và n+2, mà tại ñó toàn bộ cây có gốc tại lớp n+1 có
thể cắt bỏ.
Trang 32C ắ t t ỉ a α - β : ví d ụ
Trang 33Bài t ậ p: bài 1 ( trò ñố 8 ô như )
Dùng các hàm lượng giá heuristic sau
h1 = số lượng các vị trí sai khác so với trạng thái goal
h2 = tổng số ñộ dời ngắn nhất của các ô về vị trí ñúng (khoảng cách
Manhattan)
hãy triển khai không gian trạng thái của bài toán ñến mức 5 (nếu chưa tìm ñược goal):
a) Theo giải thuật leo núi
b) Theo giải thuật tìm kiếm rộng
c) Theo giải thuật tìm kiếm sâu
d) Theo giải thuật tìm kiếm tốt nhất ñầu tiên
4 5
8
7
6
3 2
1
Start
5 6
7
4 8
3 2
1 Goal
Trang 34Trong cây tìm kiếm dưới ñây, mỗi nút có 2 giá trị ñi kèm: giá trị bên trái của nút (in nghiêng) thể hiện giá trị heuristic của nút, và giá trị bên phải nút thể hiện thứ tự nút ñược duyệt qua Với mỗi chiến lược tìm kiếm dưới
ñây, hãy viết danh sách thứ tự các nút ñược duyệt, so sánh và cho biết ta
ñã dùng giải thuật tìm kiếm nào trên cây :
a) Tìm kiếm rộng BFS
b) Tìm kiếm sâu DFS
c) Tìm kiếm tốt nhất ñầu tiên BFS
d) Tìm kiếm leo núi
Bài t ậ p: bài 2 (duy ệ t ñồ th ị )
Trang 35Kê danh sách các nút ñược duyệt theo tìm kiếm DFS.
Thực hiện giải thuật Minimax trên cây
Sẽ có gì khác biệt nếu như ta dùng giải thuật cắt tỉa alpha – beta ñể ñịnh trị nút gốc cho cây?
Bài t ậ p: bài 3 (minimax)