1. Trang chủ
  2. » Tất cả

Các thuật toán tìm kiếm nâng cao NHẬP môn TRÍ TUỆ NHÂN tạo

32 2 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 32
Dung lượng 2,87 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

BÁO CÁO BÀI TẬP LỚN MÔN HỌC NHẬP MÔN TRÍ TUỆ NHÂN TẠO Tên đề tài Các thuật toán tìm kiếm nâng cao Học viên thực hiện Trần Huy Hoàng Lê Văn Linh Thạch Xuân Bách Trần Văn Trung Nội dung thực hiện A Lý.

Trang 1

Tên đề tài: Các thuật toán tìm kiếm nâng cao

Học viên thực hiện: Trần Huy Hoàng

Lê Văn Linh

Thạch Xuân Bách Trần Văn Trung

Trang 2

Nội dung thực hiện:

A- Lý thuyết

I Các chiến lược tìm kiếm mù

1. Tìm kiếm theo chiều rộng

2. Tìm kiếm theo chiều sâu

3. Tìm kiếm với độ sâu hạn chế

II Các chiến lược tìm kiếm kinh nghiệm

1. Tìm kiếm leo đồi (hill climbing search)

2. Tìm kiếm ưu tiên tốt nhất – Best First Search (Best-FS)

3. Tìm kiếm Beam (Beam Search)

III Các chiến lược tìm kiếm tối ưu

Trang 3

A- Lý thuyết

I. Các chiến lược tìm kiếm mù

 Trạng thái được chọn để phát triển chỉ đơn thuần dựa theo cấu trúc của KGTT mà không có thông tin hướng dẫn nào khác

 Nói chung tìm kiếm mù sẽ không hiệu quả

 Đây là cơ sở để chúng ta cải tiến và thu được những chiến lược hiệu quả hơn

1 Tìm kiếm theo chiều rộng (BFS)

 Ý tưởng:

 Trạng thái được ưu tiên phát triển là trạng thái được sinh ra trước

 Phát triển ra 2 bên của node

Trang 4

loại tt 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 kết quả, thoátelse begin

Đưa u vào closedPhát sinh các con v của uLoại các con đã có trong open+closedĐưa các con còn lại vào bên phải open (1)end

endThông báo thất bại

End

 Nhận xét:

 Trong thuật toán tìm kiếm theo chiều rộng, trạng thái nào được sinh ra trước sẽ được phát triển trước, do

đó danh sách L được sử dụng là hàng đợi

 Nếu bài toán có nghiệm (tồn tại đường đi từ trạng thái đầu tới trạng thái kết thúc), thì thuật toán sẽ tìm được nghiệm

 Đánh giá:

Giả sử mỗi trạng thái trung bình sinh ra b trạng thái con (kề), b - gọi là nhân tố nhánh.

Thời gian: 1+b+b 2 +b 3 +… +b d + b(b d -1) = O(bd+1)

Không gian: O(b d+1 ) (lưu mọi node của cây).

 Không gian lưu trữ rất tốn kém

Trang 5

2 Tìm kiếm theo chiều sâu (DFS)

 Ý tưởng:

 Mở rộng nút có độ sâu hơn trước các nút khác đang chờ xử lý

 Khi nào không mở rộng được nữa thì mới quay lại nút ở độ sâu thấp hơn

Trang 6

loại tt u ngoài cùng bên trái của open

if (u là một đích) then thông báo kết quả, thoát else begin

Đưa u vào closed Phát sinh các con v của u Loại các con đã có trong open+closed

Đưa các con còn lại vào bên trái open (1)

end end

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

End

 Nhận xét:

 Thuật toán tìm kiếm theo chiều rộng luôn tìm ra nghiệm nếu bài toán có nghiệm

 Tuy nhiên, không phải với bất kỳ bài toán có nghiệm nào thuật toán tìm kiếm theo chiều sâu cũng tìm ra nghiệm (với bài toán có nghiệm và không gian tìm kiếm hữu hạn mới tìm được nghiệm)

 Tại sao? Trong trường hợp không gian trạng thái là vô hạn, thì có thể nó không tìm ra nghiệm vì ta luôn đi sâu xuống, nếu ta đi theo nhánh vô hạn mà nghiệm không nằm trên nhánh đó thì thuật toán sẽ không dừng

Trang 7

3 Tìm kiếm với độ sâu hạn chế

 Ý tưởng:

 Mở rộng nút có độ sâu hơn trước các nút khác đang chờ xử lý

 Khi nào không mở rộng được nữa thì mới quay lại nút ở độ sâu thấp hơn

 Không tiếp tục mở rộng khi đến 1 độ sâu d cố định nào đó

 Đầu vào:

 Các node và các cạnh của đồ thị, độ sâu ban đầu

Dùng danh sách open chứa các trạng thái sinh ra đang chờ phát triển

 Đầu ra:

Danh sách closed chứa các trạng thái đã được khảo sát

 Ví dụ:

Tìm kiếm sâu dần l =1

Trang 8

Tìm kiếm sâu dần l =2

Trang 9

Tìm kiếm sâu dần l =3

Trang 11

II.1.Khái quát chung

 Các chiến lược tìm kiếm mù kém hiệu quả và không thể áp dụng được trong nhiều trường hợp

 Sử dụng thông tin của trạng thái kết hợp với nhận xét dựa theo kinh nghiệm để cải tiến là quan điểm chung của các chiến lược tìm kiếm kinh nghiệm.

Trong các thuật toán tìm kiếm theo kinh nghiệm ta đưa ra hàm đánh giá:

Hàm đánh giá là một hàm ước lượng khả năng về đích của mỗi trạng thái

Chỉ là ước lượng vì nói chung chúng ta không thể tính toán chính xác khả năng này, nếu tính được nghĩa là đã tìm được lời giải!

Tuy nhiên, nhờ kinh nghiệm trong nhiều bài toán cụ thể, có thể ước lượng được g.trị này

Chẳng hạn ta xét hàm đánh giá trong vi dụ này: Nếu đếm các số sai vị trí của một trạng thái so với trạng thái đích thì B là 3 và C là 1 Như vậy, số này càng nhỏ thì trạng thái đó càng có khả năng về đích Có thể dùng số này làm giá trị cho hàm đánh giá.

Dễ thấy, nếu u là trạng thái đích thì h(u)=0 Mỗi u ta có

một giá trị ước lượng là h(u) h(B)=3; h(C)=1

Trang 12

II.2.1 Tìm kiếm leo đồi – Hill Climbing Search

 Ý tưởng:

Chọn một trạng thái tốt hơn trạng thái đang khảo sát để phát triển Nếu không có thuật tóan phải dừng Nếu chỉ chọn một trạng thái tốt hơn: leo đồi đơn giản, trạng thái tốt nhất: leo đồi dốc đứng

Sử dụng hàm h để biết trạng thái nào tốt hơn

Khác với tìm kiếm sâu, leo đồi không lưu tất cả các con mà chỉ lưu đúng một t.thái được chọn nếu có

loại tt 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 kết quả, thoát else begin

Đưa u vào closed Phát sinh các con v của u Loại các con đã có trong open+closed

Chọn con tốt nhất và hơn u đưa vào bên trái open

end end

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

End

Trang 13

0 15

Đồ thị không gian trạng thái

E

A 20

D 6

7

I 8

5

C 15

Cây tìm kiếm leo đồi

F 10

G B

0 10

Trang 14

 Hiệu quả khi có một hàm đánh giá tốt Bế tắc nếu

◦ Gặp điểm cực đại địa phương

◦ Khu vực bình nguyên

 Giải pháp xáo trộn ngẫu nhiên.

 Không có giải pháp tổng quát.

II.2.2 Tìm kiếm ưu tiên tốt nhất – Best First Search (Best-FS)

Best-FS kết hợp tìm kiếm sâu và rộng.

Best-FS “cẩn thận” hơn ghi nhớ lại các một số trạng thái không tốt hơn trước đó để còn có thể quay lại.

Trang 15

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átelse begin

Đưa u vào closedPhát sinh các con v của uLoại các con v đã có mặt trong open + closed Đưa các con còn lại vào open

Sắp xếp open sao cho phần tử tốt nhất nằm bên tráiend

endThông báo thất bại

end

Trang 16

Đầu vào: Trạng thái đầu là A, trạng thái

kết thúc là B.

Thực hiện:

 A được xét → C, D, E.

 Chọn D, vì h(D) = 6 (min), sinh ra F,I.

 Trong số các đỉnh chưa xét C,E,F,I;

Trang 17

 Nhận xét, đánh giá:

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.

II.2.3 Tìm kiếm Beam (beam search)

 Ý tưởng: tìm kiếm beam (beam search) giống tìm kiếm theo chiều rộng Tuy nhiên, trong tìm

kiếm Beam ở mỗi mức chỉ hạn chế phát triển k đỉnh tốt nhất (các đỉnh này được xác định bởi

Trang 18

1 Giải thuật A*

 A* là giải thuật tổng quát hơn BestFS, nó tìm kiếm trên KGTT là đồ thị

 Vì là đồ thị nên phát sinh nhiều vấn đề khi tìm đường đi tối ưu

 Để ý rằng nghiệm là đường đi nên ta phải lưu lại vết của đường đi này

 Trong các giải thuật trước, để tập trung cho tư tưởng chính của các giải thuật đó chúng ta bỏ qua chi tiết này, nhưng trong giải thuật này chi tiết này được đề cập vì nó liên quan đến nghiệm một cách trực tiếp

 Mỗi trạng thái u tùy ý sẽ gồm bốn yếu tố (g(u), h(u), f(u), cha(u)) Trong đó:

 G(u), h(u), f(u) đã biết

 Cha(u) là nút cha của nút u

Trang 19

19

Trang 20

Bước Open closed

Trang 21

 Ở bước 2, mọi việc xảy ra bình thường

 Ở bước 3, tìm được đường đi đến C qua B ngắn hơn nên các giá trị của C trong open phải được sửa đổi

 Ở bước 4, mặc dù B đã nằm trong closed, tức đã xét xong nhưng đường đi mới qua D đến B ngắn hơn nên B phải được lấy khỏi closed chuyển qua open chờ xét lại với giá trị mới

 Ở bước 5, lại xảy ra việc chỉnh sửa các giá trị của C như ở bước 3.

 Giải thuật dừng ở bước 6 và đường đi thu được độ dài 5 như sau A-D-B-C-G

 Chú ý

 Trạng thái đã lưu trong open vẫn có thể thay đổi giá trị.

 Thậm chí lưu trong closed cũng phải bị xóa đi và chuyển qua open với các giá trị mới

Trang 22

loại u ngoài cùng bên trái của open

Đưa u vào closed;

if (u là một đích) then thông báo thắng lợi, thoát else

begin

Sinh các con v của u;

For v thuộc con(u) do begin

Trang 23

Đưa v vào open;

Loại v’ khỏi closed;

Trang 24

 Kết quả.

 Một hàm đánh giá h(u) được gọi là chấp nhận được hay là hàm đánh giá thấp nếu như h(u)<=h*(u) với moi u, ở đây h*(u) là đường đi ngắn nhất từ u đến đích.

 Nếu hàm đánh giá h(u) là chấp nhận được thì thuật toán A* là tối ưu.

 A* là thuật tóan hiệu quả nhất trong các thuật toán đầy đủ và tối ưu

Trang 31

Cut tỉa gốc a nếu eval(u)>eval(v).

Ngày đăng: 13/11/2022, 22:10

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w