Tải bản đầy đủ (.docx) (22 trang)

Báo cáo đề tài giữa kì trí tuệ nhân tạo đề tài online search

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 (494.72 KB, 22 trang )

<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">

<b>BỘ GIÁO DỤC VÀ ĐÀO TẠO</b>

<b>TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP.HCMKHOA CÔNG NGHỆ THÔNG TIN</b>

<b>BÁO CÁO ĐỀ TÀI GIỮA KÌ</b>

<b>TRÍ TUỆ NHÂN TẠO</b>

<b>Mã học phần: ARIN330585_22_2_02</b>

<b>ĐỀ TÀI: ONLINE SEARCH</b>

<b>Giảng viên hướng dẫn: ThS. Lê Minh Tân</b>

<b>Danh sách sinh viên thực hiện:</b>

1. Nông Quốc Hưng – 22110340 2. Trần Thị Thảo Ly – 22110375 3. Nguyễn Vương Việt – 22110457

<i>TP. Hồ Chí Minh, tháng 03 năm 2024</i>

</div><span class="text_page_counter">Trang 2</span><div class="page_container" data-page="2">

<b>LỜI CẢM ƠN</b>

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 q trình hồn thành đồ án và viết báo cáo của nhó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ủa mình, tận tình hướng dẫn, chỉ bảo nhóm chúng em trong q trình học tập tại lớp và q trình hồ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 ra nhữ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ệc nghiên cứu và đã thành cơng hồ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ấp tà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ên chí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 q 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ý trong quá 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.

</div><span class="text_page_counter">Trang 3</span><div class="page_container" data-page="3">

<b>MỤC LỤC</b>

4. Online Search Agent - Các thuật toán trong Online Search 4

<b>CHƯƠNG 2: MƠ HÌNH HĨA CÀI ĐẶT THUẬT TOÁN ONLINE SEARCH </b>

</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="5">

<b>CHƯƠNG 1: GIỚI THIỆU VỀ THUẬT TOÁN ONLINE SEARCH24241. Khái niệm về thuật tốn Online Search</b>

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á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 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 xem xé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ết quả 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ừng bướ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.

<b>2. Sự khác nhau giữa Online Search và Offline Search2.1 Thuật toán Offline Search là gì?</b>

Offline search là các thuật tố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*,…….

</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="6">

<b>2.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) </b>

<b>Thuật toán </b> Cả offline và online search đều là các thuật tốn tìm kiếm

<b>Input </b> <sup>Đưa vào 1 lần ngay khi chương </sup>

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

<b>Thành phầnmột node </b>

Initial state, possible actions, transition model, goal state, cost

Initial state, possible actions, goal state,

Chậm hơn, nhưng có thể giải các bài tốn khơng có transition model

<b>3. Bài tốn về Online Search </b>

Online Search giải quyết vấn đề bằng cách xen kẽ tính tốn và hành động, chứ khơng chỉ bằng tính tốn thuần túy. Chúng ta bắt đầu với giả định mơi trường xác định và hồn tồ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 được trạ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ủa hà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ặt trong trạng thái s và thực hiện hành động a. Ví dụ, trong bài tố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ó

</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="7">

khô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ác hành động di chuyển và chỉ khơng biết vị trí của các chướng ngại vật.

<b>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ề</b>

mơi trường.

Thơng thường, mục tiêu của tác tử là đạt được trạng thái mục tiêu trong khi giảm thiểu chi phí. Chi phí là tổng chi phí đường đi mà tác tử gánh chịu khi di chuyển. Người ta thường so sánh chi phí này với chi phí đường đi mà tác tử sẽ gánh chịu nếu nó biết khơng gian tìm kiếm trước - tức là đường đi tối ưu trong môi trường đã biết. Theo thuật ngữ của các thuật tốn tìm kiếm, so sánh này được gọi là tỷ lệ cạnh tranh (competitive

<b>ratio); chúng ta muốn nó càng nhỏ càng tốt.</b>

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ếu tá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 bottomless pit” và không bao giờ đạt mục tiêu. Tóm lại, khơng có thuật tốn nào có thể tránh được các trạng thái ngõ cụt trong tất cả không gian trạng thái.

</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="8">

Ngõ 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 tố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 tồ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 tồn (nếu có bất kì giải pháp nào).

Ngay cả trong mơi trường có thể khám phá an tồn, khơng thể đảm bảo tỷ lệ cạnh tranh 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 trong trườ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ác thuật tốn Online Search dựa theo kích thước của tồn bộ khơng gian trạng thái thay vì chỉ độ sâu của mục tiêu gần nhất.

<b>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</b>

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ẽ

</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="9">

chặ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ơn nhiều so với con đường tốt nhất có thể.

<b>4. Online Search Agent - Các thuật toán trong Online Search</b>

Sau mỗi hành động, một online tác tử trong mơi trường có thể quan sát nhận được mộ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ổ sung và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>đ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</i>

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 tố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 tố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ập tứ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 tốn online chỉ có thể khám phá các node kế tiếp cho một trạ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 tố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 đến cá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ựa chọn tốt hơn. Tìm kiếm theo chiều sâu (Depth-first search) là một thuật tốn có chính xác tí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).

<b>Online Depth-First Exploration Agent thể hiện trong Hình 3 (cho các hành động</b>

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], ghi lạ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].) Khi trạ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

</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="10">

hà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ạng thái. Trong Offline Depth-First Search, trạng thái bị loại bỏ khỏi hàng đợi (queue); trong Online Search, tác tử phải quay lại (backtrack) trong thế giới vật lý. Trong Depth-First Search, đ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ái hiệ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ạng thái nào để quay trở lại, điều này có nghĩa là việc tìm kiếm của nó hồ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ính tố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ải quyế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.

<b>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</b>

(Depth-First Exploration). Tác tử chỉ có thể khám phá một cách an tồn trong khơng gian trạng thái mà trong đó mọi hành động có thể được “hoàn tác” bằng một số hành động khác.

</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="11">

ONLINE-DFS-AGENT là một thuật tốn tìm kiếm sử dụng chiến lược theo chiều

<b>sâu để khám phá môi trường. Khi áp dụng cho một mê cung như trong Hình 3, trong</b>

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ạng thá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ạnh tranh 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ại nằm ngay cạnh trạng thái ban đầu. Một biến thể online của thuật tố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 trong khơng gian trạng thái nơi các hành động có thể đảo ngược. Những thuật tốn phức tạp hơn có thể hoạt động trong khơng gian trạng thái tổng qt, nhưng khơng có thuật tốn nào có tỷ lệ cạnh tranh bị giới hạn trong trường hợp đó.

<b>5. Online Local Search - Tìm kiếm trực tuyến cục bộ</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ện tạ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ì

<b>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</b>

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 local maxima, thuật tốn khơng cịn hướng để cải thiện và có thể dừng lại hồn tồn. Hơn nữa, thuật tố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

<b>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</b>

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.

</div><span class="text_page_counter">Trang 12</span><div class="page_container" data-page="12">

Trong một môi trường hữu hạn và có thể khám phá an tồn, bước đi ngẫu nhiên sẽ tìm thấy mục tiêu hoặc hồn thành việc khám phá của mình. Tuy nhiên, q 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

<b>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</b>

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ì, đối vớ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ơng gian 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 đi ngẫu nhiên trong việc tìm kiếm ngẫu nhiên.

<b>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</b>

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ính tố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ạng thái đã được thăm. Ban đầu, ước tính này chỉ là một dự đố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.

<b>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</b>

(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

</div><span class="text_page_counter">Trang 13</span><div class="page_container" data-page="13">

minimum) 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ác trạ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ính chi 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.

<b>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</b>

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à overly optimistic (tư duy quá lạc quan). Vì hành động tốt nhất có chi phí là 1 và dẫn đến trạng thá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

</div>

×