重みが最小となる閉路を求めるアルゴリズム
アルゴリズム
v から u への最短経路 d を求める(ダイクストラ/BFS など)
d+cost(u, ...
最小コストの閉路:
任意の辺 e = (u,v) について以下を繰り返すグラフ G から e を取り除くv から u への最短経路 d を求める(ダイクストラ/BFS など)
d+cost(u, ...
ワーシャル・フロイド法での全点対最短経路を求めるアルゴリズム
任意の2頂点間の最短距離を求める問題を全点対最短経路問題といいます。
ワーシャル・フロイド法は、動的計画法を用いて全点対最短経路を求める有名なアルゴリズムです。
負の辺が含まれていても動作する負の閉路がある場 ...
プリム法による最小全域木を求めるアルゴリズム
無向グラフ \(G=(V,E)\) について、\(G\) の部分グラフ \(T\) が以下を満たす時、\(T\) は全域木(Spanning Tree) と言います。
\(T\) は木\(T\) では\(V\) の任意の ...
クラスカル法による最小全域木を求めるアルゴリズム
無向グラフ \(G=(V,E)\) について、\(G\) の部分グラフ \(T\) が以下を満たす時、\(T\) は全域木(Spanning Tree) と言います。
\(T\) は木\(T\) では\(V\) の任意の ...
グラフの2頂点が同じ連結成分に属するか判定するアルゴリズム
連結成分とは、「任意の2頂点間にパスが存在するような部分グラフのうち極大なもの」のことを言います。
グラフ \(G=(V,E)\) 上の2頂点 \(u,v\) が同じ連結成分に属しているか判定するアルゴリズムについてです。 ...
グラフの連結成分の個数を求めるアルゴリズム
連結成分とは、「任意の2頂点間にパスが存在するような部分グラフのうち極大なもの」のことを言います。
連結成分は3つアルゴリズムグラフ \(G=(V,E)\) の連結成分の個数を数えるアルゴリズム:
「未探索」 ...フローネットワークの最小カットの容量を求めるアルゴリズム
アルゴリズム
\(|f^*|\) が最小カットの容量
最小カットの容量を求めるアルゴリズム:
フローネットワーク \(G=(V,E)\) の最大フロー \(f^*\) の値 \(|f^*|\) を求める\(|f^*|\) が最小カットの容量
...
二部グラフの最大マッチングを求めるアルゴリズム
アルゴリズム
二部グラフの最大マッチングを求めるアルゴリズム:
二部グラフ \(G=(L \cup R, E)\) に対応する以下のようなフローネットワーク \(G’\) を作る\(G\) にソース \(s\) ...Ford-Fullkerson法による最大フローの値を求めるアルゴリズム
アルゴリズム
ソース(入口) からシンク(出口)までの増加可能経路 \(p\) が残余ネットワーク \ ...
最大フローを求めるアルゴリズム(Ford-Fullkerson法):
フロー \(f\) を 0 としてはじめるソース(入口) からシンク(出口)までの増加可能経路 \(p\) が残余ネットワーク \ ...
フローネットワークの基礎と用語の定義
フローフローとフローネットワーク
関数 \(f : V×V \rightarrow \mathbb{R}\)で表現されるフローは、以下の特徴を持つ重み付き有向グラフ(フローネットワーク) \(G=(V,E)\) 上で定義されます。