, trong trường hợp ngược lạ
Các phương pháp giải quyết vấn đề cơ bảnCác phương pháp giải quyết vấn đề cơ bản
2.2.3. Phương pháp tìm kiếm tốt nhất đầu tiên (BFS)
2.2 Tìm kiếm lời giải trong không gian trạng thái
a.Ý tưởng
Tìm lời giải có dùng tri thức về bài toán để hướng dẫn.
Tại mỗi nút được xem xét, sẽ quyết định việc tìm kiếm tiếp tục theo nhánh nào.
Sử dụng hàm đánh giá. gọi là trọng số của nút.
2.2 Tìm kiếm lời giải trong không gian trạng thái
b.Giải thuật
void BeFS; {Best First Search} { Push(MO,n0); while MO <> null { i = Pop(MO); if i ∈ Goals exit; for j ∈ T(i) do Push(MO,j);
Sort(MO); //theo thứ tự của hàm đánh giá }
cout(‘Khong co loi giai’);
2.2 Tìm kiếm lời giải trong không gian trạng thái
c.Hàm đánh giá
Với mỗi trạng thái u, xác định một giá trị h(u), Hàm h(u) được gọi là hàm đánh giá.
Tìm kiếm kinh nghiệm là phương pháp tìm kiếm có sử dụng hàm đánh giá.
Trong quá trình tìm kiếm, tại mỗi bước chọn trạng thái kế tiếp là trạng thái có nhiều khả năng dẫn tới đích nhất.
2.2 Tìm kiếm lời giải trong không gian trạng thái
Tìm kiếm trong KGTT có sử dụng hàm đánh
giá 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.2 Tìm kiếm lời giải trong không gian trạng thái
d.Ưu và nhược điểm của phương pháp tìm kiếm tốt nhất đầu tiên
(1)Ưu điểm
Tổ hợp các ưu điểm của tìm kiếm rộng và tìm kiếm sâu.
Ưu điểm chủ yếu là dùng tri thức để dẫn dắt việc tìm kiếm. Tri thức này giúp ta bắt đầu từ đâu là tốt nhất và cách tốt nhất để tiến hành tìm lời giải.
Tuân theo cách suy lý của một chuyên gia.
2.2 Tìm kiếm lời giải trong không gian trạng thái
(2)Nhược điểm
Quá trình tìm kiếm có thể đi xa khỏi lời giải.
2.2 Tìm kiếm lời giải trong không gian trạng thái
e.Các ví dụ
Ví dụ1: Bài toán tìm kiếm đường đi trên bản đồ giao thông, ta có thể lấy độ dài của đường chim bay từ một thành phố đang xét tới một thành phố đích làm giá trị của hàm đánh giá của thành phố đang xét.
Ví dụ2: Bài toán 8 số. Có thể đưa ra hai cách đánh giá
3 2 8
6 4
7 1 5
2.2.3. Phương pháp tìm kiếm tốt nhất đầu tiên (BFS)
1 2 3
8 4
7 6 5
2.2 Tìm kiếm lời giải trong không gian trạng thái
Hàm h1: Với mỗi trạng thái u thì h1(u) là số quân không nằm đúng vị trí của nó trong trạng thái đích.
ví dụ: h1(u) = 4
Hàm h2: Gọi h2(u) là tổng khoảng cách vị trí của các quân ở trạng thái u và vị trí của nó trong trạng thái đích.
khoảng cách được hiểu là số lần dịch chuyển ít nhất theo hàng hoặc cột để đưa một quân ở vị trí hiện tại tới trạng thái đích.
ví dụ: h2(u) = 2+3+1+3 = 9 (vì quân 3 cần ít nhất 2 dịch chuyển, quân 8 cần ít nhất 3 dịch chuyển, quân 6 cần ít nhất 1 dịch chuyển và quân 1 cần ít nhất 3 dịch chuyển)
2.2.12.2.2 2.2.2 2.2.3 2.2.4
Phương pháp tìm kiếm theo chiều rộng Phương pháp tìm kiếm theo chiều sâu
Phương pháp tìm kiếm tốt nhất đầu tiên (BFS)
Phương pháp tìm kiếm leo đồi (HCS)
2.2 Tìm kiếm lời giải trong không gian trạng thái
a.Ý tưởng
Tìm kiếm leo đồi là tìm kiếm theo độ sâu được hướng dẫn bởi hàm đánh giá.
Song khác với tìm kiếm theo độ sâu, khi phát
triển một đỉnh u thì bước tiếp theo ta chọn trong số các đỉnh con của u, đỉnh có hứa hẹn nhiều
nhất để phát triển, đỉnh này được xác định bởi hàm đánh giá.