1. Trang chủ
  2. » Công Nghệ Thông Tin

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

33 12 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 33
Dung lượng 1,5 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à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 có nội dung trình bày về heuristic, tìm kiếm tham lam, thuật giải A*, sự nới lỏng,... Mời các bạn cùng tham khảo chi tiết nội dung bài giảng!

Trang 1

Bài toán tìm kiếm II

THS BÙI THỊ DANH

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

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

Trang 4

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 toán tìm kiếm cụ thể

Một số hàm heuristic phổ biến:

◦ Khoảng cách Euclidean, Mahattan.

◦ …

Trang 5

Ví dụ - Tìm đường đi cho Pacman

Hàm h(s) là hàm Euclidean

Trang 6

Ví dụ - Tìm đường đi trên bản đồ

Hàm h(s) là khoảng cách đường chim bay

Trang 7

Ví dụ - N-Puzzle

Hàm h(s): số ô khác biệt giữa 2 puzzle…

Trang 9

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

Trang 10

fe

4

4

15 1

Trang 11

fe

4

4

15 1

Trang 12

fe

4

4

15 1

Trang 13

fe

4

4

15 1

Trang 14

fe

4

4

15 1

Trang 15

fe

4

4

15 1

Trang 16

fe

4

4

15 1

Trang 17

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 sVớ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 pQueueGhi nhớ trạng thái trước của s’ là s

end

Trang 18

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 toán:

◦ O(min N, 𝑏max )

Độ phức tạp lưu trữ:

◦ O(min N, 𝑏max )

Trang 20

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 𝑓 𝑠 = 𝑔 𝑠 + ℎ(𝑠)

𝑔(𝑠)

ℎ 𝑠 ,ước lượng

Trang 21

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

Trang 22

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

Chi phí ước lượng cao hơn chi phí thực  thuật toá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.

Trang 26

Sự nới lỏng (relaxation)

Làm sao để có một heuristic tốt?

◦ Lý tưởng thì h(s) = h*(s) Điều này khó như giải quyết bài toán gốc

◦ Thay vì dùng h*(s) của bài toán gốc, chúng ta dùng h*(s) của bài toán dễ hơn

◦ Heuristic tốt liên quan đến mô hình hóa, không phải xây dựng thuật toán

Trang 27

Sự nới lỏng

Giảm chi phí

Loại bỏ ràng buộc

Lời giải dạng gần đúng

Tìm kiếm

dễ hơn

Các bài toán con độc lập

Trang 28

Lời giải dạng gần đúng

Mục tiêu: di chuyển từ ô hình tam giác đến hình tròn

Nới lỏng: bỏ các bức tường đi

Bài toán sau khi nới lỏng : ℎ∗(𝑠) là khoảng cách Mahattan

◦  Sử dụng ℎ ∗ (𝑠) này để làm heuristic

Trang 29

◦ Ràng buộc: số hành động tram không được nhiều hơn walk

Trạng thái: (thành_phố, #walk - #tram)

◦ Số trạng thái từ O(n) thành O(n 2 )

Trang 30

Tìm kiếm dễ hơn

Giữ các thông tin bài toán gốc, nhưng loại bỏ ràng buộc

Trạng thái sau nới lỏng: (thành_phố)

Bài toán sau khi nới lỏng: tìm đường đi từ thành phố 1 đến thành phố n

◦ Hàm heuristic là ℎ∗(𝑠) của bài toán nới lỏng: kết quả của thuật toán UCS tìm đường từ trạng thái s tới trạng thái đích hoặc ngược lại

Trang 31

Bài toán con độc lập

Bài toán gốc: các mảnh ghép không được chồng lên nhau

Nới lỏng: Các mảnh ghép có thể chồng lên nhau

Bài toán sau khi nới lỏng: 8 bài toán con độc lập nhau

◦ Mỗi bài toán con tương ứng với một dạng gần đúng (slide trước).

◦ Hàm heuristic là hàm tổng của các bài toán con.

Trang 32

Nhắc lại

Các bài toán nới lỏng được sử dụng để lấy giá trị cho hàm heuristic h(s) nhằm định hướng tìm kiếm Các lời giải của bài toán nới lỏng không phải là lời giải của bài toán gốc

Trang 33

Tài liệu tham khảo

Cơ sở Trí tuệ Nhân tạo, Lê Hoài Bắc, Tô Hoài Việt, NXB Khoa học & Kỹ thuật.

Slide bài giảng Trí tuệ nhân tạo, GV Tô Hoài Việt, GV Lê Ngọc Thành, Khoa CNTT, ĐH KHTN

Ngày đăng: 04/09/2021, 18:28

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