Thuật toántìm kiếm tốt nhất đầu tiên

Một phần của tài liệu Thuật toán tìm đường đi ngắn nhất và xây dựng ứng dụng (Trang 35 - 38)

Thuật toán tìm kiếm tốt nhất đầu tiên tìm lời giải có dùng tri thức về bài toán để hƣớng dẫn. Tri thức này hƣớng việc tìm kiếm về nút lời giải trong không gian bài toán.

Tại mỗi nút đƣợc xem xét, ngƣời ta sẽ quyết định việc tìm kiếm tiếp tục theo nhánh nào tin tƣởng sẽ dẫn đến lời giải.

Trong trí tuệ nhân tạo, Thuật toán tìm kiếm tốt nhất đầu tiên sử dụng hàm đánh giá. Hàm này dùng các thông tin hiện tại về mức độ quan trọng của bài toán tại nút đó để gán giá trị cho nút này, gọi là trọng số của nút. Giá

trị này đƣợc xem xét trong lúc tìm kiếm. Thông thƣờng, nút có trọng số nhỏ (lớn) nhất sẽ đƣợc chọn trong quá trình tìm kiếm.

2.4.1. Hàm đánh giá

Trong nhiều vấn đề, ta có thể sử dụng kinh nghiệm, tri thức của chúng ta về vấn đề đó để đánh giá các trạng thái của vấn đề. Với mỗi trạng thái u, ta sẽ xác dịnh một giá trị số h(u), số này đánh giá “sự gần đích” của trạng thái u. Hàm h(u) đƣợc gọi là hàm đánh giá.

Phƣơng pháp tìm kiếm kinh nghiệm là phƣơng pháp tìm kiếm có sử dụng đến hàm đánh giá. Trong quá trình tìm kiếm, tại mỗi bƣớc ta sẽ chọn trạng thái kế tiếp là trạng thái có nhiều hứa hẹn dẫn tới đích nhiều nhất. Quá trình tìm kiếm trong không gian trạng thái có sử dụng hàm đánh giá bao gồm các bƣớc cơ bản sau:

- Biểu diễn thích hợp các trạng thái và các toán tử chuyển trạng thái - Xây dựng hàm đánh giá.

- Thiết kế chiến lƣợc chọn trạng thái ở mỗi bƣớc

2.4.2. Thuật toán procedure Best_FS; begin open:={u0}; closed:={ }; while open<>{ } do begin

loại trạng thái ngoài cùng bên trái của open, gọi nó là u if (u là một đích) then thông báo thắng lợi, thoát else begin

Đƣa u vào closed

Phát sinh các con v của u

Loại các con v đã có mặt trong open + closed Đƣa các con còn lại vào open

end end

Thông báo thất bại end

Một cách đầy đủ, để có đƣợc kết quả là đƣờng đi nghiệm chúng ta phải lƣu ý thêm về việc lƣu giữ các trạng thái cha để truy lại vết của đƣờng đi này.

2.4.3. Ví dụ Cho đồ thị nhƣ hình vẽ

Với giá trị Hueristic của mỗi đỉnh nhƣ sau

H(1) = 1 H(2) = 3 H(3) = 5 H(4) = 6 H(5) = 4 H(6) = 1 H(7) = 2 H(8) = 3 H(9) = 1 H(10) = 6

Kết quả

Đƣờng đi tìm đƣợc sau khi thực hiện Thuật toántìm kiếm tốt nhất đầu tiên là: (1), (2), (8), (10)

Một phần của tài liệu Thuật toán tìm đường đi ngắn nhất và xây dựng ứng dụng (Trang 35 - 38)