1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Bài giảng trí tuệ nhân tạo các chiến lược tìm kiếm

86 8 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 86
Dung lượng 0,98 MB

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

Nội dung

15 Tìm kiếm theo độ sâu • Phát triển nút sâu nhất chưa được phát triển • Thực hiện: Nút mới tiếp theo sẽ được đặt vào đầu danh sách chờ phát triển... 16 Tìm kiếm theo độ sâu • Phát t

Trang 1

1

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

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

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

- Tìm kiếm theo bề rộng, tìm kiếm theo độ sâu, tìm kiếm theo độ sâu hạn chế, tìm kiếm sâu lặp

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

- Hàm đánh giá, tìm kiếm tốt nhất đầu tiên, tìm kiếm leo đồi, tìm kiếm A*, tìm kiếm nhánh cận

IV Tìm kiếm có đối thủ

- Cây trò chơi, chiến lược tìm kiếm minimax, phương

pháp cắt tỉa alpha-beta

Trang 2

2

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

• Khi ta biểu diễn một vấn đề cần giải quyết thông qua

các trạng thái và các toán tử thì việc tìm lời giải của vấn

đề được quy về việc tìm đường đi từ trạng thái ban đầu tới một trạng thái kết thúc

• Có thể phân các chiến lược tìm kiếm thành hai loại:

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

– Các chiến lược tìm kiếm kinh nghiệm (tìm kiếm heuristic)

Trang 3

3

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

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

– Trong các chiến lược tìm kiếm này, không có một sự hướng dẫn nào cho việc tìm kiếm, mà ta chỉ phát triển các trạng thái ban

đầu cho tới khi gặp một trạng thái đích nào đó

– Có hai kỹ thuật tìm kiếm mù đó là tìm kiếm theo bề rộng và tìm kiếm theo độ sâu

– Khi sử dụng các chiến lược tìm kiếm mù thì số lượng các trạng thái được phát triển trước khi ta gặp trạng thái đích thường cực

kỳ lớn Do đó các thuật toán tìm kiếm mù kém hiệu quả, đòi hỏi rất nhiều không gian và thời gian

Trang 4

4

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

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

– Trong rất nhiều vấn đề chúng ta có thể dựa vào sự hiểu biết của chúng ta về vấn đề, dựa vào kinh nghiệm, trực giác, để đánh giá các trạng thái

– Sử dụng sự đánh giá các trạng thái để hướng dẫn sự tìm kiếm: trong quá trình phát triển các trạng thái, ta sẽ chọn trong số các trạng thái chờ phát triển, trạng thái được đánh giá tốt nhất để phát triển Do đó tốc độ tìm kiếm sẽ nhanh hơn

– Các phương pháp tìm kiếm dựa vào sự đánh giá các trạng thái

để hướng dẫn sự tìm kiếm gọi chung là các phương pháp tìm kiếm kinh nghiệm

Trang 5

5

Cây tìm kiếm

• Quá trình tìm kiếm là quá trình xây dựng cây tìm

kiếm Cây tìm kiếm là cây mà các đỉnh được gắn bởi các trạng thái của không gian trạng thái Gốc của cây tìm kiếm tương ứng với trạng thái ban đầu

• Có thể chuyển vấn đề tìm kiếm đồ thị thành vấn đề

tìm kiếm trên cây (hình dưới)

Trang 6

6

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

• Một chiến lược tìm kiếm được xác định bằng việc lựa chọn thứ tự phát triển các nút

• Các chiến lược tìm kiếm được đánh giá dựa trên các tiêu chí sau đây:

– tính hoàn thành : nó có luôn tìm ra nghiệm nếu thực sự có nghiệm?

– độ phức tạp thời gian : số lượng các nút được tạo ra

– độ phức tạp không gian : số lượng lớn nhất các nút trong bộ nhớ

– tính tối ưu : nó có luôn tìm thấy nghiệm có giá thấp nhất?

• Độ phức tạp thời gian và không gian được tính toán dựa trên

– b: nhân tố nhánh lớn nhất của cây tìm kiếm

– d: độ sâu của nghiệm có giá thấp nhất

– m: độ sâu lớn nhất của không gian trạng thái (có thể là ∞)

Trang 7

7

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

• Các chiến lược tìm kiếm mù: chỉ sử dụng thông tin được cung cấp trong định nghĩa vấn đề

• Tìm kiếm theo bề rộng (Breadth-first search)

• Tìm kiếm theo độ sâu (Depth-first search)

• Tìm kiếm độ sâu hạn chế (Depth-limited search)

• Tìm kiếm sâu lặp (Iterative deepening search

Trang 9

9

Tìm kiếm theo bề rộng

• Phát triển nút nông nhất chưa được phát triển

• Thực hiện: Nút mới tiếp theo sẽ được đặt vào cuối danh sách chờ phát triển

Trang 10

10

Tìm kiếm theo bề rộng

• Phát triển nút nông nhất chưa được phát triển

• Thực hiện: Nút mới tiếp theo sẽ được đặt vào cuối danh sách chờ phát triển

Trang 11

11

Tìm kiếm theo bề rộng

• Phát triển nút nông nhất chưa được phát triển

• Thực hiện: Nút mới tiếp theo sẽ được đặt vào cuối danh sách chờ phát triển

Trang 12

12

Tìm kiếm theo bề rộng

• Phát triển nút nông nhất chưa được phát triển

• Thực hiện: Nút mới tiếp theo sẽ được đặt vào cuối danh sách chờ phát triển

Trang 13

13

Tìm kiếm theo bề rộng

• Hoàn thành? Chắc chắn sẽ tìm ra nghiệm nếu bài toán

có nghiệm (nếu b là hữu hạn)

• Thời gian? 1+b+b2+b3+… +bd + b(bd-1) = O(bd+1)

• Không gian? O(bd+1) (luôn giữ tất cả các nút trong bộ

nhớ)

• Tối ưu? Thuật toán là tối ưu nếu giá = 1 ở mỗi bước

• Không gian là vấn đề quan trọng hơn thời gian

Trang 14

14

Tìm kiếm theo độ sâu

• Tư tưởng của tìm kiếm theo bề sâu là, tại mỗi bước trạng thái

được chọn để phát triển là trạng thái được sinh ra sau cùng

trong số các trạng thái chờ phát triển

• Thuật toán:

Trang 15

15

Tìm kiếm theo độ sâu

• Phát triển nút sâu nhất chưa được phát triển

• Thực hiện: Nút mới tiếp theo sẽ được đặt vào đầu

danh sách chờ phát triển

Trang 16

16

Tìm kiếm theo độ sâu

• Phát triển nút sâu nhất chưa được phát triển

• Thực hiện: Nút mới tiếp theo sẽ được đặt vào đầu

danh sách chờ phát triển

Trang 17

17

Tìm kiếm theo độ sâu

• Phát triển nút sâu nhất chưa được phát triển

• Thực hiện: Nút mới tiếp theo sẽ được đặt vào đầu

danh sách chờ phát triển

Trang 18

18

Tìm kiếm theo độ sâu

• Phát triển nút sâu nhất chưa được phát triển

• Thực hiện: Nút mới tiếp theo sẽ được đặt vào đầu

danh sách chờ phát triển

Trang 19

19

Tìm kiếm theo độ sâu

• Phát triển nút sâu nhất chưa được phát triển

• Thực hiện: Nút mới tiếp theo sẽ được đặt vào đầu

danh sách chờ phát triển

Trang 20

20

Tìm kiếm theo độ sâu

• Phát triển nút sâu nhất chưa được phát triển

• Thực hiện: Nút mới tiếp theo sẽ được đặt vào đầu

danh sách chờ phát triển

Trang 21

21

Tìm kiếm theo độ sâu

• Phát triển nút sâu nhất chưa được phát triển

• Thực hiện: Nút mới tiếp theo sẽ được đặt vào đầu

danh sách chờ phát triển

Trang 22

22

Tìm kiếm theo độ sâu

• Phát triển nút sâu nhất chưa được phát triển

• Thực hiện: Nút mới tiếp theo sẽ được đặt vào đầu

danh sách chờ phát triển

Trang 23

23

Tìm kiếm theo độ sâu

• Phát triển nút sâu nhất chưa được phát triển

• Thực hiện: Nút mới tiếp theo sẽ được đặt vào đầu

danh sách chờ phát triển

Trang 24

24

Tìm kiếm theo độ sâu

• Phát triển nút sâu nhất chưa được phát triển

• Thực hiện: Nút mới tiếp theo sẽ được đặt vào đầu

danh sách chờ phát triển

Trang 25

25

Tìm kiếm theo độ sâu

• Phát triển nút sâu nhất chưa được phát triển

• Thực hiện: Nút mới tiếp theo sẽ được đặt vào đầu

danh sách chờ phát triển

Trang 26

26

Tìm kiếm theo độ sâu

• Phát triển nút sâu nhất chưa được phát triển

• Thực hiện: Nút mới tiếp theo sẽ được đặt vào đầu

danh sách chờ phát triển

Trang 27

27

Tìm kiếm theo độ sâu

• Hoàn thành? Không tìm ra nghiệm trong không gian có

độ sâu vô hạn, không gian lặp

Sửa đổi thuật toán để tránh các đường đi đến các trạng thái gây ra việc lặp lại-> tìm ra nghiệm trong không gian hữu hạn

• Thời gian? O(bm) : rất lớn nếu m lớn hơn nhiều so với b nhưng nếu bài toán có nhiều nghiệm, có thể thực hiện nhanh hơn tìm kiếm theo bề rộng

• Không gian? O(bm) tức là không gian tuyến tính !

(chỉ cần lưu các nút chưa được phát triển là nút con của các nút trên đường đi từ gốc đến nút u)

• Tối ưu? Thuật toán không tối ưu

Trang 28

28

Các trạng thái lặp

• Cây tìm kiếm có thể chứa nhiều nút ứng với cùng một trạng

thái, các trạng thái này được gọi là các trạng thái lặp (xem hình)

• Việc không phát hiện ra các trạng thái lặp có thể biến một vấn

đề có độ phức tạp tuyến tính thành một vấn đề có độ phức tạp

hàm mũ!

Trang 29

đó nằm trên đường đi dẫn tới u

– Không sinh ra các nút mà nó đã được sinh ra, tức là chỉ sinh ra các nút mới

• Hai giải pháp đầu dễ cài đặt và không tốn nhiều không gian nhớ, tuy nhiên không tránh được hết các trạng thái lặp

Trang 30

30

Tìm kiếm độ sâu hạn chế

• Bằng tìm kiếm theo độ sâu với mức giới hạn về độ sâu là l, tức

là các nút ở độ sâu l không có nút kế tiếp

• Thuật toán:

Trang 31

31

Tìm kiếm sâu lặp

• Nếu cây tìm kiếm chứa nhánh vô hạn, khi sử dụng tìm kiếm

theo độ sâu, ta có thể bị mắc kẹt ở nhánh đó và không tìm ra

nghiệm

• Để khắc phục tình trạng đó, ta tìm kiếm theo độ sâu chỉ tới mức

l nào đó; nếu không tìm ra nghiệm, ta tăng độ sâu lên l +1 và lại tìm kiếm theo độ sâu tới mức l +1 Quá trình trên được lặp lại

với l lần lượt là 1, 2, …, đến một độ sâu max nào đó

• Thuật toán: Sử dụng thủ tục tìm kiếm độ sâu hạn chế

Trang 32

32

Tìm kiếm sâu lặp

Trang 33

33

Tìm kiếm sâu lặp

Trang 34

34

Tìm kiếm sâu lặp

Trang 35

Số lượng các nút được tạo ra trong tìm kiếm độ sâu hạn chế tới độ

sâu d với nhân tố nhánh b là:

N DLS = b 0 + b 1 + b 2 + … + b d-2 + b d-1 + b d

Nếu nghiệm ở độ sâu d, trong tìm kiếm sâu lặp ta phải gọi thủ tục tìm kiếm độ sâu hạn chế với độ sâu lần lượt là 0, 1, 2, …, d Do đó các nút ở mức 1 phải phát triển lặp lại d lần, các nút ở mức 2 lặp lại d-1 lần, …, các nút ở mức d lặp 1 lần Do vậy số lượng các nút

được tạo ra trong tìm kiếm sâu lặp là:

NIDS = (d+1)b 0 + d b 1 + (d-1)b 2 + … + b d = O(b d )

• Không gian? O(bd)

• Tối ưu? Thuật toán là tối ưu nếu giá = 1 ở mỗi bước

Trang 37

37

III Các chiến lược tìm kiếm kinh

nghiệm

• Hàm đánh giá

• Tìm kiếm tốt nhất đầu tiên (Best_first search)

• Tìm kiếm leo đồi (Hill_climbing search)

• Thuật toán A*

• Thuật toán tìm kiếm nhánh cận

(Branch_and_bound search)

Trang 38

• h(u) nhỏ nhất  u là trạng thái có nhiều hứa hẹn gần đích nhất

• Sử dụng hàm đánh giá để định hướng cho việc tìm kiếm Các chiến lược tìm kiếm dựa vào hàm đánh giá được gọi là tìm kiếm kinh

nghiệm

• Các bước tiến hành tìm kiếm

– Biểu diễn trạng thái và toán tử (Xây dựng KGTT)

– Xây dựng hàm đánh giá h(u)

– Xác định chiến lược chọn trạng thái để phát triển ở mỗi bước dựa vào hàm đánh giá

Trang 39

39

Hàm đánh giá

Ví dụ, với bài toán 8 số:

• h 1 (u) = số lượng các quân ở sai vị trí

• h 2 (u) = tổng khoảng cách Manhattan

(tức là tổng số các ô vuông từ vị trí hiện tại đến vị mong muốn của mỗi quân)

• h1(S) = ?

• h2(S) = ?

Trang 40

40

Hàm đánh giá

Ví dụ, với bài toán 8 số:

• h 1 (u) = số lượng các quân ở sai vị trí

• h 2 (u) = tổng khoảng cách Manhattan

(tức là tổng số các ô vuông từ vị trí hiện tại đến vị trí mong muốn

của mỗi quân)

• h1(S) = ? 8

• h2(S) = ? 3+1+2+2+2+3+3+2 = 18

Trang 41

41

Tìm kiếm tốt nhất đầu tiên

• Tìm kiếm tốt nhất đầu tiên = Tìm kiếm theo bề rộng + hàm đánh giá

• Phát triển trạng thái tốt nhất theo hàm đánh giá trong số các trạng thái đang chờ được phát triển

• Ví dụ:

Xét không gian trạng thái được biểu diễn bởi đồ thị trong hình (slide tiếp theo), trong đó trạng thái ban đầu là A, trạng thái kết thúc là B Giá trị của hàm đánh giá là các số ghi cạnh mỗi đỉnh

Trang 43

43

Tìm kiếm tốt nhất đầu tiên

• Quá trình tìm kiếm tốt nhất đầu tiên diễn ra như sau:

– Đầu tiên phát triển đỉnh A sinh ra các đỉnh kề là C, D và E

– Trong ba đỉnh này, đỉnh D có giá trị hàm đánh giá nhỏ nhất, nó được chọn để phát triển và sinh ra F, I

– Trong số các đỉnh chưa được phát triển C, E, F, I thì đỉnh E có giá trị hàm đánh giá nhỏ nhất, nó được chọn để phát triển và

sinh ra các đỉnh G, K

– Trong số các đỉnh chưa được phát triển thì G tốt nhất, phát triển

G sinh ra B, H Đến đây ta đã đạt tới trạng thái kết thúc

– Cây tìm kiếm tốt nhất đầu tiên được biểu diễn như trong hình (slide tiếp theo)

Trang 45

45

Tìm kiếm tốt nhất đầu tiên

• Thuật toán:

Trang 46

46

Tìm kiếm leo đồi

• Tìm kiếm leo đồi = Tìm kiếm theo độ sâu + hàm đánh giá

• Phát triển trạng thái tốt nhất theo hàm đánh giá trong số các trạng thái con đang chờ được phát triển

• Ví dụ: Xét đồ thị không gian trạng thái ở hình phía trước Quá trình tìm kiếm leo đồi được tiến hành như sau

– Đầu tiên phát triển đỉnh A sinh ra các đỉnh con C, D, E

– Trong các đỉnh này chọn D để phát triển, và nó sinh ra các đỉnh con F, I – Trong các đỉnh này chọn I để phát triển, và nó sinh ra các đỉnh con B,

G Quá trình tìm kiếm kết thúc

– Cây tìm kiếm leo đồi được biểu diễn như trong hình (slide tiếp theo)

Trang 48

48

Tìm kiếm leo đồi

• Thuật toán:

Trang 49

49

Tìm đường đi ngắn nhất

• Biết rằng:

– Độ dài cung (a,b), k(a,b)≥0 là chi phí để đưa trạng thái a tới

trạng thái b (VD: Độ dài đường đi giữa 2 thành phố a và b)

– Độ dài đường đi là tổng độ dài của các cung trên đường đi

• Vấn đề: Tìm đường đi ngắn nhất từ trạng thái ban đầu tới trạng thái đích

• Các thuật toán tìm đường đi ngắn nhất:

– Thuật toán A*

– Thuật toán tìm kiếm nhánh cận

Trang 50

50

Tìm đường đi ngắn nhất

• Hàm đánh giá của các thuật toán tìm đường đi ngắn

nhất

– Hàm đánh giá f(u) = g(u) + h(u)

– g(u) = chi phí thực sự để đi đến u

– h(u) = đánh giá chi phí từ u tới đích

– f(u) = đánh giá tổng chi phí của đường đi tới đích qua u

• Hàm h(u) được gọi là chấp nhận được (hoặc đánh giá thấp ) nếu với mọi nút u, h(u) ≤ h*(u), trong đó h*(u) là chi

phí thực sự để đạt tới trạng thái đích từ u

– Ví dụ: Trong bài toán tìm đường ngắn nhất trên bản đồ giao

thông, h(u) có thể được xác định là độ dài đường chim bay từ u tới đích

Trang 51

51

Thuật toán A*

• Là thuật toán sử dụng kỹ thuật tìm kiếm tốt nhất đầu tiên với hàm đánh giá f(u)

• Phát triển trạng thái tốt nhất theo hàm đánh giá f(u) trong

số các trạng thái đang chờ được phát triển

• Để thấy được thuật toán A* làm việc như thế nào, ta xét

đồ thị không gian trạng thái trong hình (slide tiếp theo) Trong đó, trạng thái ban đầu là trạng thái A, trạng thái

đích là trạng thái B, các số ghi cạnh các cung là độ dài đường đi, các số ghi cạnh các đỉnh là giá trị của hàm h

Trang 53

53

Thuật toán A*

• Đầu tiên phát triển đỉnh A sinh ra các đỉnh con C, D, E và F Tính giá trị của hàm f tại các đỉnh này ta có:

• Như vậy đỉnh tốt nhất là D (vì f(D) = 13 là nhỏ nhất) Phát triển D, ta

nhận được các đỉnh con H và E Ta đánh giá H và E (mới):

• Trong số các đỉnh chờ phát triển, thì đỉnh E với đánh giá f(E) = 19 là

đỉnh tốt nhất Phát triển đỉnh này, ta nhận được các đỉnh con của nó là

K và I

• Tiếp tục quá trình trên cho tới khi đỉnh được chọn để phát triển là đỉnh kết thúc B, độ dài đường đi ngắn nhất tới B là g(B) = 19

Trang 55

55

Thuật toán A*

• Thuật toán

Trang 56

56

Thuật toán A*

• Một số nhận xét về thuật toán A*:

– Người ta chứng minh được rằng, nếu hàm đánh giá h(u) là đánh giá thấp (trường hợp đặc biệt, h(u) = 0 với mọi trạng thái u) thì thuật toán A* là thuật toán tối ưu, tức là nghiệm mà nó tìm là

nghiệm tối ưu

– Ngoài ra, nếu độ dài của các cung không nhỏ hơn một số dương

 nào đó thì thuật toán A* là thuật toán hoàn thành tức là, nó

luôn dừng lại và tìm ra nghiệm

– Thuật toán A* đã được chứng tỏ là thuật toán hiệu quả nhất

trong số các thuật toán hoàn thành và tối ưu cho vấn đề tìm

kiếm đường đi ngắn nhất

Trang 57

57

Chứng minh tính tối ưu của A*

• Giả sử đích tối ưu cục bộ G2 nào đó đã được tạo ra và nằm ở

đường viền Giả sử n là một nút chưa được mở rộng ở đường viền sao cho n nằm trên đường đi ngắn nhất tới đích tối ưu G

Trang 58

58

Chứng minh tính tối ưu của A*

• Giả sử đích tối ưu cục bộ G2 nào đó đã được tạo ra và nằm ở

đường viền Giả sử n là một nút chưa được mở rộng ở đường viền sao cho n nằm trên đường đi ngắn nhất tới đích tối ưu G

Trang 59

59

Thuật toán tìm kiếm nhánh cận

• Là thuật toán sử dụng kỹ thuật tìm kiếm leo đồi với hàm đánh giá f(u)

• Phát triển trạng thái tốt nhất theo hàm đánh giá f(u) trong số các

trạng thái con đang chờ được phát triển

Trang 60

60

Thuật toán tìm kiếm nhánh cận

• Ví dụ: Chúng ta lại xét không gian trạng thái ở hình trước Phát triển đỉnh A, ta nhận được các đỉnh con C, D, E và F, f(C) = 24, f(D) = 13, f(E) = 21, f(F) = 27

• Trong số này D là tốt nhất, phát triển D, sinh ra các đỉnh con là H và

E, f(H) = 25, f(E) = 19

• Đi xuống phát triển E, sinh ra các đỉnh con là K và I, f(K) = 17, f(I) =

18

• Đi xuống phát triển K, sinh ra đỉnh B, f(B) = 21

• Đi xuống phát triển B, vì B là đỉnh đích, vậy ta tìm được đường đi tối

ưu tạm thời với độ dài là 21

Ngày đăng: 28/12/2021, 19:15

HÌNH ẢNH LIÊN QUAN

Đồ thị không gian trạng thái - Bài giảng trí tuệ nhân tạo các chiến lược tìm kiếm
th ị không gian trạng thái (Trang 42)
Đồ thị không gian trạng thái - Bài giảng trí tuệ nhân tạo các chiến lược tìm kiếm
th ị không gian trạng thái (Trang 52)
Đồ thị không gian trạng thái - Bài giảng trí tuệ nhân tạo các chiến lược tìm kiếm
th ị không gian trạng thái (Trang 59)

TỪ KHÓA LIÊN QUAN

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