1
KỸ THUẬT TÌM KIẾM
HEURISTIC
2
NỘI DUNG
Sinh ra và Kiểm thử (Generate-and-Test)
Leo đồi (Hill Climbing)
Leo đồi đơn giản (Simple Hill Climbing)
Leo đồi dốc đứng (Steepest-Ascent Hill Climbing)
phỏng luyện kim (Simulated Annealing)
Tìm kiếm tốt nhất đầu tiên
Đồ thị OR & Thuật toán tìm kiếm tốt nhất đầu tiên
Thuật toán A*
Suy giảm vấn đề
Đồ thị AND-OR
Thuật toán AO*
Thỏa mãn ràng buộc (Constraint satisfaction)
Phân tích Means-Ends
3
SINH RA VÀ KIỂM THỬ
Generate-and-Test
Algo Genarate-and-Test
1. Sinh ra: một « lời giải tiềm năng » có thể
Sinh ra một nút / Sinh ra một đường đi xuất phát từ trạng thái khởiđầu
2. Kiểm thử: « lời giải tiềm năng » được sinh ra là một lời giải?
So sánh nút được sinh ra/ đầu mút cuối của đường đi được sinh ra với các trạngthái
đích
3. Nếu tìm thấy một lời giải « thông báo và thoát » nếu không quay lại
ớc 1.
Nếu q trình « sinh ra » là hệ thống, thủ tục « thể » tìm thấy một
lời giải nếu tồn tại nhưng « có thể » rất lâu!
Thuật toán « Sinh ra và Kiểm thử » là thuật toán tìm kiếm sâu.
Nếu « sinh ra » có hệ thống (tìm kiếm vét cạn)
Nếu « sinh ra » ngẫu nhiên, không chắc tìm thấy lời giải dù nó tồn tại (thuật
toán bảo tàng Anh – British Museum)
« Sinh ra » có hệ thống, bỏ qua một số « lời giải tiềm năng » thiếu hứa hẹn là
một giải pháp dung hòa hai thái cực trên (Sinh ra kiểm thử heuristic)
« Sinh ra và kiểm thử » kết hợp với « Lập kế hoạch »
4
LEO ĐỒI HILL CLIMBING (1)
Leo đồi một biến thể của sinh ra kiểm thử, trong đó
thông tin phản hồi từ thủ tục kiểm thử hỗ trợ «bộ sinh »
quyết định hướng di chuyển
Trong « Sinh ra và kiểm thử », hàm kiểm thử là hàmYes-No
Nếu hàm kiểm thử một hàm heuristic, cung cấp một ước
lượng « tính gần » của trạng thái đã cho so với đích, « bộ sinh »
sẽ khai thác « thông tin » này để quyết định hướng « khai thác »
Leo đồi thường được sử dụng khi có sẵn một hàm
heuristic tốt và thiếu thông tin hữu dụng khác
5
LEO ĐỒI HILL CLIMBING (2)
LEO ĐỒI ĐƠN GiẢN
Algo Simple Hill Climbing
1. Đánh giá trạng thái khởi đầu.Nếu một trạng thái đích, « thông
báo kết quả » thoát, nếu không lấy trạng thái khởi đầu m trạng
thái hiện hành.
2. Lặp lại đến tận khi tìm thấy một lời giải hoặc không còn toán tử nào
thể áp dụng vào trạng thái hiện hành:
a) Chọn một toán tử thể áp dụng vào trạng thái hiện hành nhưng chưa
được áp dụng vào trạng thái hiện hành.Áp dụng vào trạng thái hiện
hành để sinh ra trạng thái mới
b) Đánh giá trạng thái mới.
iii.
i. Nếu là một trạng thái đích, « thông báo kết quả » thoát
ii. Nếu nó không một trạng thái đích nhưng « tốt hơn » trạng thái hiện hành, lấy
làm trạng thái hiện hành
Nếu không là một trạng thái đích và không « tốt hơn » trạng thái hiện hành,
tiếp tục vòng lặp
Hàm đánh giá « tốt hơn » là phương tiện để đưa « tri thức nh
vực » vào quá trình điều khiển.
Phương pháp tìm kiếm sử dụng « tri thức nh vực » được gọi
phương pháp tìm kiếm heuristic.