Tải bản đầy đủ (.pdf) (33 trang)

Bài giảng Các hệ thống thông minh nhân tạo và ứng dụng - Chương 4: Bài toán tìm kiếm 2

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.5 MB, 33 trang )

CÁC HỆ THỐNG THÔNG MINH NHÂN TẠO & ỨNG DỤNG

Bài tốn tìm kiếm II
THS. BÙI THỊ DANH

BM.KHMT, KHOA CNTT, ĐH.KHTN TP.HCM


Nội dung
Heuristic
Tìm kiếm tham lam
Thuật giải A*
Sự nới lỏng

2


Heuristic
Các thuật tốn tìm kiếm mù duyệt trạng thái theo mọi hướng, khơng sử dụng thơng tin của
trạng thái đích.

Ước lượng chi phí
đến trạng thái đích.
Liệu có tìm đường
nhanh hơn?!?

3


Heuristic
Heuristic là một hàm ước lượng mức độ gần của một trạng thái so với trạng thái đích


◦ Kí hiệu là h(s), với s là trạng thái.

Heuristic được thiết kế cho từng bài tốn tìm kiếm cụ thể

Một số hàm heuristic phổ biến:
◦ Khoảng cách Euclidean, Mahattan.
◦…

4


Ví dụ - Tìm đường đi cho Pacman
Hàm h(s) là hàm Euclidean

5


Ví dụ - Tìm đường đi trên bản đồ
Hàm h(s) là khoảng cách đường chim bay

6


Ví dụ - N-Puzzle
Hàm h(s): số ơ khác biệt giữa 2 puzzle…

7


Nội dung

Heuristic
Tìm kiếm tham lam
Thuật giải A*
Sự nới lỏng

8


Tìm kiếm tham lam (greedy search)
Chiến lược duyệt: mở rộng trạng thái được ước lượng là gần trạng thái đích nhất
◦ Hàm heuristic tương ứng h(s) có giá trị nhỏ nhất

Sử dụng hàng đợi ưu tiên để triển khai, với độ ưu tiên là h(s)

Tùy chọn: đánh dấu các trạng thái đã được xem xét
◦ Đánh dấu khi trạng thái được lấy khỏi hàng đợi

9


Ví dụ
Goal

a
2

h=0

2


h=8

h=5

b
h = 11

9

Start

h = 12

2

d

3

p
h = 11

15

e

h=8

1
4


1

2

c

8

1

q
h=9

5

h=4

f
h=4

9

h
4

5
h=6

r

h=6

S = null, PQ={(Start,12)}
10


Ví dụ
Goal

a
2

h=0

2

h=8

h=5

b
h = 11

9

Start

h = 12

2


d

3

p

e

h=8

1
4

1

2

c

8

1

15

h = 11

q
h=9


5

h=4

f
h=4

9

h
4

5
h=6

r
h=6

S = Start/12, PQ={(e, 4), (d, 8), (p,11)}
11


Ví dụ
Goal

a
2

h=0


2

h=8

h=5

b
h = 11

9

Start

h = 12

2

d

3

p

e

h=8

1
4


1

2

c

8

1

15

h = 11

q
h=9

5

h=4

f
h=4

9

h
4


5
h=6

r
h=6

S = e/4, PQ={ (h,6), (r, 6), (d, 8), (p,11),}
12


Ví dụ
Goal

a
2

h=0

2

h=8

h=5

b
h = 11

9

Start


h = 12

2

d

3

p

e

h=8

1
4

1

2

c

8

1

15


h = 11

q
h=9

5

h=4

f
h=4

9

h
4

5
h=6

r
h=6

S = h/6, PQ={(r, 6), (d, 8), (q, 9), (p,11),}
13


Ví dụ
Goal


a
2

h=0

2

h=8

h=5

b
h = 11

9

Start

h = 12

2

d

3

p

e


h=8

1
4

1

2

c

8

1

15

h = 11

q
h=9

5

h=4

f
h=4

9


h
4

5
h=6

r
h=6

S = r/6, PQ={ (f, 4), (d, 8), (q, 9), (p,11),}
14


Ví dụ
Goal

a
2

h=0

2

h=8

h=5

b
h = 11


9

Start

h = 12

2

d

3

p
h = 11

15

e

h=8

1
4

1

2

c


8

1

q
h=9

5

h=4

f
h=4

9

h
4

5
h=6

r
h=6

S = f/4, PQ={ (Goal, 0), (d, 8), (q, 9), (p,11),}
15



Ví dụ
Goal

a
2

h=0

2

h=8

h=5

b
h = 11

9

Start

h = 12

2

d

3

p

h = 11

15

e

h=8

1
4

1

2

c

8

1

q

5

h=4

f
h=4


9

h
4

h=9

5
h=6

r
h=6

S = Goal/0, PQ={ (d, 8), (q, 9), (p,11),}  Đã tìm thấy Goal
16


Tìm kiếm tham lam (greedy search)
Khởi tạo hàng đợi ưu tiên pQueue
Đưa trạng thái bắt đầu start vào pQueue
Loop
If không cịn trạng thái để mở rộng then return “khơng có lời giải”
Chọn trạng thái s đầu hàng đợi để mở rộng
If s là trạng thái đích then return “có lời giải”
Gán nhãn cho trạng thái s
Với mỗi trạng thái mới s’ mở rộng từ s:
If s’ chưa được gán nhãn then
Tí𝑛ℎ ℎ(𝑠 ′ )
If 𝑠′ khơng có trong pQueue then
Thêm s’ vào pQueue

Ghi nhớ trạng thái trước của s’ là s
end
17


Tìm kiếm tham lam (greedy search)
Tính đầy đủ:
◦ Có

Tính tối ưu:
◦ Khơng, vì chỉ dựa vào chi phí ước lượng
◦ Thường đưa agent tới thẳng trạng thái đích, nhưng khơng phải với chi phí tốt nhất

Độ phức tạp tính tốn:
◦ O(min N, 𝑏 max )

Độ phức tạp lưu trữ:
◦ O(min N, 𝑏 max )

18


Nội dung
Heuristic
Tìm kiếm tham lam
Thuật giải A*
Sự nới lỏng

19



Thuật giải A*
Ý tưởng: kết hợp thuật toán UCS và tìm kiếm tham lam
UCS: chiến lược duyệt dựa theo chi phí từ trạng thái bắt đầu đến trạng thái đang xét, 𝑔(𝑠)
Tìm kiếm tham lam: chiến lược duyệt dựa theo chi phí ước lượng từ trạng thái đang xét
đến trạng thái cuối, ℎ(𝑠)
Thuật giải A*: chiến lược duyệt dựa theo theo giá trị tổng 𝑓 𝑠 = 𝑔 𝑠 + ℎ(𝑠)

Start



ℎ 𝑠 ,ước lượng
s



Goal

𝑔(𝑠)

20


Thuật giải A*
Khởi tạo hàng đợi ưu tiên pQueue,
Đưa trạng thái bắt đầu start vào pQueue
Loop
If khơng cịn trạng thái để mở rộng then return “khơng có lời giải”
Chọn trạng thái s đầu hàng đợi để mở rộng

If s là trạng thái đích then return “có lời giải”
Gán nhãn cho trạng thái s
Với mỗi trạng thái mới (s’) mở rộng từ s:
If 𝑠′ không thuộc pQueue và chưa gán nhãn then
𝑔 𝑠 ′ = 𝑔 𝑠 + 𝐶 𝑠, 𝑠 ′
𝑓 𝑠 ′ = 𝑔 𝑠′ + ℎ(𝑠 ′ )
Thêm s’ vào pQueue và ghi nhớ trạng thái trước của s’ là s
If 𝑠′ thuộc pQueue hoặc đã gán nhãn then
𝑔 𝑠 ′ = min{𝑔 𝑠 ′ , 𝑔 𝑠 + 𝐶(𝑠, 𝑠 ′ )
f 𝑠 ′ = 𝑔 𝑠 ′ + ℎ(𝑠)
If 𝑓 𝑠 ′ giảm then Ghi nhớ trạng thái trước của s’ là s
If 𝑓 𝑠 ′ giảm và s’ đã được gán nhãn then Đưa s’ trở lại hàng đợi
end
21


Thuật giải A* có tối ưu?

Chi phí ước lượng cao hơn chi phí thực  thuật tốn A* cho kết quả khơng tối ưu
◦ Chi phí đi từ s đến A là 6, nhưng chi phí thực tế chỉ là 1.

22


Heuristic có thể chấp nhận
Một heuristic là có thể chấp nhận (admissible) nếu:
0 ≤ ℎ 𝑠 ≤ ℎ∗ 𝑠
◦ Trong đó, ℎ∗ (𝑠) là chi phí thực tế nhỏ nhất để đến đích từ s.

Định lý: Nếu ℎ(𝑠) là heristic có thể chấp nhận, thuật tốn A* với cây tìm kiếm có tính tối

ưu.

23


Heuristic có thể chấp nhận
Thơng thường, admissible heuristic là các lời giải cho các bài tóan được nới lỏng ràng buộc
(relaxation), ở đó có nhiều hành động mới được cho phép.

Đơi khi các inadmissible heuristic cũng có ích

24


Nội dung
Heuristic
Tìm kiếm tham lam
Thuật giải A*
Sự nới lỏng

25


×