簡體   English   中英

允許的啟發式曼哈頓距離

[英]Admissible Heuristic Manhattan Distance

我最近開始了人工智能的入門課程,並且我已經獲得了在Python中實現可接受的啟發式功能的任務,該功能通過A *搜索解決了15-Puzzle。

我實施了曼哈頓距離以及其他一些啟發式算法。 Python代碼運行得很好,算法實際上解決了這個問題,但我對曼哈頓距離啟發式是否可以接受這個特定問題有一些疑問。

根據理論,如果從未 高估達到目標的成本,則啟發式是可以接受的。 這意味着啟發式是樂觀的,它返回的成本永遠不會超過實際成本。

當初始狀態如下(0表示空槽)時:

1  2  3  4
0  6  7  8
5  9  10 12
13 14 11 15

我的程序通過5次移動解決了問題,但是每個放錯位置的瓦片的曼哈頓距離之和等於10,這是實際成本的兩倍。 因此,實際成本遠低於估計成本。 這是否意味着啟發式不可接受或我的邏輯有什么問題?

我想過只計算空塊的曼哈頓距離,但是當空塊在正確的位置而其他瓷磚放錯位置時,這會導致估計成本為零的狀態。

曼哈頓距離啟發式是可以接受的,因為它獨立地考慮每個瓦片(而實際上瓦片彼此干擾)。 所以它很樂觀。

在您的示例中,距離所有圖塊的目標位置的距離之和為5(圖塊5,9,10,11,15每個需要一次移動)。

在此輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM