私は、旅行者がある距離をグラフで移動でき、すべての双方向エッジがある長さ(距離)を持つ問題を発見しました。特定のエッジ(いずれかの方向)を走行すると、あなたはあなたが旅行することができます与えられた距離のために収集することができる最大のお金を見つける必要があるので、いくつかのお金/ギフト(それはすべてのエッジのために問題になっている)を得ると仮定する。基本的な問題は、与えられた距離(グラフ内にループが存在する可能性があります)で可能なすべてのパスを見つける方法と、すべての可能なパスを見つけた後、収集される最大金額のパスが単純に答えになることです。注:考えられる可能性のあるパスは、ループ(直線パス)を持たないようにしてください。グラフ理論、与えられた距離を持つすべてのパス
0
A
答えて
0
エッジ(距離と報酬)に二重重みを持つ無向グラフが与えられます。 可能な距離に対応する固定数dが与えられます。
ノードの各対(u、v)は、uがVに等しい、あなたがその合計距離dはない繰り返すノードとuとvとを結ぶ
- すべてのパス{P_j}を探していないため。
- 報酬が最大である{P_j}の部分{P_hat(j)}の部分集合。
最初に取得するには、Floyd-Warshallアルゴリズムの修正バージョンを使用します。ここでは、最短ではなく、任意のパスを探します。 Floyd-Warshallは、uとvの間の「中間ノード」wを考慮した戦略を使用し、uとvの距離を最小限にするパスを再帰的に見つけます。
すべてのパスを除外inf
距離行列に既に訪問しているノードを実行時に除外し、距離がdよりも長いか、最後に到達する(uとvを結ぶ)再帰の部分パスをすべて除外します。距離がdよりも短い。
この2番目の場合のように、常に1つの値dの代わりに可能な間隔[d、D]が与えられれば一般化できます。空のセットが常に得られます。
2番目の手順では、最初の手順の解決で見つかった各パスの報酬を単純に比較して、最適なものを取るだけです。
完全な回答ではなく、より多くの方向性がありますが、それが助けてくれることを願っています!
関連する問題
- 1. 与えられたハミング距離内のすべての文字列を生成
- 2. 与えられた点から双曲線までの距離
- 3. 与えられたリストでユークリッド距離を計算する
- 4. libgdx BOX2D体 - 与えられた力やスピード、距離や時間
- 5. 与えられたLatitudeに参加距離ベース/経度
- 6. PythonのLevenshtein距離は編集距離として1だけ与えます
- 7. 与えられたPR_SEARCH_KEYを持つすべてのメッセージを見つける
- 8. 距離で並べ替え
- 9. 与えられた数のノードとエッジを持つグラフを見つけるアルゴリズム
- 10. ある与えられた点からの距離に沿った線の中間点を見つける
- 11. グラフ理論(ソーシャルネットワーク分析)の最小パス
- 12. 与えられたランダムなパスを使ってグラフを作成する
- 13. django与えられたparent_idを持つすべての子を取得する
- 14. 計算距離与えられた2点を、緯度と経度
- 15. 与えられたセットのすべてのノードに触れている無向グラフのすべてのパスを見つける方法
- 16. 最短経路が与えられている距離変換画像
- 17. TestNG:与えられたパスですべてのテストを実行する
- 18. 距離でセルを並べ替える
- 19. 座標のセットが与えられた場合、最大距離を見つける(ステップを使用)
- 20. ポイントが2つの他のポイント、角度、および距離を与えられた
- 21. 2つのポイント間の距離と距離が最も離れています
- 22. matlabで別のグラフから1つのグラフの距離を求める
- 23. 距離で並べ替えるテーブルビュー
- 24. 与えられた2部グラフからすべての完全な2部グラフを求める。
- 25. グラフ内の2つのノード間の距離を維持する方法は? C++
- 26. 与えられたワールド座標(uniform)とGLSLで表示されている現在のピクセルとの距離?
- 27. 与えられたライン関数からローリングウインドウの二乗和の距離を計算するアルゴリズム
- 28. Java - 与えられた座標、方位、距離から2番目の座標を計算する
- 29. 中心から距離、角度を与えられた座標を生成する
- 30. カスタム距離メトリックを持つ 'KDツリー'
開始ノードと終了ノードが与えられているか、最適化する必要がありますか? – SeF
は指定されていません。パス長に問題の番号が与えられているすべての送信元と送信先に対して最適化してください。 –