我在A *搜索算法的上下文中遇到了可接受的啓發式術語。有人可以解釋(或給出直覺)爲什麼啓發函數h只有在不會高估實際距離時纔可以接受?爲什麼可接受啓發式工作?
0
A
回答
2
想一想A *的停止條件下,如果它達到具有一定F
值,其中F
等於G
目標節點的算法停止估計剩餘的目標路徑。
於目標節點,F
等於G
的剩餘路徑的目標估計爲0
停機條件是有效的只有H
是可以受理的,從那以後,我們可以判斷,如果F
值我們在目標節點處計算的值比我們在任何其他節點計算的其他任何其他節點的值都小,因此我們可以確定它是最短路徑,因爲沒有其他路徑可能會以較小的F
值達到目標。
如果它不被允許,那麼可能有其他一些節點,我們計算F
時高估了目標的剩餘路徑,並且我們無法停止算法,因爲可能存在較短的路徑。
+0
謝謝你的時間! – ishan3243
1
對於那些不尋求免費提供的資源和免費的努力。
在計算機科學中,特別是在涉及到 尋路算法,啓發式功能被認爲是容許的,如果它從未 高估到達目標的成本,即成本也 估計要達到的目標是不高於路徑中當前點的最低可能成本 。可接受的啓發式是 也被稱爲樂觀啓發式。
這是維基百科的鏈接:
http://en.wikipedia.org/wiki/Admissible_heuristic
關於第二個問題
啓發式是受理,但不高估的真實成本,只是因爲它定義了這個辦法。的路徑從起點迄今構建加啓發式值H
其表示 -
相關問題
- 1. 啓發式被認爲是可接受的是什麼意思?
- 2. 爲什麼這種啓發式可以接受?
- 3. 爲什麼A *算法的啓發式算法是不可接受的?
- 4. 單調性和啓發式的可接受性之間有什麼區別?
- 5. 爲什麼不接受此事件接收器代碼工作?
- 6. 爲什麼stackalloc接受可變長度?
- 7. $#作爲Perl輸入接受什麼?
- 8. 什麼啓發式評估函數或算法可以被視爲不可接受
- 9. 未接受連接會發生什麼?
- 10. 如何判斷特定的啓發式是否可以接受,以及爲什麼我的不是?
- 11. 爲什麼提出啓發式方法?
- 12. 星型算法 - 可接受的啓發式
- 13. 什麼可以用作Bubblet遊戲的啓發式遊戲?
- 14. 什麼是啓發式fencepost?
- 15. 爲什麼我的Android啓動接收器不工作?
- 16. 爲什麼建設啓發式工作時規劃變量是空的
- 17. 爲什麼這個啓動模式不工作?
- 18. Socket接受後會發生什麼?
- 19. 爲什麼不啓用DragDrop文本框接受文件?
- 20. goto的可接受用途是什麼?
- 21. 什麼路徑可以接受?
- 22. 什麼是可接受的ViewState大小
- 23. 什麼是正則表達式接受
- 24. 爲什麼python dict的fromkeys方法可以接受列表作爲參數?
- 25. 爲什麼我的鏈接不工作?
- 26. 爲什麼我的連接不工作?
- 27. 爲什麼GainNode連接不能工作?
- 28. 使用.NET依賴項分發Excel模板的可接受方式是什麼?
- 29. 爲什麼沒有RelatedManager.add()接受一個迭代作爲參數?
- 30. 爲什麼map <string,string>接受int值作爲值?
你讀過維基百科頁嗎? – ziggystar
你明白爲什麼在A *中啓發式不能高估剩餘的距離嗎? –
@RonTeller讓我們說*應*。 – ziggystar