- ベストアンサー
グラフ構造のアルゴリズムによる頂点間の最短距離の計算方法と解法
- グラフ構造のアルゴリズムを使用して、頂点間の最短距離を求める問題の解法と手順を解説します。
- 具体的には、ダイクストラ法などのアルゴリズムを利用することで、頂点間の最短距離を効率的に計算することができます。
- 提供された具体的な情報を元に、頂点間の最短距離の値を求める問題について、具体的な解答方法を示します。
- みんなの回答 (7)
- 専門家の回答
質問者が選んだベストアンサー
dk+1(i,j)とdk(i,j)の違いを考えると寄り道できる制約がvk+1の点だけ緩くなったわけです。なので少なくともdk+1(i,j)≦dk(i,j)が成立する。 viからvjに行く間にvk+1を通った場合の最短距離はdk(i,k+1)+dk(k+1,j)。ゆえにdk+1(i,j)=min(dk(i,j),dk(i,k+1)+dk(k+1,j))となる。この左辺が与えられていればdk+1(i,j)が求まる。 以上。勘違いしてるかな?
その他の回答 (6)
- Tacosan
- ベストアンサー率23% (3656/15482)
あ, 本当だ. それは気づかなかった>#5.
- MagicianKuma
- ベストアンサー率38% (135/348)
問題が変ではないかい? d6(1,2)=3でd6(2,3)=5ならv1からv3への最短は8以下になるはず。なのにd6(1,3)=12???
- Tacosan
- ベストアンサー率23% (3656/15482)
そんな感じです.
お礼
わかってきました。ありがとうございます!!
- Tacosan
- ベストアンサー率23% (3656/15482)
ごめん, ちょっと考えたらそこにある数値をそのまま辺の重みにしていいような気がしてきた.
補足
もしかしたら、d7(1,10) = d6(1,10) or d6(1,7)+d6(7,10) みたいな感じになりませんか??そういうことですかね?
- Tacosan
- ベストアンサー率23% (3656/15482)
「重みの制限」ってのは, 主に「負の重みは許されているのか」ってところで問題になりうるんで確認してみました. もちろん, 整数だけなのかそれとも任意の実数が許されるのかによっても難しさ (というか面倒くささ) が違う可能性もあるんだけど. で「元のグラフを復元できるかどうか」ですが.... もちろん完全な復元はできませんが, 「ここに挙がっている数値と矛盾のないようなグラフ」は作れる可能性があります. 例えば, 距離が ∞ になっているような 2頂点は隣接していないことが確定します. さらに, 「v1~v6 でできる誘導部分グラフ」においては ・v4 は他のいずれの頂点とも連結していない ・vi から vj への最短路は「(隣接していれば) 直接行く」ルートか「vi から vk への最短路に vk から vj への最短路をつないだ」ルートかのいずれか なので, これらの情報を駆使することでグラフが作れるかもしれません.
- Tacosan
- ベストアンサー率23% (3656/15482)
「お手数お欠けしますが」ってどういうことだろう. 「元のグラフを復元しろ」ってことかなぁ.... とりあえず v1~v6 についてはグラフが作れそうだけど.... あ, 重みに制限はありますか?
補足
すみません....誤字に気付きませんでした。 重みに制限はないです。 元のグラフを復元するって、与えられた最短経路の情報は途中どの経路を通ったかわからないのに、できるんですか?
お礼
なるほど!すごくすっきりわかりました!! ありがとうございました!!