簡體   English   中英

A *算法和F和G啟發式的使用

[英]A* Algorithm and use of F and G heuristics

我的A *算法在某種程度上有效。 它將在一個空間中跟隨玩家,但它不會圍繞一個物體,它涉及遠離目標移動以繞過它。 當它意識到下一個節點具有更高的F值(離目標更遠)時,它將拒絕去那里並且將繼續尋找更低的F值(更接近目標的節點)而不找到一個(它被卡在一個永無止境的循環)。

我認為我對使用啟發式的理解可能是個問題。

我的A *總是移動到具有最低F值(H + G)的下一個節點。 除了在F中添加它們之外,我從不考慮G或H值。

在我讀過的教程中,他們談到了使用G值,但我認為F值是唯一重要的值。

有人可以總結一下我如何使用啟發式值。 我想我幾乎就在那里,只是使用啟發式方法令人困惑。

您是否保留備用路徑段的優先級隊列? 如果你只看最低成本的下一步,你將無法繞過障礙。

你有它。 H告訴你到達該節點實際花了多少時間; G是你必須走多遠的估計。 如果你只考慮了G,那么你就會選擇離目標最近的路徑,即使它花了很長時間才到達那個節點。 這就是你使用F(= H + G)的原因,所以當你第一次達到目標時,你知道它是最短路徑的那個。

現在,如果您有無限數量的路徑,那么嘗試找到最佳路徑可能是個問題。 或者您的路徑生成算法可能有問題(例如,導致您重新考慮路徑)。 由於你沒有提供更多關於這個問題的細節,我不能說更多可能有用的東西。

然后,你可能會有一個糟糕的(或更糟糕的,不允許的)啟發式功能......

暫無
暫無

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

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