Bài toán kh ả o sát

Một phần của tài liệu 9912071_9912704 (Trang 48 - 57)

L ị ch s ử l ậ p k ế ho ạ ch

1.2.1.4.Bài toán kh ả o sát

1 GI Ả I TOÁN B Ằ NG PH ƯƠ NG PHÁP TÌM KI Ế M

1.2.1.4.Bài toán kh ả o sát

Agent không biết không gian trạng thái của bài toán, không biết thông tin kết quả của hành động. Giống như đi từ nơi này đến nơi khác mà không có bản đồ. Đây là bài toán khó nhất đối với agent thông minh. Agent phải thử nghiệm và từ từ khám phá xem hành động của nó làm gì và sắp xếp các trạng thái đang tồn tại. Agent học bản đồ môi trường và sử dụng nó

để giải quyết bài toán.

1.2.2. Định nghĩa bài toán và giải pháp

Bài toán là tập hợp các thông tin agent sẽ dùng để quyết định xem sẽ làm gì. Những thành phần cơ bản của bài toán gồm trạng thái và hành động:

• Trạng thái ban đầu của agent.

• Tập hợp các hành động sẵn có của agent. Thuật ngữ toán tử được dùng để biểu diễn sự mô tả hành động theo trạng thái tìm kiếm bằng cách thực thi các hành động trong trạng thái cụ thể. Ví dụ, cho hàm S và trạng thái cụ thể x, S(x) trả về tập các trạng thái có thể tìm thấy từ x bởi bất cứ hành động đơn giản nào.

• Sự kiểm tra mục tiêu dùng để xác định xem trạng thái nào đó có phải là trạng thái mục tiêu không. Hay khi có tập các trạng thái mục tiêu rõ ràng, sự kiểm tra chỉ đơn giản xem agent có tìm ra một trong các trạng thái đó hay không. Nhưng đôi khi, mục tiêu được xác định bởi các thuộc tính trừu tượng, không phải tập các trạng thái được liệt kê rõ ràng.

• Hàm chi phí đường đi là hàm gán chi phí cho một con đường. Với chi phí cho một con đường là tổng chi phí của các hành động riêng rẽ dọc theo con đường. Ký hiệu của hàm chi phí đường đi làg. Với:

o Không gian trạng thái của bài toán là tập hợp tất cả các trạng thái có thể tìm thấy từ trạng thái ban đầu bởi bất kỳ chuỗi hành động nào.

o Đường đi trong không gian trạng thái là bất kỳ chuỗi hành động nào dẫn từ trạng thái này sang trạng thái khác.

o Chi phí đường đi chỉ ra giải pháp này phù hợp hơn giải pháp kia. Như vậy, trạng thái ban đầu, tập hợp các toán tử, sự kiểm tra mục tiêu và hàm chi phí đường đi định nghĩa bài toán. Ta có thể định nghĩa kiểu dữ

liệu trình bày các bài toán như sau:

Thể hiện của kiểu dữ liệu này sẽ là đầu vào cho thuật toán tìm kiếm của chúng ta. Đầu ra của thuật toán là một giải pháp, đó là đường đi từ trạng thái khởi đầu đến trạng thái thỏa mãn hàm kiểm tra mục tiêu.

1.2.3. Đo mức độ thực thi của việc giải toán 1.2.3.1. Các phương pháp đo độ thực thi Có ít nhất 3 cách đểđo tính hiệu quả của việc tìm kiếm.

a) Nó có tìm ra giải pháp trong tất cả các trường hợp hay không? b) Giải pháp tìm thấy có phải là giải pháp tốt không (chí phí đường đi

thấp)?

datatypeBÀI TOÁN

components:TRẠNG THÁI BAN ĐẦU, TẬP CÁC TOÁN TỬ, KIỂM TRA MỤC TIÊU, HÀM CHI PHÍ ĐƯỜNG ĐI

c) Chi phí tìm kiếm liên kết với thời gian và bộ nhớ yêu cầu để tìm ra giải pháp là gì?

Tổng chi phí tìm kiếm là tổng của chi phí đường đi và chi phí tìm kiếm. 1.2.3.2. Ví dụ

Ví dụ, bài toán tìm kiếm lộtrình từ Arad đến Bucharet.

− Chi phí đường đi có thể tươngứng với tổng số dặm của con đường.

− Chi phí tìm kiếm phụ thuộc vào từng tình huống. Trong môi trường tĩnh, chi phí tìm kiếm có thể bằng 0 bởi vìđộđo thực thi phụ thuộc vào thời gian. Ví dụ đi từ Arad đến Bucharet, môi trường là bán

động vì tính toán dài hơn, chi phí sẽ cao hơn. Trong trường hợp này, chi phí tìm kiếm biến đổi gần như xấp xỉ với thời gian tính toán (ít nhất là với lượng thời gian nhỏ).

Để tính tổng chi phí, ta phải cộng số dặm và mili giây. Điều này không dễ

vì ta không có tỉ lệ trao đổi chuẩn giữa hai đơn vị này. Agent phải biết cách quyết định, tài nguyên nào giành cho tìm kiếm và tài nguyên nào dành cho thực thi. Đối với những bài toán có không gian trạng thái rất nhỏ, ta dễ dàng tìm thấy những giải pháp với chi phí đường đi thấp nhất. Nhưng với không gian tìm kiếm lớn, bài toán phức tạp, rất khó khăn để

có được chi phí tốiưu cả hai mặt – agent có thể thu được giải pháp tốiưu nhưng phải tìm kiếm trong thời gian dài, hay agent có thể tìm kiếm trong thời gian ngắn và thu được giải pháp với chi phí đường đi lớn hơn.

1.2.4. Chọn trạng thái và hành động

Giả sử, xét bài toán “Lái xe từ Arad đến Bucharest sử dụng các con

đường trong bản đồ hình 3.2.” Không gian trạng thái tương ứng có 20 trạng thái, một trạng thái được định nghĩa bằng một vị trí duy nhất, xác

Hình 3.2 Bản đồđơn giản của Romaria (adsbygoogle = window.adsbygoogle || []).push({});

Bài toán được mô tả như sau:

1. trạng thái ban đầu: “ở Arad”

2. các toán tử: Arad →Zerind Arad→Sibiu

3. sự kiểm tra mục tiêu: “Đây có phải là Bucharet không?” hay x =

“at Bucharest”

4. chi phí đường đi: có thể là số dặm, cũng có thể là thời gian lưu thông. Nhưng bản đồ của chúng ta thì không xác định chúng, nên ta giả sử hàm chi phí đường đi sẽđo số bước phải đi qua.

5. giải pháp: chuỗi toán tử đi từ trạng thái ban đầu đến trạng thái mục tiêu.

Có rất nhiều giải pháp nhưng giải pháp đi qua Sibiu và Fagaras, có chi phí đường đi là 3 là giải pháp tốt nhất.

Môi trường thế giới thực rất phức tạp. Đối với cách tiếp cận giải quyết bài toán không gian trạng thái phải được mô tả trừu tượng. Đây gọi

là sự trừu tượng hoá. Quá trình này bỏ qua chi tiết của các trạng thái và hành động.

Cụ thể:

• Trạng thái trừu tượng: tập các trạng thái thực. Ví dụ: “at Arad”, “at Bucharest”. Bỏ qua các trạng thái môi trường khác như: trạm dừng kế tiếp bao xa, điều kiện đường đi, thời tiết, v.v…

• Toán tử trừu trượng: mô tả các hành động thực trong môi trượng. Ví dụ: “Arad → Zerind” bỏ qua việc đi đúng luật, tiêu thụ nhiên liệu, v.v…

• Giải pháp trừu tượng: tập các con đường trong thế giới thực. Việc thực thi những hành động trừu tượng trong giải pháp trừu tượng dễ

hơn so với bài toán gốc.

1.3. Tìm kiếm giải pháp

Việc tìm kiếm giải pháp được thực hiện bằng cách tìm qua không gian trạng thái. Ý tưởng là duy trì và mở rộng tập các chuỗi giải pháp cục bộ. Phần này trình bày cách tạo ra chuỗi giải pháp và cách lưu chúng trong những cấu trúc dữ liệu thích hợp.

1.3.1. Tạo các chuỗi hành động

Bản chất của việc tìm kiếm là: chọn một trạng thái và đặt những cái khác qua một bên cho lần sau khi lựa chọn đầu tiên này không đưa đến giải pháp. Với mỗi trạng thái được chọn, ta kiểm tra xem nó có phải là trạng thái mục tiêu không. Nếu không phải, xét tiếp những trạng thái mới được tạo ra từ trạng thái hiện hành bằng cách áp dụng các toán tử. Đây gọi là quá trình mở rộng trạng thái. Các quá trình lựa chọn, kiểm tra và mở rộng tiếp tục cho đến khi giải pháp được tìm thấy hoặc cho đến khi không còn

trạng thái nào để mở rộng nữa. Việc chọn trạng thái nào để mở rộng được xác định bởi giải pháp tìm kiếm.

Ví dụ để giải quyết bài toán từ Arad đến Bucharest, ta bắt đầu với trạng thái khởi đầu là Arad. Kiểm tra xem nó có phải là trạng thái mục tiêu không. Rõ ràng là không phải, điều này rất quan trọng để tránh gặp phải vấn đề là “bắt đầu từ Arad, đến Arad.” Vì đây không phải là trạng thái mục tiêu nên ta, nên ta phải khảo sát các trạng thái khác. Áp dụng các operator với trạng thái ở Arad, tạo ra tập các trạng thái mới “ở Sibiu”, “ở

Timisoara” và “ở Zerind”, vì có con đường trực tiếp từ Arad đến các thành phố này. Do có nhiều trạng thái để chọn, ta chọn một trạng thái và

để các trạng thái khác cho lần lựa chọn sau.

Giả sử chọn Zerind. Kiểm tra xem nó có phải là trạng thái mục tiêu không (trong trường hợp này là không), sau đó mở rộng nó “ở Arad” và “ở Oradea.” Bây giờ, có thể chọn một trong hai trạng thái, hoặc trở về

và chọn Sibiu hay Timisoara. Quá trình này tiếp tục cho đến khi tìm thấy giải pháp, Để dễ dàng cho quá trình tìm kiếm, ta xây dựng cây tìm kiếm (search tree) trong không gian trạng thái. Nút gốc của cây tìm kiếm gọi là nút tìm kiếm (search node) ứng với trạng thái ban đầu. Các nút lá

ứng với trạng thái không có kế thừa trong cây vì chúng chưa được mở

rộng, hoặc đã mở rộng rồi nhưng tạo ra tập rỗng. Ở mỗi bước thuật toán

Một phần của tài liệu 9912071_9912704 (Trang 48 - 57)