
No.3ベストアンサー
- 回答日時:
辺に重みのあるグラフを考えると, その上の最長経路問題は「辺の重みの正負をすべて入れ替えたグラフでの最短経路問題」になりますよね?
で, 得られたグラフには重みが負の辺もあるのでダイクストラ法は使えないんだけど, 閉路を持たないことは仮定されているのでベルマン・フォードを使えば最短経路 (= 元のグラフにおける最長経路) が分かります.
Tacosanさん、わかりました。
最短経路探索は貪欲法のダイクストラ法しか知らなかったので、失礼しました。
どうもありがとうございます!
No.2
- 回答日時:
ごめん, 間違えた. フローは関係なく, ただの最短経路問題です. うろ覚えで書くと, やっぱりよくないなぁ.
で, #1 のように変換するとダイクストラ法は使えないはずです. というのは, ダイクストラ法は「負の重みの辺が存在しない」ことに依存しているのですが, #1 の変換ではどう考えても負の重みの辺ができてしまいます.
ただし, 今考えているグラフは閉路を持たないことが分かっているので, 最短経路を求めることは可能です. そして, 始点と終点は 1つずつなのでベルマン・フォード (これと混同してた) で最短経路を求めることができます.
Tacosanさん御回答ありがとうございます。
すみません。ちょっと混乱してしまって。
辺の重みを全て負数に置き換えると、質問の条件では、最長経路問題が最短経路問題に置き換えられ、ベルマン・フォード法が有効ということですか?
最大フロー=クリティカルパスなのかと思いましたが、そういう訳では。。
No.1
- 回答日時:
「ノードに重みがある」というのは「そのノードに入る辺に重みがある」ように変形することができます. たとえば, ノードa の重みが 3 なら, ノードa に入るすべての辺の重みを 3 とします. スタートノードが 1個だけなら, 必ずそこを通る関係上その重みは無視することができます. スタートノードが複数あるなら, そのようなすべてのノードへの辺を持つ重み 0 のノードを追加すれば OK.
これで「辺に重みのあるグラフ」に変形できるので, そのすべての辺の重みの符号を逆にして最短経路を求める. フルカーソン・フォードでも使うか. これなら最悪ノード数の 3乗に比例する実行時間.
Tacosanさん御回答ありがとうございます。
>「辺に重みのあるグラフ」に変形できるので, そのすべての辺の重みの符号を逆にして最短経路を求める.
これは、質問の条件内であれば、ダイクストラ法でも求められるということでしょうか?
>フルカーソン・フォードでも使うか.
知らなかったのでググってみました。ありがとうございます。
つまり、自分の質問は、最長経路問題ではなく、最大フロー問題なのですね。
正当性がわからなかったのですが、これでなんとかなりそうです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
vba 正規表現について教えてく...
-
プログラム言語
-
pythonでのローカルファイルか...
-
if関数とは?
-
画像生成AIのプロンプトの作り...
-
CSVファイルの複数行削除
-
vba クリップボードクリアにつ...
-
プログラミングについて
-
今のプログラミング言語
-
自作scratch アニメの商用利用
-
OS入ってる機器のソフト・アプ...
-
Geminiフォーム 画像生成で 人...
-
pythonの実行に関する質問
-
uwscでPauseキーが押されたら、...
-
数学、プログラミング、物理、...
-
pip --versionがエラーになる
-
COPYコマンドで、最後に1文字...
-
ネットワークフォルダの中身を...
-
Python... 環境設定 初心者です...
-
パイソンのソースコードをChatG...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
CPUの考え方を教えてください ...
-
ルート要素ノードが2個ある場合?
-
SNMP リンクダウンとノードダ...
-
昔Winnyってありましたけど、あ...
-
C#でTreeViewのCheckBoxのサイ...
-
ノードとは
-
ツリービューのノードをダブル...
-
同じタグ名の項目取得
-
あるノードリストに、特定の名...
-
TreeView の初期表示について
-
TreeVIewのノード名を編集する...
-
TreeViewで複数ノードの選択は...
-
複数のマックPCによる数値計算...
-
C# TreeView 効率良いノード追...
-
TreeViewに重複する値をセット
-
2分探索木の高さを求めるプロ...
-
Ciscoルータやスイッチを使用し...
-
各ノードの行数取得
-
VB2005 TreeViewの任意ノード選択
-
4色定理はなぜグラフ理論で証...
おすすめ情報