私は、問題に対する最短経路または最適/最適解を見つけるための多くのアルゴリズムとアプローチを発見しました。しかし、私がしたいのは、ある点から別の点までの最初のK最短経路を見つけるアルゴリズムです。私が直面している問題は、各ステップであなたが取るときに、その重みを持つ複数のオプションがあるときに、木を探索するようなものです。どのような種類のアルゴリズムがこの種の問題に対処するために使用されていますか?Kファーストショートパスアルゴリズムの検索
答えて
ホセ・サントス によるthe 2006 paperがあり、3つの異なるK最短経路探索アルゴリズムを比較しています。
円のアルゴリズムの実装: http://code.google.com/p/k-shortest-paths/
簡単なアルゴリズム&議論: Suggestions for KSPA on undirected graph
編集:私は、私は新しい質問に答えていたと思ったので、どうやら私は、リンクをクリックしました。非常に可能性が高いので、これを無視してください。この質問はあなたにとって重要ではありません。
問題の制限されたバージョンでは、これは実装するのがはるかに簡単になります。注意すべき最も重要なことは、ツリーでは、最短パスが2つのノード間の唯一のパスであることです。だから、あなたはn
BFS traversalsを実行して、ツリー内のO(n²)
であるすべてのペアの最短パスを解決してから、k
の最小値を取得します。これはおそらく何らかの方法で最適化することができますが、これを行うための素朴なアプローチは、O(n² log n)
時間でO(n²)
の距離を並べ替えて、k
の値を最小にすることです。いくつかの本を保つことで、時間の複雑さのオーバーヘッドなしに、どの距離がどのパスに対応しているかを把握することができます。これにより、O(n²)
可能なs-t-pairにKSPAアルゴリズムを使用するよりも複雑になります。
あなたが実際にソースを固定し、そのソースからの距離が最小のk
ノードを取得している何を意味するのか、1 BFSが行います場合。ソースとターゲットの両方を修正することを意味する場合は、1つのBFSでも十分です。
私はあなたが下のレベルのノードからノードへ行くすべてのエッジがツリーの構造についての詳細を知らなくても、同じ重みを持っているという事実をどのように使用できるか表示されません。
- 1. k-meansのグリッド検索
- 2. k-Nearest Neighbor VS類似性検索
- 3. k個未満の文書が検索されるときの精度k
- 4. k-ary検索の平均比較がk * ln(N)/ ln(k)であるのはなぜですか?
- 5. kの最初の出現のバイナリ検索
- 6. バイナリ検索ツリーのK個の最小要素の合計
- 7. 最近のネイバー検索k-dツリーなしのPython
- 8. k&rからのテーブル検索インストール機能
- 9. 最も近いk個の要素を検索する
- 10. k-dツリー内のアイテムを検索する
- 11. K倍検証とランダムサンプリングk回
- 12. .NETの辞書をオーバーライドする方法<K,V>配列検索 '[]'?
- 13. IntelliJでjとkを使って検索結果をナビゲートできますか?
- 14. GLMMのk倍交差検証
- 15. dplyrのk倍交差検証?
- 16. 検索用の検索バー
- 17. 検索コンテナの検索ボックス
- 18. 検索コントローラの検索バーオーバーラップステータスバー
- 19. Selenium python webdriver、検索バーの検索、値と検索の入力
- 20. 弾性検索クエリの検索、_sourceで検索する方法
- 21. Marklogic検索:ハイフン( - )を含む検索語での検索問題
- 22. Azureの検索、部分的な検索による検索
- 23. Windows 8.1アプリ内検索コントロールと検索ペイン(チャームの検索)?
- 24. リーフレット検索アドレスで検索
- 25. joomla検索ページ検索エンジンフレンドリー
- 26. LinkedIn API検索ウィジェットアドバンスド検索
- 27. 検索履歴アンドロイドクイック検索
- 28. ストアドプロシージャ検索弾性検索
- 29. 弾性検索検索フロントエンドデモ
- 30. ワードプレスの検索コードの検索コード
私が見る限り、最短経路探索アルゴリズムで提案されている解決策は、一般的にグラフを扱っています。しかし、私が直面していることは、各ステップで、同じレベルのすべてのノードに対して同じオプション(同じ重みを持つ)を取る、ツリー内の最短パスを見つけることに関連しています。 – Fungsten