A* のロジックを変更して、最短パス (つまり、コストが最小のパス) を見つけるのではなく、最も有用なパス (つまり、ゲインが最大のパス) を見つけようとしているとします。
私の場合、ゴールは一意の終了ノードとして固定されていません。B
ノードは、開始点からの距離を持つ任意のノードとして定義されます。
通常のバージョン (「最短経路の検索」) では、コストを過大評価しないようにする必要があります (つまり、実際のコスト以下のヒューリスティックを見つける)。
代わりに私の修正版 (「最も有用なパスを見つける」) では、エッジはコストではなくユーティリティでタグ付けされており、最大の B エッジを通過するという制約を考慮して、最終的なゲインを最大化したいと考えています。A* を機能させるには、効用を過大評価する (つまり、実際の効用以上のヒューリスティックを見つける) 必要がありますか?
編集:より形式化された、みましょう
f(n) = g(n) + h(n)
ノードのユーティリティであり、以下によって構成されます。
g(n)
: 開始ノードから移動するときに得られるものn
h(n)
: ヒューリスティック、つまり、n
ゴール (ゴールとは、開始点からの距離が であるノード)B
に到達するときに得られるものの推定値
最適なパスを特定するには、h(n)
過大評価して最大化する必要がありますか?f(n)
これは予算であり、完全に使用できることに注意してください。つまり、歩数B
よりも短い経路を見つける必要はありません。B