1. Trang chủ
  2. » Giáo án - Bài giảng

Chương 3 không gian trạng thái và các phương pháp tìm kiếm mù

42 38 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 42
Dung lượng 2,59 MB

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

Nội dung

KHÔNG GIAN TRẠNG THÁI VÀ CÁC PHƯƠNG PHÁP TÌM KIẾM MÙ´ Giải quyết vấn đề bằng tìm kiếm ´ Tìm kiếm và AI ´ Các chiến lược tìm kiếm ´ Các chiến lược tìm kiếm mù o Tìm kiếm theo bề rộng o Tì

Trang 1

Chương 3 KHÔNG GIAN TRẠNG THÁI VÀ CÁC PHƯƠNG PHÁP TÌM KIẾM MÙ

´ Giải quyết vấn đề bằng tìm kiếm

´ Tìm kiếm và AI

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

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

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

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

o Tìm kiếm theo độ sâu dần

Nguyễn Đình Công, BM Khoa học máy tính

Trang 2

Giải quyết vấn đề bằng tìm kiếm

Các trò chơi đố

2

Trang 3

Giải quyết vấn đề bằng tìm kiếm

Bài toán ba thầy tu và ba con quỷ

´Mục tiêu: đưa tất cả người và quỷ sang bờ phải của con sông an toàn

´Điều kiện:

o Nếu số người ở mỗi bờ ít hơn số quỷ thì người sẽ bị quỷ ăn thịt

o Mỗi lượt thuyền chỉ chở được nhiều nhất 2 người và không được trống

3

Nguyễn Đình Công, BM Khoa học máy tính

Trang 4

Giải quyết vấn đề bằng tìm kiếm

Bài toán người giao hàng

´Tìm đường đi trong đồ thị gồm một

chuỗi các đỉnh T0,T1, T2, …,Tn sao cho

2

1

Trang 5

Giải quyết vấn đề bằng tìm kiếm

“Bài toán Konigsberg”

´ Nhà toán học người Áo Leonhard Euler đã phát minh ra lý thuyết đồ thị để giải quyết “bài toán các cây cầu của Konigsberg” Thành phố Konigsberg nằm trên cả hai bờ và hai hòn đảo của một con sông Người ta nối các đảo và hai bờ sông với nhau bằng bảy chiếc cầu.

5

Nguyễn Đình Công, BM Khoa học máy tính

Trang 6

Giải quyết vấn đề bằng tìm kiếm

“Bài toán Konigsberg”

Bài toán Konigsberg đặt câu hỏi là liệu có

thể đi khắp thành phố mà chỉ ngang qua

mỗi cây cầu một lần hay không? Mặc dù

những người dân ở đây không ai tìm được

lối đi nào như vậy, nhưng họ vẫn nghi ngờ

là có thể, đồng thời cũng không ai chứng

minh được là không có khả năng Nhờ phát

minh dạng lý thuyết đồ thị, Euler đã tạo ra

cách biểu diễn phương án lựa chọn cho bản

đồ thành phố

6

Đồ thị của hệ thống cầu Konigsberg

Trang 7

Giải quyết vấn đề bằng tìm kiếm

Biểu diễn đồ thị của bài toán

Nút: {A,B,C,D,E}

Cung: {(a,d), (a,b), (a,c), (b,c), (c,d), (c,e), (d,e) }

Nguyễn Đình Công, BM Khoa học máy tính

Trang 8

Giải quyết vấn đề bằng tìm kiếm

Biểu diễn đồ thị của bài toán

´Đặc tính đồ thị

oĐồ thị có hướng: là đồ thị với các cung có định hướng, nghĩa là cặp nút có quan hệ

thứ tự trước sau theo từng cung Cung (Ni,Nj) có hướng từ Ni đến Nj, Khi đó Ni là nút

cha và Nj là nút con.

oNút lá: là nút không có nút con.

oPath: là chuỗi có thứ tự các nút mà 2 nút kế tiếp nhau tồn tại một cung.

oĐồ thị có gốc: Trên đồ thị tồn tại nút X sao cho tất cả các path đều đi qua nút đó X

là gốc – Root

oVòng: là một path đi qua nút nhiều hơn một lần

oCây: là graph mà không có path vòng

oHai nút nối nhau: nếu có một path đi qua 2 nút đó

8

Trang 9

Giải quyết vấn đề bằng tìm kiếm

Không gian trạng thái

´Định nghĩa:Không gian trạng thái là một hệ thống gồm 4 thành phần

[N,A,S,G] Trong đó:

o N: là tập nút của Graph Mỗi nút là một trạng thái của quá trình giải quyết vấn đề

o A: Tập các cung nối giữa các nút N Mỗi cung là một bước trong giải quyết vấn đề Cung

có thể có hướng

o S: Tập các trạng thái bắt đầu S khác rỗng.

o G: Tập các trạng thái đích G khác rỗng.

´Solution path: Là một path đi từ một nút bắt đầu Si đến một nút kết thúc Gj

´Mục tiêu của các giải thuật tìm kiếm là tìm ra một solution path và/hay solution

path tốt nhất

9

Nguyễn Đình Công, BM Khoa học máy tính

Trang 10

Giải quyết vấn đề bằng tìm kiếm

´ Không gian trạn thái của trò chơi Caro: Có tất cả 9 x 8 x 7 x … hay 9! = 362880 trạng thái khác nhau có thể được tạo ra.

10

Trang 11

Giải quyết vấn đề bằng tìm kiếm

Trò chơi 8 số

´ Nguyên bản của trò chơi là trò đố 15: có 15 miếng bìa đánh số khác nhau được đặt vừa vào 16 ô vuông theo bảng Có một ô vuông

để trống nên các miếng bìa đó có thể di

chuyển để tạo ra các sắp xếp khác nhau

´ Mục tiêu là tìm ra một chuỗi bước di chuyển các miếng bìa vào ô trống để sắp xếp bảng thành một cấu hình đích nào đó Không gian trạng thái bài toán đủ lớn để xem xét (16! nếu các trạng thái đối xứng được xem xét riêng biệt)

11

Nguyễn Đình Công, BM Khoa học máy tính

Trang 12

Giải quyết vấn đề bằng tìm kiếm

Trò chơi 8 số

´ Trò đố 8 số là một phiên bản với kích thước 3 x 3 của trò đố

15 số, vì nó tạo ra không gian trạng thái nhỏ hơn so với trò

đố 15 số nên thường được dùng cho nhiều ví dụ

´ Có 4 cách di chuyển ô trống:

1 Di chuyển lên phía trên (Up)

2 Di chuyển về bên phải (Right)

3 Di chuyển xuống phía dưới (Down)

4 Di chuyển về bên trái (Left)

12

Trang 13

Giải quyết vấn đề bằng tìm kiếm

Trò chơi 8 số

13

Nguyễn Đình Công, BM Khoa học máy tính

Trang 14

Tìm kiếm và AI

´ Các phương pháp tìm kiếm có mặt mọi chỗ trong các hệ thống AI

Chúng thường là xương sống cho cả các mô đun lõi và các mô đun

ngoại vi

´ Một robot tự hành sử dụng tìm kiếm để quyết định thực hiện hành động nào và thi hành thao tác cảm biến nào, để nhanh chóng lường trước sự

va chạm, để lập kế hoạch đường đi,

´ Các công ty hậu cần sử dụng tìm kiếm để định vị các tài nguyên, lập kế hoạch lộ trình, sắp lịch cho nhân viên…

´ Các tác nhân hoặc các thành phần trong trò chơi sử dụng tìm kiếm để điều hướng, lựa chọn nước đi, lường trước các hành động của tác nhân khác và quyết định các hành động của bản thân nó

14

Trang 15

Tìm kiếm và AI

´ Tìm kiếm đóng vai trò chính trong nhiều ứng dụng, ví dụ:

o Tìm đường (bản đồ trực tuyến, internet, hàng không)

o Bài trí VLSI (Very-large-scale integration – Tích hợp ở quy mô lớn)

o Điều hướng robot

o Thiết kế dược phẩm, thiết kế protein

o Các trò chơi video

´ Các vấn đề khó khăn trong tìm kiếm với các bài toán AI

o Đặc tả vấn đề phức tạp

o Không gian tìm kiếm lớn

o Đặc tính đối trượng tìm kiếm thay đổi

Trang 16

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

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

o 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,…

´ Các chiến lược tìm kiếm có sử dụng thông tin (kinh nghiệm)

o 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,…

´ Các chiến lược tìm kiếm có đối thủ

o Cây trò chơi, chiến lược tìm kiếm minimax, phương pháp cắt tỉa alpha-beta,…

16

Trang 17

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

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

o Trong các chiến lược tìm kiếm mù 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 đó

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

o 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.

17

Nguyễn Đình Công, BM Khoa học máy tính

Trang 18

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

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

o 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

o 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

o 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

18

Trang 19

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

´ Cây tìm kiếm

o 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

o 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)

19

Nguyễn Đình Công, BM Khoa học máy tính

Trang 20

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:

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

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

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

o 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

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

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

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

20

Trang 21

Tìm kiếm trong không gian trạng thái (State Space)

và tìm kiếm trong cơ sở dữ liệu (Database)

State Space

´ Không gian tìm kiếm thường là

một graph

´ Mục tiêu tìm kiếm là một path

´ Phải lưu trữ toàn bộ không gian

trong quá trình tìm kiếm

´ Không gian tìm kiếm biến động

liên tục trong quá trình tìm kiếm

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

Nguyễn Đình Công, BM Khoa học máy tính

Trang 22

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

Chiến lược điều khiển trong không gian trạng thái

´Data-Driven-Search: Quá trình search sẽ đi từ trạng thái hiện thời áp dụng các luật

để đi đến trạng thái kế tiếp và cứ thế cho đến khi đạt được một goal.

´Goal-Driven-Search: Quá trình search sẽ đi từ trạng thái hiện tại (goal tạm thời) tìm

xem luật nào có thể sinh ra trạng thái này Các điều kiện để áp dụng được các luật đó trở thành subgoal Quá trình lặp lại cho đến khi lui về đến các sự kiện ban đầu.

´ Quyết định chọn lựa chiến lược tùy thuộc vào:

o Độ phức tạp của các luật

o Độ phân chia của không gian trạng thái

o Sự hiện hữu của dữ liệu

• Goal đã có hay chưa, nhiều hay ít

• Goal được đặc tả như thế nào: state cụ thể hay mô tả mang tính đặc tính

22

Trang 23

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

Chiến lược điều khiển trong không gian trạng thái – Ví dụ

´Ba và Nam là bà con Ba hơn Nam 250 tuổi Tìm mối quan hệ giữa Ba và Nam

´Trong bài toán này:

o Không gian trạng thái là cây phả hệ

o Mục tiêu tìm kiếm là path nối Ba với Nam

´Giả sử mỗi thế hệ cách nhau 25 năm, như vậy Ba cách nam 10 thế hệ

´Data-Driven-Search: Tìm từ Ba đến Nam

Nếu trung bình mỗi thế hệ có X con thì số trạng thái cần xét là X10

´Goal-Driven search: Tìm từ Nam đến Ba

Mỗi người chỉ có 1 cha và 1 mẹ Số trạng thai cần xét là 210

=> Như vậy Goal-Driven sẽ tốt hơn Data driven nếu số con > 2

23

Nguyễn Đình Công, BM Khoa học máy tính

Trang 24

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

Tìm kiếm trên đồ thị - graph search

´Giải thuật graph search phải có khả năng tìm kiếm ra tất cả các path có

thể có để tìm được nghiệm: PATH từ trạng thái khởi đầu đến goal.

´Graph search thực hiện bằng cách “lần” theo các nhánh của graph Từ một trạng thái, sinh ra các trạng thái con, chọn một trạng thái con, xem

đó là trạng thái xét kế tiếp Lặp lại cho đến khi tìm thấy một trạng thái đích

´“Lần” theo các trạng thái à Đi vào ngõ cụt?

´Khi gặp nhánh không đi tiếp được, giải thuật phải có khả năng quay lui lại trạng thái trước đó để đi sang nhánh khác Do đó giải thuật còn có tên

là giải thuật quay lui - BACKTRACK search.

24

Trang 25

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

Tìm kiếm trên đồ thị - graph search

´Ví dụ:

25

Nguyễn Đình Công, BM Khoa học máy tính

Trang 26

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

´ 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)

26

Trang 28

Breadth-first search

´ Thuật giải:

o Bước 1: Tập Open chứa đỉnh gốc s chờ được xét.

o Bước 2: Kiểm tra tập Open có rỗng không.

Nếu tập Open không rỗng, lấy một đỉnh ra khỏi tập Open làm đỉnh đang xét p Nếu

p là đỉnh g cần tìm, kết thúc tìm kiếm.

Nếu tập Open rỗng, tiến đến bước 4.

o Bước 3: Đưa đỉnh p vào tập Close, sau đó xác định các đỉnh kề với đỉnh p vừa xét Nếu các đỉnh v kề với p không thuộc tập Close, đưa chúng vào cuối tập Open Quay lại bước 2.

o Bước 4: Kết luận không tìm ra đỉnh đích cần tìm

Open hoạt động theo quy tắc FIFO

28

Trang 30

Breadth-first search

o Sử dụng kỹ thuật vét cạn vì vậy sẽ tìm được lời giải nếu bài toán có lời giải

o Đường đi tìm được đi qua ít đỉnh nhất

o Tìm kiếm một cách máy móc, khi không có thông tin hỗ trợ cho quá trình tìm kiếm, không nhận ra ngay lời giải

o Không phù hợp với không gian bài toán có kích thước lớn:

• Cần nhiều bộ nhớ theo số nút cần lưu trữ

• Cần nhiều công sức xử lý các nút, nhất là khi các nhánh cây dài, số nút nhiều

• Dễ thực hiện các thao tác không thích hợp, thừa, đưa đến việc tăng đáng kể số nút phải xử lý

o Không hiệu qủa nếu lời giải ở sâu

30

Trang 31

Breadth-first search

´ 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ớ)

Trong đó:

b: số nhánh tối đa của 1 trạng thái d: độ sâu

´ 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

31

Nguyễn Đình Công, BM Khoa học máy tính

Trang 32

Depth-first search

´ Tư tưởng của tìm kiếm theo độ sâu là các nút “con cháu” của nút hiện thời được xem xét trước các nút “anh em”.

´ Thuật giải:

o Bước 1: Tập Open chứa đỉnh gốc s chờ được xét.

o Bước 2: Kiểm tra tập Open có rỗng không.

Nếu tập Open không rỗng, lấy một đỉnh ra khỏi tập Open làm đỉnh đang xét p Nếu p là đỉnh g cần tìm, kết thúc tìm kiếm.

Nếu tập Open rỗng, tiến đến bước 4.

o Bước 3: Đưa đỉnh p vào tập Close, sau đó xác định các đỉnh kề với đỉnh p vừa xét Nếu các đỉnh v kề với p không thuộc tập Close, đưa chúng vào đầu tập Open Quay

lại bước 2.

o Bước 4: Kết luận không tìm ra đỉnh đích cần tìm.

´ Open hoạt động theo quy tắc LIFO

32

Trang 33

[A]

[B C D ] [E F C D]

Trang 34

Depth-first search

´ Ưu điểm

o Bảo đảm tìm ra lời giải nếu bài toán có lời giải

o Tiết kiệm thời gian nếu lời giải ở rất sâu

´ Nhược điểm

o Tìm kiếm một cách máy móc, khi không có thông tin hỗ trợ cho quá trình tìm kiếm, không nhận ra ngay lời giải Nếu chọn nút ban đầu không thích hợp có thể không dẫn đến đích của bài toán

o Sử dụng kỹ thuật vét cạn nên không phù hợp với không gian bài toán lớn

34

Trang 35

´ Thời gian? O(bd): 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(bd) 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

35

Nguyễn Đình Công, BM Khoa học máy tính

Trang 36

Breath First vs Depth First

´ BFS: open được tổ chức dạng FIFO (Queue)

´ DFS: open được tổ chức dạng LIFO (Stack)

o DFS: có thể bị lặp vô tận Tại sao?

´ Bùng nổ tổ hợp là khó khăn lớn nhất cho các giải thuật này

36

Trang 37

Depth limited search

´ DFS có khả năng lặp vô tận do các trạng thái con sinh ra liên tục Độ sâu tăng vô tận

´ Khắc phục 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

´ Chiến lược giới hạn:

o Cố định một độ sâu MAX, như các danh thủ chơi cờ tính trước được số nước nhất định

o Theo cấu hình tài nguyên của máy tính

o Meta knowledge trong việc định giới hạn độ sâu

´ Giới hạn độ sâu => co hẹp không gian trạng thái => có thể mất nghiệm

37

Nguyễn Đình Công, BM Khoa học máy tính

Trang 38

Depth limited search

´ Thuật giải:

o Bước 1: Tập Open chứa đỉnh gốc s chờ được xét.

o Bước 2: Kiểm tra tập Open có rỗng không.

Nếu tập Open không rỗng, lấy một đỉnh ra khỏi tập Open làm đỉnh đang xét p Nếu p

là đỉnh g cần tìm, kết thúc tìm kiếm.

Nếu tập Open rỗng, tiến đến bước 4.

o Bước 3: Nếu L(p)£ L, đưa đỉnh p vào tập Close, sau đó xác định các đỉnh kề

với đỉnh p vừa xét Nếu các đỉnh u kề với p không thuộc tập Close, đưa chúng vào đầu tập Open, đặt L(u)=L(p)+1 Quay lại bước 2.

o Bước 4: Kết luận không tìm ra đỉnh đích cần tìm

Open hoạt động theo quy tắc LIFO

38

Trang 39

Iterative Deepening search

´ 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,…, MAXnào đó sẽ dừng

39

Nguyễn Đình Công, BM Khoa học máy tính

Ngày đăng: 12/01/2022, 22:21

HÌNH ẢNH LIÊN QUAN

Đồ thị của hệ thống cầu Konigsberg - Chương 3  không gian trạng thái và các phương pháp tìm kiếm mù
th ị của hệ thống cầu Konigsberg (Trang 6)

TỪ KHÓA LIÊN QUAN

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

w