Tại sao A * tối ưu nếu chức năng heuristic được chấp nhận?


8

Một heuristic là chấp nhận được nếu nó không bao giờ đánh giá quá cao chi phí thực sự để đạt được nút mục tiêu từn. Nếu một heuristic là nhất quán , thì giá trị heuristic củan không bao giờ lớn hơn chi phí của người kế nhiệm nó n, cộng với giá trị heuristic của người kế nhiệm.

Tại sao A *, sử dụng tìm kiếm cây hoặc biểu đồ, tối ưu, nếu nó sử dụng phương pháp phỏng đoán được chấp nhận?


Câu trả lời:


7

Điều này được đề cập rất kỹ trong chương tương ứng của Russell & Norvig (chương 3.5, trang 93 đến 99 (Ấn bản thứ ba)). Kiểm tra để biết thêm chi tiết.

Trước tiên, hãy xem lại các định nghĩa:


Định nghĩa của bạn về sự chấp nhận và nhất quán là chính xác.

Một heuristic đáng ngưỡng mộ về cơ bản chỉ là "lạc quan". Nó không bao giờ đánh giá quá cao một khoảng cách.

Một heuristic nhất quán là một trong đó niềm tin trước đây của bạn về khoảng cách giữa các quốc gia là tự nhất quán. Đó là, bạn không nghĩ rằng nó có giá 5 từ B đến mục tiêu, 2 từ A đến B và 20 từ A đến mục tiêu. Bạn được phép lạc quan quá mức mặc dù. Vì vậy, bạn có thể tin rằng đó là 5 từ B đến mục tiêu, 2 từ A đến B và 4 từ A đến mục tiêu.

Một tìm kiếm cây là một chiến lược tìm kiếm chung để tìm kiếm các vấn đề rằng có một cấu trúc cây: có nghĩa là, nó không bao giờ có thể "trở lại đôi" để trạng thái trước đó từ một trạng thái sau. Mô hình này, ví dụ như một số loại trò chơi nhất định, như Tic-Tac-Toe. Tìm kiếm cây không nhớ trạng thái nào nó đã truy cập, chỉ có "rìa" của trạng thái mà nó chưa truy cập.

Một tìm kiếm đồ thị là một chiến lược tìm kiếm chung để tìm kiếm các vấn đề biểu đồ cấu trúc, nơi nó có thể tăng gấp đôi trở lại trạng thái trước đó, giống như trong cờ vua (ví dụ như cả hai người chơi chỉ có thể di chuyển vị vua của họ trở lại và ra). Để tránh các vòng lặp này, tìm kiếm biểu đồ cũng theo dõi các trạng thái mà nó đã xử lý.

Để biết thêm về tìm kiếm trên cây và biểu đồ, hãy xem câu trả lời hay cho câu hỏi Stack Overflow này .


Được rồi, bây giờ hãy nói qua trực giác đằng sau các bằng chứng.

Trước tiên chúng tôi muốn thể hiện rằng

Nếu h(n) được chấp nhận, A * sử dụng tìm kiếm cây là tối ưu.

Bằng chứng thông thường là do mâu thuẫn.

  1. Giả sử rằng A * với tìm kiếm cây và một heuristic được chấp nhận là không tối ưu.

  2. Không tối ưu có nghĩa là đường dẫn hoàn chỉnh đầu tiên từ điểm bắt đầu đến mục tiêu được phát hiện bởi A * (gọi đây là q) sẽ dài hơn một số đường dẫn khác p, mà A * đã khám phá đến một số tiểu bang s, nhưng không còn nữa.

  3. Vì heuristic là chấp nhận được, chi phí ước tính để đạt được mục tiêu từ s phải nhỏ hơn chi phí thật.

  4. Đến 3, và thực tế là chúng ta biết chi phí để đạt được là bao nhiêu s dọc theo p, tổng chi phí ước tính của pvà do đó, chi phí để mở rộng s phải nhỏ hơn chi phí thật của p.

  5. Kể từ khi chi phí thực sự của p nhỏ hơn chi phí q (bằng 2), chi phí ước tính để mở rộng s phải nhỏ hơn chi phí thật của q.

  6. A * luôn chọn đường dẫn có tổng chi phí hứa hẹn nhất để mở rộng tiếp theo và chi phí mở rộng trạng thái mục tiêu được đưa ra bằng tổng chiều dài đường dẫn cần thiết để đạt được nó.

  7. 5 và 6 tạo thành mâu thuẫn, vì vậy giả định của chúng tôi trong 1 phải không chính xác. Do đó A * phải tối ưu.

Bằng chứng tìm kiếm biểu đồ sử dụng một ý tưởng rất giống nhau, nhưng thực tế là bạn có thể lặp lại các trạng thái trước đó.


1
Free PDF của phiên bản thứ 3 của "Trí tuệ nhân tạo: Một cách tiếp cận hiện đại" từ: faculty.psau.edu.sa/filedownload/...
DukeZhou

Định nghĩa của bạn về tìm kiếm cây là không chính xác và liên kết bạn cung cấp đồng ý. Nó không phụ thuộc vào cấu trúc vấn đề. Nó phụ thuộc vào thuật toán. Sự khác biệt duy nhất giữa tìm kiếm cây và tìm kiếm đồ thị là trong tìm kiếm đồ thị, chúng tôi lưu các nút đã khám phá để chúng tôi không truy cập lại chúng trong khi tìm kiếm cây mà chúng tôi không. Vì vậy, trong một tìm kiếm cây, chúng ta có thể truy cập cùng một nút nhiều lần.
MrGreen

@MrGreen Định nghĩa của tôi nói rằng đó là một thuật toán cho một loại cấu trúc vấn đề nhất định. Đúng là sự khác biệt giữa các thuật toán là liệu chúng có lưu trữ các trạng thái truy cập hay không. Các định nghĩa tôi cung cấp (có nghĩa là khi các thuật toán này nên được áp dụng, chứ không phải chúng là gì) cũng đúng.
John Doucette

@JohnDoucette Bạn có thể có một biểu đồ quá lớn để phù hợp với bộ nhớ. Trong trường hợp đó, người ta có thể đi theo cách tiếp cận tìm kiếm cây hơn là tìm kiếm đồ thị.
MrGreen

@MrGreen điều đó đúng, nhưng tôi không chắc nó có liên quan đến câu hỏi này không.
John Doucette
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.