1

強く接続された有向グラフがあり、すべてのノードに価格(プラスまたはマイナス)があります。ノード A からノード B への最良の (最高スコア) パスを見つけたいと思います。これに対するアルゴリズムはありますか、それともどうすればよいのでしょうか?

4

1 に答える 1

0

A* アルゴリズムを試しましたか?

これはかなり一般的な経路探索アルゴリズムです。アルゴリズム自体の実装はそれほど難しくありませんが、オンラインで入手できる実装はたくさんあります。

ダイクストラのアルゴリズムは、A* (ヒューリスティック関数 h(x) = 0) の特殊なケースです。

それよりも優れたパフォーマンスを発揮するアルゴリズムは他にもありますが、通常はグラフの前処理が必要です。問題がそれほど複雑ではなく、迅速な解決策を探している場合は、試してみてください。

編集:

負のエッジを含むグラフには、Bellman–Fordアルゴリズムがあります。ただし、負のサイクルを検出すると、パフォーマンスが犠牲になります (A* よりも悪い)。ただし、現在使用しているものよりも優れている可能性があります。

編集2:

ユーザー @templatetypedef は、Bellman-Ford アルゴリズムがここでは機能しない可能性があると述べています。

BF は、負の重みを持つエッジがあるグラフで機能します。ただし、アルゴリズムは負のサイクルを見つけると停止します。これは有用な動作だと思います。負の重みのサイクルを含むグラフで最短経路を最適化することは、ペンローズの階段を下りるようなものです。

「負の無限コスト」でパスに到達する可能性がある場合にどうなるかは、問題によって異なります。

于 2013-10-26T19:06:41.640 に答える