Professional Documents
Culture Documents
NG PHƯƠNG PHÁP T
TÌM KIẾM – TÌM KIẾM
MÙ
Biu din bài toán
Một bài toán tìm kiếm
m có năm thành ph
phần: Q, S, G, succs, cost
S = {START}
G = {GOAL}
1
ðường ñi có chi phí thấp nhất từ Start ñến Goal:
Nếu trong ñồ thị biểu diễnn ccủa bài toán, các ñường ñi ñược biểu diễn bằằng các cạnh vô
hướng (không có ký hiệu mũi ũi ttên) là các ñường ñi hai chiều.
Trong trường hợpp chi phí chuy
chuyển ñổi giữa tất cả các trạng thái ñều bằng
ng nhau
cost(s,s’) = 1 cho tất cả các bi
biến ñổi
Khi ñó ñồ thị ñược gọii là không có chi phí; ñư
ñường ñi có chi phí nhỏ nhất tương ứng
ứ với ñường ñi
có số bước ít nhất.
có số bước = .
Cho một trạng thái n, ký hiệu g(n) là tổng chi phí ñường ñi ngắn nhất (hiệnn có) từ
t trạng thái ban
ñầu S ñến trạng thái n. Thuậtt toán UCS ssử dụng một hàng ñợii ưu tiên (Priority Queue – PQ) ñể
lưu trữ và duyệt các trạng
ng thái trên ñư
ñường ñi. Thuật toán dùng thêm một danh sách CLOSE ñể
lưu trữ các trạng thái ñã ñược xétt.
2
Khởi tạo: PQ rỗng, CLOSE rỗng.
ðưa trạng thái ban ñầu START vào PQ, ñộ ưu tiên g(START) = 0
Lặp ñến khi PQ rỗng
Lấy một trạng thái n (có g thấp nhất) ra khỏi PQ. ðưa n vào CLOSE.
Nếu n là trạng thái ñích GOAL thì “ñã tìm thấy”. Dừng thuật toán.
Nếu không, với mỗi trạng thái con n’ chưa xét (n’ không thuộc CLOSE) của n:
Tính ñộ ưu tiên: g(n’) = g(n) + cost(n, n’)
ðưa (n’, g(n’)) vào PQ
Cuối lặp
Thông báo không có ñường ñi từ START ñến GOAL.
3
2. Biểu diễn trên Cây tìm kiếm: xuất phát từ trạng thái ban ñầu, vẽ nút gốc của cây. Với mỗi
bước lặp của thuật toán, chọn nút ứng với trạng thái có chi phí thấp nhất trên cây bằng
cách ñánh số thứ tự, vẽ các nút con ứng với các trạng thái con của nút ñược chọn. Dừng
khi ñánh số thứ tự trạng thái ñích.
Tính chất
UCS bảo ñảm tìm ñược ñường ñi (nếu có) do ñây là thuật toán vét cạn không gian tìm
kiếm.
Theo tính chất của chi phí ñồ thị (cost > 0), một trạng thái ñược lấy ra khỏi PQ thì ñường
ñi hiện tại có chi phí thấp nhất so với các ñường ñi khác. Do ñó UCS ñảm bảo tìm ñược
ñường ñi ngắn nhất khi lấy trạng thái ñích ra khỏi PQ.
UCS không hiệu quả do phải xét nhiều trạng thái.
Nếu bài toán tìm kiếm không có chi phí (chi phí của các chuyển ñổi ñều bằng nhau), kết
quả của UCS tương tự tìm kiếm theo chiều rộng (Breadth First Search – BFS). (Tự biểu
diễn thuật toán với trường hợp ñồ thị không có chi phí)