1. Trang chủ
  2. » Luận Văn - Báo Cáo

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

39 882 2
Tài liệu đã được kiểm tra trùng lặp

Đ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 39
Dung lượng 846,51 KB

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

Nội dung

Biểu diễn vấn đề trong không gian trạng thái Phát triển trạng thái và cây tìm kiếm Các chiến lược tìm kiếm Các chiến lược tìm kiếm mù Tìm kiếm theo bề rộng Tìm kiếm theo bề sâu Tìm kiếm sâu lặp Quy vấn đề về các vấn đề con. Tìm kiếm trên đồ thị vàhoặc Quy vấn đề về các vấn đề con Đồ thị vàhoặc Tìm kiếm trên đồ thị vàhoặc

Trang 1

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

Vương Trần Nguyên Khôi – 08110161

Trần Ngọc Long - 08110154

Trần Thanh Phong - 08110226

Trang 2

Nội dung

• Biểu diễn vấn đề trong không gian trạng thái

• Phát triển trạng thái và cây tìm kiếm

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

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

Trang 3

Biểu diễn vấn đề TRONG KHÔNG GIAN TRẠNG THÁI (KGTT)

Tìm kiếm mù

Trang 4

Định nghĩa biểu diễn vấn đề trong KGTT

Một không gian trạng thái (state space) được biểu diễn bằng một nhóm gồm bốn yếu tố [N, A, S, GD], trong đó:

N (node) là tập hợp các nút hay các trạng thái của đồ thị Tập này tương ứng với các trạng thái trong quá trình giải bài toán

A (arc) là tập các cung (hay các liên kết) giữa các nút Tập này tương ứng với các bước trong quá trình giải bài toán

S (Start) là một tập con không rỗng của N, chứa (các) trạng thái ban đầu của bài toán

GD (Goal Description) là một tập con không rỗng của N, chứa (các) trạng thái đích của bài toán Các trạng thái trong GD được mô tả theo một trong hai đặc tính:

o Đặc tính có thể đo lường được các trạng thái gặp trong quá trình tìm kiếm

o Đặc tính của đường đi được hình thành trong quá trình tìm kiếm Đường đi của lời giải (solution path) là đường đi qua đồ thị này từ một nút trong

S đến một nút trong GD

Trang 5

Bài toán đường đi của người đưa hàng

C

DC

EA

225 225

400 400

325 300

Trang 6

Phát triển trạng thái và cây tìm kiếm

Tìm kiếm mù

Trang 7

Phát triển không gian trạng thái

• Giả sử u là một trạng thái nào đó và R là một là một toán tử biến đổi u thành trạng thái v Ta sẽ gọi v là trạng kề của u, hoặc v được sinh ra từ trạng thái u bởi toán tử R Quá trình áp dụng các toán tử để sinh ra trạng thái kề u được gọi là phát triển trạng thái u.

Trang 9

Bài toán trò chơi n2 -1

15 - puzzles 8 - puzzles

Trang 10

Bài toán trò chơi n2 -1

Không gian trạng thái trong trò chơi n2 -1

Trang 11

Cây tìm kiếm

Cây tìm kiếm là cây mà các đỉnh được gắn nhã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 Nếu một đỉnh ứng với trạng thái u, thì các đỉnh con của nó ứng với các trạng thái v kề u Chúng ta có thể xem quá trình tìm kiếm như quá trình xây dựng cây tìm kiếm.

Trang 12

F

KD

Trang 13

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

Tìm kiếm mù

Trang 14

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

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

• Các chiến lược tìm kiếm mù (blind search) 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 tìm kiế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ác chiến lược tìm kiếm kinh nghiệm (tìm kiếm hueristic) Trong các chiến lược tìm kiếm này, chúng ta có thể dựa vào sự hiểu biết, dựa vào kinh nghiệm, dựa vào trực giác để đánh giá các trạng thái, sau

đó sử dụng sự đánh giá này để 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 một trong số các trạng thái chờ phát triển, trạng thái được đánh giá là tốt nhất để phát triển Do

đó tốc độ tìm kiếm nhanh hơn.

Trang 15

Các CHIẾN LƯỢC TÌM KiẾM MÙ

Tìm kiếm mù

Trang 16

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

Tư tưởng của chiến lược tìm kiếm theo chiều rộng là tại mỗi bước ta sẽ chọn trạng thái để phát triển là trạng thái được sinh ra trước các trạng thái chờ phát triển khác

Chúng ta sử dụng 1 danh sách để lưu cái trạng thái được sinh ra và chờ phát triển

Để lưu vết đường đi ta dùng thêm mảng phụ để truy vết sau khi hoàn tất

Trang 17

Thuật toán tìm kiếm theo chiều rộng

void Breadth_First_Search (){

<list> OPEN // Lưu trạng thái được sinh và chờ phát triển

<list> CLOSE // Lưu trạng thái đã phát triển

OPEN  u0 //uo là trạng thái bắt đầu

CLOSE = {ø}

while (OPEN != ø){

Xóa u ở đầu OPEN Thêm u vào CLOSE if(u là đích){

Thông báo tìm kiếm thành công;

exit;

} for mỗi trạng thái v kề u do

if(v không có trong OPEN và CLOSE)

Thêm v vào cuối OPEN

father(v)  u; // Cha của đỉnh v }

Thông báo tìm thất bại;

}

Trang 18

Thuật toán tìm kiếm theo chiều rộng

VD: Xét đồ thị không gian trạng thái ban đầu là A, trạng thái kết thúc là F

Trang 19

Thuật toán tìm kiếm theo chiều rộng

Nếu bài toán vô nghiệm không gian trạng thái hữu hạn, thuật toán sẽ dừng và cho kết quả vô nghiệm

Trang 20

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

Tư tưởng của chiến lược tìm kiếm theo chiều sâu là tại mỗi bước ta sẽ chọn trạng thái để phát triển là trạng thái được sinh ra sau cùng trong các trạng thái chờ phát triển khác

Chúng ta sử dụng 1 danh sách để lưu các trạng thái được sinh ra và chờ phát triển

Để lưu vết đường đi ta dùng thêm mảng phụ để truy vết sau khi hoàn tất

Trang 21

Thuật toán tìm kiếm theo chiều sâu

void Depth_First_Search (){

<list> OPEN // Lưu trạng thái được sinh và chờ phát triển

<list> CLOSE // Lưu trạng thái đã phát triển

OPEN  u0 //uo là trạng thái bắt đầu

CLOSE = {ø}

while (OPEN != ø){

Xóa u ở đầu OPEN Thêm u vào CLOSE if(u là đích){

Thông báo tìm kiếm thành công;

exit;

} for mỗi trạng thái v kề u do

if(v không có trong OPEN và CLOSE)

Thêm v vào đầu OPEN

father(v)  u; // Cha cua đỉnh v }

Thông báo tìm thất bại;

}

Trang 22

Thuật toán tìm kiếm theo chiều sâu

VD: Xét đồ thị không gian trạng thái ban đầu là A, trạng thái kết thúc là F

Trang 23

Thuật toán tìm kiếm theo chiều sâu

Nhận xét

Trạng thái nào được sinh ra sau sẽ được phát triển trước, do đó danh sách L

được xử lý như ngăn xếp

Nếu bài toán có nghiệm và không gian trạng thái hữu hạn, thì thuật toán tìm kiếm theo chiều sâu sẽ tìm ra nghiệm tuy nhiên đường đi tìm được không nhất thiết là ngắn nhất

Trong trường hợp không gian trạng thái vô hạn thì tìm kiếm theo chiều sâu có thể lặp đến vô hạn ngay cả khi bài toán có nghiệm

Độ phức tạp tính toán

Giả sử mỗi trạng thái khi được phát triển sẽ sinh ra b trạng thái kề Ta sẽ gọi b là nhân tố nhánh và giả sử nghiệm của bài toán có độ dài d Khi đó đồ phức tạp thời gian trong trường hợp xấu nhất là O(bd), độ phức tạp không gian là O(bd)

Trang 24

Thuật toán tìm kiếm sâu lặp

Tìm kiếm sâu lặp được đưa ra nhằm khắc phục tình trạng có thể không dừng của tìm kiếm sâu khi cây tìm kiếm chứa nhánh vô hạn Trong cách tìm kiếm này ta tìm kiếm theo độ sâu chỉ ở mức d nào đó,

nếu không tìm ra nghiệm, ta tăng độ sâu lên d+1

đến một độ xâu max nào đó.

Trang 25

Thuật toán tìm kiếm sâu lặp

void Depth_Limited_Search (int d){ // d là độ sâu tối đa

<list> OPEN // Lưu trạng thái được sinh và chờ phát triển

<list> CLOSE // Lưu trạng thái đã phát triển

OPEN u0 //uo là trạng thái bắt đầu

for (mỗi trạng thái v kề u)

if(v không có trong OPEN và CLOSE)

Thêm v vào đầu OPEN

father(v)  u; // Cha cua đỉnh v

Trang 26

Thuật toán tìm kiếm sâu lặp

VD: Xét đồ thị không gian trạng thái ban đầu là A, trạng thái kết thúc là F

5 C1 [E2, F2, D1] [A0, B1, I2, G2, C1]

6 E2 [K3, F2, D1] [A0, B1, I2, G2, C1, E2]

7 K3 [F2, D1] [A0, B1, I2, G2, C1, E2]

8 F2 [D1] [A0, B1, I2, G2, C1, E2, F2]

Hoạt động của thuật toán:

Trang 27

- Không gian bộ nhớ như tìm kiếm theo chiều sâu O(bd)

- Chi phí thời gian O(bd)

Trang 28

Quy vấn đề về các vấn đề con Tìm kiếm trên đồ thị và/hoặc

Tìm kiếm mù

Trang 29

Quy vấn đề về các vấn đề con

• Có thế biểu diễn việc quy một vấn đề về các vấn đề con bởi các trạng thái và các toán tử

• Bài toán cần giải là trạng thái ban đầu

• Các bài toán sơ cấp là các trạng thái kết thúc

• Mỗi cách quy bài toán về các bài toán con được biểu diễn bởi một toán tử (toán tử A B,C biểu diễn việc quy bài toán A về hai bài toán B và C)

• Chú ý: Trong không gian trạng thái biểu diễn việc quy vấn đề về các bài toán con, các toán tử có thể là đa trị, nó biến đổi một trạng thái thành nhiều trạng thái nhất.

Trang 30

Quy vấn đề về các vấn đề con

con như sau:

Lời giải vấn đề ban đầu nhận được bằng cách liên kết tất cả các lời giải của các vấn đề sơ cấp cấu thành, tức là:

Trang 31

Đồ thị VÀ/HOẶC

• Đồ thị VÀ/HOẶC được xây dựng như sau:

o Mỗi bài toán ứng với một đỉnh của đồ thị

o Đối với mỗi toán tử quy một bài toán về một bài toán khác, chẳng hạn R: ab, thì trong đồ thị sẽ có cung gán nhãn R đi từ đỉnh a đến đỉnh b

o Đối với mỗi toán tử quy một bài toán về một số bài toán con, chẳng hạn R: ab,c,d ta đưa vào một đỉnh mới a1, đỉnh này biểu diễn tập các bài toán con {b,c,d} và trong đồ thị sẽ có cung gán nhãn R đi từ đỉnh a đến đỉnh a1

a

b

Đồ thị biểu diễn toán tử R: ab

Đồ thị biểu diễn toán tử R: ab,c,d

a

a1

Trang 32

Cây nghiệm

• Cây nghiệm là một cây, trong đó:

o Gốc của cây ứng với các bài toán cần giải

o Tất cả các lá của cây là các đỉnh kết thúc (đỉnh ứng với bài toán sơ cấp)

o Nếu u là đỉnh trong cây, thì các đỉnh con của u là tất cả các đỉnh kề u theo một toán tử nào đó

• Ví dụ: Giả sử chúng ta có không gian trạng thái sau:

Trạng thái ban đầu (bài toán cần giải) là a

Trang 34

Các đỉnh không giải được được xác định đệ quy như sau:

o Các đỉnh không phải là đỉnh kết thúc và không có đỉnh kề, là các đỉnh

không giải được

o Nếu u không phải là đỉnh kết thúc và với mọi toán tử R áp dụng được tại u đều có một đỉnh v kề u theo R không giải được, thì u không giải được

Trang 35

Cây nghiệm

Nhận xét:

• Nếu bài toán a giải được thì sẽ có một cây nghiệm gốc a, và ngược lại nếu

có một cây nghiệm gốc a thì a giải được Hiển nhiên là, một bài toán giải

được có thể có nhiều cây nghiệm, mỗi cây nghiệm biểu diễn một cách giải bài toán đó

• Thứ tự giải các bài toán con trong một cây nghiệm như sau Bài toán ứng với đỉnh u chỉ được giải sau khi tất cả các bài toán ứng với các đỉnh con của u

đã được giải

Trang 36

Tìm kiếm trên đồ thị VÀ/HOẶC

• Vấn đề tìm kiếm trên đồ thị VÀ/HOẶC là để xác định được đỉnh ứng với bài toán ban đầu là giải được hay không giải được, và nếu nó giải được thì xây dựng một cây nghiệm cho nó Do đó, thay cho điều kiện kết thúc quá trình tìm kiếm trên đồ thị thông thường là đạt tới một đỉnh đích nào đó, ta sẽ sử dụng điều kiện kết thúc là đỉnh đầu giải được hay không giải được

• Thủ tục tìm kiếm theo độ sâu trên đồ thị VÀ/HOẶC để đánh dấu các đỉnh là giải được hoặc không giải được được biểu diễn bởi hàm đệ quy Solvable(u) Hàm

này nhận giá trị true nếu đỉnh u giải được và nhận giá trị false nếu đỉnh u

không giải được

Trang 37

Tìm kiếm trên đồ thị VÀ/HOẶC

for mỗi v kề u theo R do

if Solvable(v) = false then {

Trang 38

Tìm kiếm trên đồ thị VÀ/HOẶC

• Nếu bài toán ban đầu giải được, thì bằng cách sử dụng hàm Operator

ta sẽ xây dựng được cây nghiệm.

Trang 39

ThE END

Reference

Giáo trình Trí Tuệ Nhân Tạo - Dương Minh Trí

Trí Tuệ Nhân Tạo - Võ Huỳnh Trâm & Trần Nhân Bình.

Ngày đăng: 07/07/2014, 23:22

HÌNH ẢNH LIÊN QUAN

Đồ thị không gian - Các chiến lược tìm kiếm mù
th ị không gian (Trang 12)
Đồ thị biểu diễn toán tử R: ab - Các chiến lược tìm kiếm mù
th ị biểu diễn toán tử R: ab (Trang 31)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

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

TÀI LIỆU LIÊN QUAN

w