Do đó, tác tử phải sử dụng hành động của mình như các thử nghiệm để tìm hiểu về môi trường.Ví dụ cơ bản về online search là một robot được đặt trong một tòa nhà mới và phải khám phá tòa
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP.HCM
KHOA CÔNG NGHỆ THÔNG TIN
BÁO CÁO ĐỀ TÀI GIỮA KÌ
TRÍ TUỆ NHÂN TẠO
Mã học phần: ARIN330585_22_2_02
ĐỀ TÀI: ONLINE SEARCHGiảng viên hướng dẫn: ThS Lê Minh Tân
Danh sách sinh viên thực hiện:
1 Nông Quốc Hưng – 22110340
2 Trần Thị Thảo Ly – 22110375
3 Nguyễn Vương Việt – 22110457
TP Hồ Chí Minh, tháng 03 năm 2024
Trang 2LỜI CẢM ƠN
Lời đầu tiên, nhóm chúng em xin phép bày tỏ lòng biết ơn đến giảng viên bộ môn
và các bạn đã hỗ trợ chúng em trong quá trình hoàn thành đồ án và viết báo cáo củanhóm Chúng em xin gửi một lời cảm ơn đặc biệt thầy - ThS Lê Minh Tân, giảng viên bộmôn Trí tuệ nhân tạo của chúng em Cảm ơn thầy đã dành thời gian và tâm huyết củamình, tận tình hướng dẫn, chỉ bảo nhóm chúng em trong quá trình học tập tại lớp và quátrình hoàn thành nghiên cứu đề tài giữa kỳ của môn học
Cảm ơn những người bạn đã giúp chúng mình giải đáp những vấn đề khó, đưa ranhững ý kiến góp phần xây dựng, tạo động lực cho nhóm trong những lúc khó khăn.Những hỗ trợ ấy của các bạn đã giúp chúng mình vượt qua những thách thức trong việcnghiên cứu và đã thành công hoàn thành nghiên cứu đề tài giữa kỳ
Đồng thời, chúng em cũng muốn bày tỏ lòng biết ơn đến những người đã cung cấptài liệu và nguồn thông tin quý giá, giúp cho việc nghiên cứu đồ án của chúng em trở nênchính xác và đầy đủ hơn Nhờ có những tài liệu và thông tin này mà nhóm chúng em đã
có một góc nhìn tổng quan và sâu sắc hơn đối với đề tài nghiên cứu
Cuối cùng, chúng em muốn bày tỏ lòng cảm kích đến gia đình, người thân của mình
vì sự động viên và hỗ trợ vô giá trong quá trình học tập và nghiên cứu đề tài Nhờ có sự
hỗ trợ về tinh thần đã giúp chúng em vượt qua được những bước ngoặt về tâm lý trongquá trình nghiên cứu đề tài
Và một lần nữa, chúng em xin chân thành cảm ơn tất cả những người đã giúp đỡchúng em hoàn thành việc nghiên cứu đề tài giữa kỳ của bộ môn Trí tuệ nhân tạo Sự hỗtrợ, động viên của mọi người sẽ luôn là động lực để chúng em tiếp tục nỗ lực phấn đấu vàphát triển trong tương lai
Trang 3MỤC LỤC
4 Online Search Agent - Các thuật toán trong Online Search 4
CHƯƠNG 2: MÔ HÌNH HÓA CÀI ĐẶT THUẬT TOÁN ONLINE SEARCH
Trang 5CHƯƠNG 1: GIỚI THIỆU VỀ THUẬT TOÁN ONLINE SEARCH2424
1 Khái niệm về thuật toán Online Search
Online search là việc tìm kiếm trong môi trường mà tác tử (agent) phải xử lý dữliệu đầu vào ngay khi nó được nhận, thay vì chờ toàn bộ tập dữ liệu đầu vào trở nên khảdụng Trong môi trường không xác định, tác tử không biết các trạng thái tồn tại hoặc tácđộng của hành động của mình Do đó, tác tử phải sử dụng hành động của mình như cácthử nghiệm để tìm hiểu về môi trường
Ví dụ cơ bản về online search là một robot được đặt trong một tòa nhà mới và phảikhám phá tòa nhà để xây dựng một bản đồ có thể sử dụng để di chuyển từ điểm A đếnđiểm B
Khám phá không gian không phải là hình thức duy nhất của việc search Hãy xemxét một đứa trẻ mới sinh: nó có nhiều hành động có thể thực hiện nhưng không biết kếtquả của chúng, và nó chỉ trải qua một số trạng thái có thể đạt được Việc khám phá từngbước của trẻ sơ sinh về cách thế giới hoạt động là một phần của quá trình online search
2 Sự khác nhau giữa Online Search và Offline Search
2.1 Thuật toán Offline Search là gì?
Offline search là các thuật toán chạy trên máy tính trước tiên, để tìm ra giải pháp
và đưa cho tác tử chạy trong thực tế để tìm ra giải pháp Mỗi hành động của tác tử đều có thể biết được kết quả dựa trên transition model
Offline search gồm 5 thành phần : initial state, possible actions, transition model, goal test, cost
Ví dụ : DFS, BFS, A*,……
Trang 62.2 Bảng so sánh : (online search sẽ hữu dụng trong trường hợp : penalty for, non deterministic environments, no environment model)
Thuật toán Cả offline và online search đều là các thuật toán tìm kiếm
Input Đưa vào 1 lần ngay khi chương
trình bắt đầu
Đưa vào liên tục, sau các hành động thì lại
có các input tiếp theo
Đặt tác tử vào môi trường để tác tử khám phá và tìm giải pháp
Hiệu quả
Nhanh hơn, nhưng chỉ giải đượccác bài toán có đủ 5 thành phần của nó
Chậm hơn, nhưng có thể giải các bài toán không có transition model
3 Bài toán về Online Search
Online Search giải quyết vấn đề bằng cách xen kẽ tính toán và hành động, chứkhông chỉ bằng tính toán thuần túy Chúng ta bắt đầu với giả định môi trường xác định vàhoàn toàn quan sát được, với quy định rằng tác tử chỉ biết các thông tin sau:
ACTION(s): trả về danh sách các hành động được phép trong trạng thái s
cost(s,a,s’): Chi phí của việc thực hiện hành động a trong trạng thái s để đạt đượctrạng thái s’ Lưu ý rằng tác tử chỉ có thể sử dụng hàm này khi biết rằng s’ là kết quả củahành động
IS-GOAL(s): Kiểm tra xem trạng thái s có phải là trạng thái mục tiêu hay không.Đặt biệt, tác tử không thể xác định RESULT(s,a) ngoại trừ việc thực sự có mặttrong trạng thái s và thực hiện hành động a Ví dụ, trong bài toán mê cung (Hình 1) , tác
tử không biết rằng việc đi lên từ (1,1) dẫn đến (1,2); hoặc sau khi đã làm điều đó, nó
Trang 7không biết rằng việc đi xuống sẽ đưa nó trở lại (1,1) Mức độ không biết này có thể giảm
đi trong một số ứng dụng - ví dụ, một robot khám phá có thể biết cách hoạt động của cáchành động di chuyển và chỉ không biết vị trí của các chướng ngại vật
Hình 1: Một mê cung đơn giản Các tác tử S bắt đầu tiếp cận G nhưng không biết gì về
ratio); chúng ta muốn nó càng nhỏ càng tốt.
Vấn đề online search có thể gặp khó khăn khi đối mặt với các trạng thái “Ngõcụt”(Dead end): những trạng thái mà không thể truy cập được trạng thái mục tiêu Nếutác tử không biết từng hành động làm gì, nó có thể thực hiện lệnh “jump into bottomlesspit” và không bao giờ đạt mục tiêu Tóm lại, không có thuật toán nào có thể tránh đượccác trạng thái ngõ cụt trong tất cả không gian trạng thái
Trang 8Ngõ cụt là vấn đề khó khăn trong việc khám phá của robot như: các bậc thang,đường dốc, vách đá, đường một chiều và cả địa hình tự nhiên đều tạo ra các trạng thái mà
từ đó một số hành động không thể quay lại trạng thái trước đó Thuật toán khám phá màchúng ta sẽ trình bày chỉ được đảm bảo hoạt động trong không gian trạng thái có thểkhám phá an toàn (safely explorable), nghĩa là có một trạng thái mục tiêu có thể đạt được
từ mọi trạng thái Không gian trạng thái chỉ có các hành động có thể đảo ngược như mêcung (mazes) và 8-puzzles, rõ ràng là có thể khám phá an toàn (nếu có bất kì giải phápnào)
Ngay cả trong môi trường có thể khám phá an toàn, không thể đảm bảo tỷ lệ cạnhtranh có giới hạn nếu có các đường đi có chi phí không giới hạn Điều này dễ dàng thểhiện trong môi trường có các hành động không đảo ngược, nhưng thực tế vẫn đúng trongtrường hợp đảo ngược (Hình 2) Vì lý do này, người ta thường đánh giá hiệu suất của cácthuật toán Online Search dựa theo kích thước của toàn bộ không gian trạng thái thay vìchỉ độ sâu của mục tiêu gần nhất
Hình 2 : Một môi trường hai chiều có thể khiến Online Search Agent đi theo một lộ trình
tùy ý không hiệu quả để đạt được mục tiêu Cho dù tác tử đưa ra lựa chọn nào, đối thủ sẽ
Trang 9chặn con đường đó bằng một bức tường dài và mỏng khác, để con đường đi theo dài hơnnhiều so với con đường tốt nhất có thể.
4 Online Search Agent - Các thuật toán trong Online Search
Sau mỗi hành động, một online tác tử trong môi trường có thể quan sát nhận đượcmột nhận thức cho biết nó đã đạt đến trạng thái nào; từ thông tin này, nó có thể bổ sungvào bản đồ của môi trường Bản đồ được cập nhật sau đó được sử dụng để lên kế hoạch
đi đâu tiếp theo Sự xen kẽ giữa lập kế hoạch và hành động chính là điểm khiến các thuật
toán Online Search khá khác biệt so với các thuật toán Offline Search mà chúng ta đãthấy trước đây: các thuật toán offline khám phá mô hình không gian trạng thái của chúng,trong khi các thuật toán online khám phá thế giới thực
Ví dụ, A* có thể mở rộng một node ở một phần của không gian và sau đó ngay lậptức mở rộng một node ở một phần xa của không gian, bởi vì việc mở rộng node liên quanđến các hành động mô phỏng chứ không phải hành động thực
Mặt khác, một thuật toán online chỉ có thể khám phá các node kế tiếp cho mộttrạng thái mà nó đang chiếm giữ về mặt vật lý Điều này có nghĩa là thuật toán chỉ có thể
mở rộng các node trên bản đồ hoặc không gian trạng thái mà nó đang trực tiếp tương tác
Để hiệu quả hơn trong việc mở rộng không gian tìm kiếm mà không cần di chuyển đếncác trạng thái xa xôi, việc mở rộng các node theo thứ tự địa phương (local order) là lựachọn tốt hơn Tìm kiếm theo chiều sâu (Depth-first search) là một thuật toán có chính xáctính chất này bởi vì nó mở rộng node con ngay sau node cha mà không cần quay lại (trừkhi thuật toán đang thực hiện bước lùi - backtracking)
Online Depth-First Exploration Agent thể hiện trong Hình 3 (cho các hành động
xác định nhưng không biết trước) lưu trữ bản đồ của nó trong một bảng, là result[s,a], ghilại trạng thái kết quả từ việc thực hiện hành động a trong trạng thái s (Đối với các hànhđộng không xác định, tác tử có thể ghi lại một tập hợp các trạng thái theo result[s,a].) Khitrạng thái hiện tại có các hành động chưa được khám phá, tác tử sẽ thử một trong những
Trang 10hành động đó Vấn đề xuất hiện khi tác tử đã thử tất cả các hành động trong một trạngthái Trong Offline Depth-First Search, trạng thái bị loại bỏ khỏi hàng đợi (queue); trongOnline Search, tác tử phải quay lại (backtrack) trong thế giới vật lý Trong Depth-FirstSearch, điều này có nghĩa là quay trở lại trạng thái trước đó mà từ đó nó đã đến trạng tháihiện tại Để đạt được điều đó, đòi hỏi tác tử phải ghi nhớ lịch sử các hành động của mình
để có thể điều hướng trở lại một các chính xác, bằng cách dùng bảng unbacktracked đểtheo dõi các trạng thái tiền nhiệm mà tác tử chưa quay trở lại Nếu tác tử không còn trạngthái nào để quay trở lại, điều này có nghĩa là việc tìm kiếm của nó hoàn tất Tóm lại,Online Depth-First Exploration Agent là một quá trình tương tác giữa hành động và tínhtoán, nơi tác tử liên tục thích ứng với môi trường mới và sử dụng nó để hướng dẫn giảiquyết các quyết định tiếp theo của mình trong một môi trường không biết trước
Hình 3: Một tác tử Online Search sử dụng tính năng khám phá theo chiều sâu
(Depth-First Exploration) Tác tử chỉ có thể khám phá một cách an toàn trong không giantrạng thái mà trong đó mọi hành động có thể được “hoàn tác” bằng một số hành độngkhác
Trang 11ONLINE-DFS-AGENT là một thuật toán tìm kiếm sử dụng chiến lược theo chiều
sâu để khám phá môi trường Khi áp dụng cho một mê cung như trong Hình 3, trong
trường hợp xấu nhất, tác tử đi qua mỗi liên kết trong không gian trạng thái đúng hai lần.Điều này là tối ưu cho việc khám phá vì nó đảm bảo rằng mọi phần của không gian trạngthái đều được đi qua Tuy nhiên, khi mục tiêu là tìm kiếm một mục tiêu cụ thể, tỷ lệ cạnhtranh của tác tử có thể trở nên rất tệ nếu nó đi một quãng đường xa trong khi mục tiêu lạinằm ngay cạnh trạng thái ban đầu Một biến thể online của thuật toán tìm kiếm lặp sâu(iterative deepening) giải quyết vấn đề này; đối với môi trường là một cây đồng nhất(uniform tree), tỷ lệ cạnh tranh của một tác tử như vậy là một hằng số nhỏ
Do phương pháp quay lui của nó, ONLINE-DFS-AGENT chỉ hoạt động trongkhông gian trạng thái nơi các hành động có thể đảo ngược Những thuật toán phức tạphơn có thể hoạt động trong không gian trạng thái tổng quát, nhưng không có thuật toánnào có tỷ lệ cạnh tranh bị giới hạn trong trường hợp đó
5 Online Local Search - Tìm kiếm trực tuyến cục bộ
Giống như Depth-First Search, Hill-climbing Search có đặc tính địa phương(locality) trong việc mở rộng node của nó Trên thực tế, vì nó chỉ giữ một trạng thái hiệntại trong bộ nhớ nên Hill-climbing Search đã là một thuật toán Online Search! Tuy nhiên,thuật toán cơ bản của Depth-First Search không phải là lựa chọn tốt cho việc khám phá vì
nó khiến tác tử mắc kẹt ở trạng thái local maxima - những điểm cao hơn các điểm lân cận
nhưng không nhất thiết là điểm cao nhất trong không gian tìm kiếm Khi đạt đến localmaxima, thuật toán không còn hướng để cải thiện và có thể dừng lại hoàn toàn Hơn nữa,thuật toán Hill-climbing Search không hỗ trợ khởi động lại ngẫu nhiên (random restart)
Do Hill-climbing Search là một Online Search và chỉ duy trì một trạng thái hiện tại, nókhông thể nhảy hoặc dịch chuyển sang trạng thái bắt đầu mới
Thay vì khởi động lại ngẫu nhiên, người ta có thể cân nhắc sử dụng bước đi ngẫu
nhiên (random walk) để khám phá môi trường Bước đi ngẫu nhiên là một quá trình lựa
chọn hành động một cách ngẫu nhiên từ trạng thái hiện tại để khám phá môi trường
Trang 12Trong một môi trường hữu hạn và có thể khám phá an toàn, bước đi ngẫu nhiên sẽ tìmthấy mục tiêu hoặc hoàn thành việc khám phá của mình Tuy nhiên, quá trình này có thểrất chậm, do trong một số trạng thái, có khả năng “lùi” cao hơn so với “tiến”, tạo ra
những “bẫy” cho bước đi ngẫu nhiên Hình 4 cho thấy một môi trường trong đó bước đi
ngẫu nhiên sẽ mất một lượng bước đi tăng theo cấp số nhân để tìm ra mục tiêu, bởi vì, đốivới mỗi trạng thái ở hàng trên cùng ngoại trừ S, tiến trình lùi có khả năng xảy ra gấp đôi
so với tiến trình tiến Mặc dù ví dụ này có thể tạo ra để minh họa, nhưng có nhiều khônggian trạng thái thực tế có cấu trúc tương tự, gây ra những loại “bẫy” này cho bước đingẫu nhiên trong việc tìm kiếm ngẫu nhiên
Hình 4: Một môi trường trong đó bước đi ngẫu nhiên sẽ thực hiện nhiều bước
theo cấp số nhân để tìm ra mục tiêu
Tối ưu hóa bằng cách kết hợp hill climbing và bộ nhớ thay vì sự ngẫu nhiên, đãđược chứng minh là phương pháp hiệu quả hơn Ý tưởng cơ bản là lưu trữ một “ước tínhtốt nhất hiện tại” (current best estimate) H(s) về chi phí để đạt được mục tiêu từ mỗi trạngthái đã được thăm Ban đầu, ước tính này chỉ là một dự đoán dựa trên heuristics, và sau
đó được cập nhật khi tác tử tích lũy kinh nghiệm trong không gian trạng thái
Hãy xem ví dụ đơn giản trong không gian trạng thái một chiều như Hình 5 Trong
(a), tác tử dường như bị mắc kẹt trong một mức tối thiểu cục bộ cố định (flat local
Trang 13minimum) tại trạng thái màu đỏ Thay vì ở lại nơi đó, tác tử nên theo đường dẫn có vẻ làtốt nhất để đạt được mục tiêu dựa trên ước tính chi phí (estimated cost) hiện tại của cáctrạng thái lân cận Ước tính chi phí để đạt được mục tiêu thông qua một trạng thái lân cận
là tổng của chi phí để đến trạng thái này với ước tính chi phí để đạt được mục tiêu từtrạng thái lân cận đó (c(s,a,s’) + H(s’))) Trong ví dụ này, có hai hành động, với ước tínhchi phí ở bên trái và bên phải, vì vậy tốt nhất nên di chuyển sang phải
Hình 5: Năm lần lặp của LRTA* trên one-dimensional (không gian trạng thái một
chiều) Mỗi trạng thái được gắn nhãn H(s), ước tính chi phí hiện tại để đạt được mục tiêu
và mỗi liên kết có chi phí hành động là 1 Trạng thái màu đỏ đánh dấu vị trí của tác tử vàước tính chi phí hiện tại cập nhật ở mỗi lần lặp có một vòng tròn kép
Trong (b), rõ ràng ước tính chi phí là 2 cho trạng thái màu đỏ trong (a) là overlyoptimistic (tư duy quá lạc quan) Vì hành động tốt nhất có chi phí là 1 và dẫn đến trạngthái cách mục tiêu ít nhất 2 bước, trạng thái màu đỏ phải cách mục tiêu ít nhất 3 bước, do
đó, trạng thái này phải được cập nhật tương ứng, như trong Hình 5(b) Tiếp tục quá trình