
No.3ベストアンサー
- 回答日時:
辺に重みのあるグラフを考えると, その上の最長経路問題は「辺の重みの正負をすべて入れ替えたグラフでの最短経路問題」になりますよね?
で, 得られたグラフには重みが負の辺もあるのでダイクストラ法は使えないんだけど, 閉路を持たないことは仮定されているのでベルマン・フォードを使えば最短経路 (= 元のグラフにおける最長経路) が分かります.
Tacosanさん、わかりました。
最短経路探索は貪欲法のダイクストラ法しか知らなかったので、失礼しました。
どうもありがとうございます!
No.2
- 回答日時:
ごめん, 間違えた. フローは関係なく, ただの最短経路問題です. うろ覚えで書くと, やっぱりよくないなぁ.
で, #1 のように変換するとダイクストラ法は使えないはずです. というのは, ダイクストラ法は「負の重みの辺が存在しない」ことに依存しているのですが, #1 の変換ではどう考えても負の重みの辺ができてしまいます.
ただし, 今考えているグラフは閉路を持たないことが分かっているので, 最短経路を求めることは可能です. そして, 始点と終点は 1つずつなのでベルマン・フォード (これと混同してた) で最短経路を求めることができます.
Tacosanさん御回答ありがとうございます。
すみません。ちょっと混乱してしまって。
辺の重みを全て負数に置き換えると、質問の条件では、最長経路問題が最短経路問題に置き換えられ、ベルマン・フォード法が有効ということですか?
最大フロー=クリティカルパスなのかと思いましたが、そういう訳では。。
No.1
- 回答日時:
「ノードに重みがある」というのは「そのノードに入る辺に重みがある」ように変形することができます. たとえば, ノードa の重みが 3 なら, ノードa に入るすべての辺の重みを 3 とします. スタートノードが 1個だけなら, 必ずそこを通る関係上その重みは無視することができます. スタートノードが複数あるなら, そのようなすべてのノードへの辺を持つ重み 0 のノードを追加すれば OK.
これで「辺に重みのあるグラフ」に変形できるので, そのすべての辺の重みの符号を逆にして最短経路を求める. フルカーソン・フォードでも使うか. これなら最悪ノード数の 3乗に比例する実行時間.
Tacosanさん御回答ありがとうございます。
>「辺に重みのあるグラフ」に変形できるので, そのすべての辺の重みの符号を逆にして最短経路を求める.
これは、質問の条件内であれば、ダイクストラ法でも求められるということでしょうか?
>フルカーソン・フォードでも使うか.
知らなかったのでググってみました。ありがとうございます。
つまり、自分の質問は、最長経路問題ではなく、最大フロー問題なのですね。
正当性がわからなかったのですが、これでなんとかなりそうです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 数学 グラフ理論の数学の問題です。このタイプの問題は初めて見たので、どうやって解けばいいかわからないです。 1 2023/05/27 19:09
- 数学 グラフ理論の用語について 1 2022/09/16 19:50
- 地図・道路 大津ICから161号線に入り高島市方面へ向かう入口 2 2022/06/22 16:08
- 小学校 迷路を解いてください!! この問題どうしても、うまく出来なくてクリア出来る方よろしくお願い申し上げま 1 2022/09/25 12:46
- 数学 『◯と●の帰納法』 2 2023/04/19 20:57
- 計算機科学 これは迷路を解くというよりも、いかに速く最速で走り切れる経路を見出せるかや、マシン性能、プログラミン 3 2023/07/17 16:27
- 数学 問題:点Aから点Bまでの最短経路は全部で何通りあるか。ただし、斜線部分は通れないものとする。 解説: 4 2023/02/24 11:44
- 陸上 箱根駅伝は、往路優勝、復路優勝、総合優勝とありますよね?総合優勝は総合タイムで決定します。 中央大学 6 2023/01/03 12:34
- 物理学 無限に長い導体円筒の問題です。 (1)この導体円筒の単位あたりの静電容量を求めよ。 (2)内外の導体 1 2023/05/30 23:49
- その他(IT・Webサービス) 乗換案内(区間の一部を指定して有料特急を使用する検索) 4 2023/06/25 22:26
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
画像生成AIのプロンプトの作り...
-
Geminiフォーム 画像生成で 人...
-
vba クリップボードクリアにつ...
-
pip --versionがエラーになる
-
pythonの実行に関する質問
-
Python... 環境設定 初心者です...
-
OS入ってる機器のソフト・アプ...
-
Python 3.12.2 か一番最新のパ...
-
CSVファイルの複数行削除
-
数学、プログラミング、物理、...
-
パイソンのソースコードをChatG...
-
アセンブリ言語について。
-
AIの登場でプログラマーたちが...
-
VBAでパワーシェルを実行したい...
-
Google ColaboでGUI作成
-
アルゴリズムとコードとは何で...
-
プログラミングのやり方ざっく...
-
python言語について。
-
MOVEコマンドでサブフォルダー...
-
pythonについて(初心者です)
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
CPUの考え方を教えてください ...
-
ルート要素ノードが2個ある場合?
-
SNMP リンクダウンとノードダ...
-
あるノードリストに、特定の名...
-
同じタグ名の項目取得
-
C#でTreeViewのCheckBoxのサイ...
-
TreeView の初期表示について
-
昔Winnyってありましたけど、あ...
-
ノードとは
-
複数のマックPCによる数値計算...
-
C# TreeView 効率良いノード追...
-
TreeViewで複数ノードの選択は...
-
vbsのDOMDocumentで要素のText...
-
ツリービューのノードをダブル...
-
TreeViewに重複する値をセット
-
ToolStripMenuItemの選択(VB)
-
各ノードの行数取得
-
VB2005 TreeViewの任意ノード選択
-
TreeViewのノードの編集結果が...
-
TreeVIewのノード名を編集する...
おすすめ情報