NHẬP MƠN TRÍ TUỆ NHÂN TẠO
@copyrights by Dr Nguyễn Xn Hoài
Nội Dung
Tìm kiếm có sử dụng thơng tin thu nhận
trong q trình tìm kiếm (informed search) :
• Best-first search
• Greedy best-first search
• A* search
• Heuristics
• Local search algorithms.
• Hill-climbing search.
• Simulated annealing search
• Local beam search.
• Genetic algorithms.
• Ant Colony Optimization.
Mấu chốt của chiến lược tìm kiếm
• Chiến lược chọn node để xử lý tiếp theo (Expand).
Best-first search (BFS)
• Ý tưởng : Dùng một hàm định giá f(n) for each
node
– Hàm này phản ánh độ “tốt” của node
Chọn node có độ tốt tối ưu nhất để xử lý tiếp.
• Cài đặt:
Dùng hàng đợi ưu tiên. Sắp xếp các node trong
hàng theo thứ tự dảm dần của f(n).
• Thể hiện cụ thể:
– greedy best-first search
– A* search.
Tìm đường đi với giá tính theo km
Greedy best-first search
• Đặt hàm lượng giá bằng f(n) = h(n) (heuristic) =
ước lượng giá đến trạng thái đích.
• VD: hSLD(n) = Khoảng cách theo đường chim bay
từ n to thành phố đích.
• GBFS chọn node “được cho là” gần với node
đích để expand.
Ví dụ về GBFS
Ví dụ về GBFS
Ví dụ về GBFS
Ví dụ về GBFS
Đánh giá GBFS
• Đủ? Khơng – Có thể vào vịng lặp quẩn.
• Độ phức tạp thời gian? O(bm), Nếu hàm
heuristic xấp xỉ tốt trong thực tế thì thời
gian chạy sẽ giảm đi rất nhiều
• Độ phức tạp khơng gian? O(bm) – Lưu trữ
tất cả các Nodes.
• Tối ưu? Khơng.
A* search
• Ý tưởng: Loại bỏ những đường đi có chi
phí cao.
• Hàm lượng giá f(n) = g(n) + h(n)
• g(n) = Chi phí để đến n
• h(n) = lướợng giá từ n đến đích
• f(n) = ước lượng tổng giá đến đích qua n.
Ví dụ về A search
*
Ví dụ về A search
*
Ví dụ về A search
*
Ví dụ về A search
*
Ví dụ về A search
*
Ví dụ về A search
*
Heuristics chấp nhận được
• heuristic h(n) là chấp nhận được nếu với mọi
node n, h(n) ≤ h*(n), trong đó h*(n) là chi phí
thực để đi đến đích từ n.
• Heuristic chấp nhận được khơng bao giờ đánh
giá chi phí cao q thực tế.
• Ví dụ hSLD(n) là Heuristic chấp nhận được.
• Định lý: Nếu h(n) là chấp nhận được, A* là thuật
toán cho lời giải tối ưu.
Chứng minh tính tối ưu của A*
• Giả sử có đích G2 được tìm ra và lời giải là khơng tối ưu.
giải sử n là node chưa được expand trong fringe sao cho
n Nằm trên đường đi tới lời giải tối ưu có đích là G.
•
•
•
•
•
f(G2) = g(G2)
g(G2) > g(G)
f(G) = g(G)
f(G2) > f(G)
vì h(G2) = 0
vì G2 là khơng tối ưu
vì h(G) = 0
từ trên
Chứng minh tính tối ưu của A*
từ trên
• f(G2)> f(G)
• h(n)
≤ h^*(n)
vì h là chấp nhận được
• g(n) + h(n) ≤ g(n) + h*(n)
• f(n)
≤ f(G)
Vậy f(G2) > f(n), dẫn tới vô lý A* không thể lựa chọn G2 để
expand.
Tính nhất qn của Heuristics
• heuristic được gọi là nhất quán nếu với mọi node n, mọi
nút con n' của n sinh bởi tốn tử chuyển trạng a, ta có:
h(n) ≤ c(n,a,n') + h(n')
• Nếu h là nhất quán ta có:
f(n') = g(n') + h(n')
= g(n) + c(n,a,n') + h(n')
≥ g(n) + h(n)
= f(n)
• i.e., f(n) khơng giảm theo bất cứ đường đi nào.
• Định lý: Nếu h(n) là nhất quán, A* sử dụng
GRAPH-SEARCH là tối ưu.
Tín tối ưu của A*
• A* xét node theo thứ tự tăng dần của f
• Tạo nên "f-contours" của các node
• Contour i có tất cả các node với f=fi, trong đó fi < fi+1
Phân tích A*
•
•
•
•
Đủ? Có (Trừ phi có vơ hạn node với f ≤ f(G) ).
Độ phức tạp thời gian? Hàm mũ
Khơng gian? Lưu trữ tất cả các node
Tối ưu? có
Ví dụ về heuristics chấp nhận được
E.g., 8-puzzle:
• h1(n) = Số lượng ơ sai vị trí
• h2(n) = Tổng khoảng cách theo Mahattan Metric
(i.e., Số lượng ô từ ô hiện tại đến vị trí mong muốn)
• h1(S) = ?
• h2(S) = ?
•