問題のフローネットワーク:各人間(r i )は猫(w i 1)および/または犬(w i 2)を飼うことを希望する。ただし、各ペット(p i )は、特定の人間グループに対してのみ好みを持っている。ペットと人間の組み合わせで、ペットがそれぞれ好みの人間グループに最大数だけ飼われるような組み合わせを見つけよ。 最適化理論 において、最大流量問題とは、 流量ネットワーク を通して可能な限り最大の流量が得られるような、実現可能な流量を見つけることである。
最大フロー問題は、循環問題 などのより複雑なネットワークフロー問題の特殊なケースと見なすことができます。最大フロー最小カット定理で述べられているように、stフロー(つまり、ソース sからシンクtへの フロー) の最大値は、ネットワーク内のstカット (つまり、sとtを分離するカット)の最小容量に等しくなります。
歴史 最大流量問題は、1954年にTEハリス とFSロスによって、ソ連の鉄道交通流の簡略化モデルとして初めて定式化された。[ 1 ] [ 2 ] [ 3 ]
1955年、レスター・R・フォード・ジュニア とデルバート・R・フルカーソンは、 最初の既知のアルゴリズムであるフォード・フルカーソン・アルゴリズム を作成した。[ 4 ] [ 5 ] 1955年の論文[ 4 ]で、フォードとフルカーソンは、ハリスとロスの問題は次のように定式化されると書いた( [ 1 ]の 5ページを参照 )。
複数の中間都市を経由して2つの都市を結ぶ鉄道網を考えます。この鉄道網の各リンクには、その容量を表す数値が割り当てられています。定常状態を仮定して、一方の都市から他方の都市への最大輸送量を求めなさい。
1962年に出版されたフォードとフルカーソンの著書『ネットワークにおける流れ』 [ 5 ]では、次のように書かれている。
これは1955年の春にTEハリスによって著者らに提起されたもので、ハリスはFSロス将軍(退役)と共同で鉄道交通の流れの簡略化されたモデルを策定し、この特定の問題をモデルによって示唆された中心的な問題として特定した[11]。
ここで[11]は、ハリスとロスによる1955年の秘密報告書「鉄道の正味容量を評価する方法の基礎」 [ 3 ] ([ 1 ]の 5ページを参照 )を指している。
長年にわたり、最大フロー問題に対するさまざまな改良された解法が発見されてきました。特に、EdmondsとKarp、およびDinitzによる最短増加パスアルゴリズム、Dinitzのブロッキングフローアルゴリズム、Goldberg とTarjan のプッシュリラベルアルゴリズム 、GoldbergとRaoのバイナリブロッキングフローアルゴリズムなどが挙げられます。Sherman [ 6 ] とKelner、Lee、Orecchia、Sidford [ 7 ] [ 8 ] のアルゴリズムは、それぞれ近似的に最適な最大フローを見つけますが、無向グラフでのみ機能します。
2013年にジェームズ・B・オーリン は、O ( | V | | E | ) {\displaystyle O(|V||E|)} アルゴリズム。[ 9 ]
2022年、Li Chen、Rasmus Kyng、Yang P. Liu、Richard Peng、Maximilian Probst Gutenberg、およびSushant Sachdevaは、ほぼ線形時間 で動作するアルゴリズムを発表しました。O ( | E | 1 + o ( 1 ) ) {\displaystyle O(|E|^{1+o(1)})} 最小コストフロー 問題(最大フロー問題はその特殊なケースである)については、[ 10 ] [ 11 ] 負の重みを持つ単一始点最短経路(SSSP)問題 (最小コストフロー問題の別の特殊なケース)についても、ほぼ線形時間で実行されるアルゴリズムが報告されている。 [ 12 ] [ 13 ] 両方のアルゴリズムは、2022 年のコンピュータサイエンスの基礎に関するシンポジウム で最優秀論文とみなされた。[ 14 ] [ 15 ] Chen らによる 2022 年のアルゴリズムの非ランダム化バージョンが、2023 年のコンピュータサイエンスの基礎に関するシンポジウムで発表され[ 16 ] 、 最小コスト フローはほぼ線形時間で決定論的に解けることが実証された。
意味 ソースs とシンクt を持つフローネットワーク。エッジの横にある数字は容量を表します。まず、いくつかの表記法を確立します。
させてN = ( V 、 E ) {\displaystyle N=(V,E)} フローネットワークであるs 、 t ∈ V {\displaystyle s,t\in V} 源であり、シンクであるN {\displaystyle N} それぞれ。 もしg {\displaystyle g} は、エッジ上の関数です。N {\displaystyle N} するとその値は( u 、 v ) ∈ E {\displaystyle (u,v)\in E} は、g u v {\displaystyle g_{uv}} またはg ( u 、 v ) 。 {\displaystyle g(u,v).} 定義。 エッジの容量とは、エッジを通過できる最大フロー量のことです。正式にはマップです。 c : E → R + 。 {\displaystyle c:E\to \mathbb {R} ^{+}.}
定義。 フローと は地図のことである。f : E → R {\displaystyle f:E\to \mathbb {R} } 以下の条件を満たすもの:
容量制約 。エッジのフローはその容量を超えることはできません。つまり、次のようになります。f u v ≤ c u v {\displaystyle f_{uv}\leq c_{uv}} すべての人々のために( u 、 v ) ∈ E 。 {\displaystyle (u,v)\in E.} 流量保存則。 あるノードに入る流量の合計は、そのノードから出る流量の合計と等しくなければならない。ただし、ソースとシンクは除く。または:∀ v ∈ V ∖ { s 、 t } : ∑ u : ( u 、 v ) ∈ E 、 f u v > 0 f u v = ∑ u : ( v 、 u ) ∈ E 、 f v u > 0 f v u 。 {\displaystyle \forall v\in V\setminus \{s,t\}:\quad \sum _{u:(u,v)\in E,f_{uv}>0}f_{uv}=\sum _{u:(v,u)\in E,f_{vu}>0}f_{vu}.} 注記 :流れは歪対称です。f u v = − f v u {\displaystyle f_{uv}=-f_{vu}} すべての人々のために( u 、 v ) ∈ E 。 {\displaystyle (u,v)\in E.}
定義。 流量の値 とは、ソースからシンクへ流れる流量のことです。正式には、流量はf : E → R + {\displaystyle f:E\to \mathbb {R} ^{+}} それは次のように与えられます。
| f | = ∑ v : ( s 、 v ) ∈ E f s v = ∑ u : ( u 、 t ) ∈ E f u t 。 {\displaystyle |f|=\sum _{v:\ (s,v)\in E}f_{sv}=\sum _{u:\ (u,t)\in E}f_{ut}.} 定義。 最大流量問題 とは、可能な限り多くの流量を供給源から排出源へ流すこと、つまり流量を求めることである。f 最大 {\displaystyle f_{\textrm {max}}} 最大値で。
複数の最大フローが存在する可能性があることに注意してください。フローの任意の実数値(または任意の有理数値)が許容される場合(整数だけでなく)、最大フローはちょうど 1 つ存在するか、または無限に存在します。これは、基本となる最大フローの線形結合が無限に存在するためです。言い換えれば、送信する場合x {\displaystyle x} 端にある流れの単位u {\displaystyle u} 1つの最大流量で、y > x {\displaystyle y>x} 流量の単位u {\displaystyle u} 別の最大流量では、各Δ ∈ [ 0 、 y − x ] {\displaystyle \Delta \in [0,yx]} 送ることができますx + Δ {\displaystyle x+\Delta } ユニットu {\displaystyle u} そして、残りのエッジに沿って流れを適切にルーティングして、別の最大流量を得る。流量の値が任意の実数または有理数である場合、そのような値は無限に存在する。Δ {\displaystyle \Delta } 各ペアの値x 、 y {\displaystyle x,y} 。
アルゴリズム 以下の表は、最大フロー問題を解くためのアルゴリズムの歴史的発展を示しています。掲載されている多くの論文には、先行研究との比較結果を示す同様の表が含まれています。
強多項式 強多項式時間 アルゴリズムは、入力の数のみに依存し、これらの数の大きさには依存しない多項式時間境界を持ちます。ここで、入力は頂点(以下、として番号付けされています)です。V {\displaystyle V} )とエッジ(番号はE {\displaystyle E} 各アルゴリズムの複雑さは、ビッグオー記法 を用いて表されます。
擬似多項式および弱多項式 強多項式フローアルゴリズムの開発と並行して、入力容量の大きさに依存する実行時間を持つ擬似多項式 および弱多項式時間境界が数多く開発されてきた。U {\displaystyle U} これは、すべての容量を整数 値に再スケーリングした後の最大エッジ容量を指します。(ネットワークに無理数 容量が含まれている場合、この再スケーリングは不可能であり、これらのアルゴリズムは正確な解を生成しないか、近似解にさえ収束しない可能性があります。)擬似多項式と弱多項式の違いは、擬似多項式境界が多項式になる可能性があるということです。 U {\displaystyle U} しかし、弱多項式境界の場合、それは の多項式にしかならない。ログ U {\displaystyle \log U} 。
積分流定理 積分流定理は次のように述べている。
フローネットワークの各エッジが整数容量を持つ場合、整数最大フローが存在する。 この主張は、フローの値が整数であること(これは最大フロー最小カット定理から直接導かれる)だけでなく、 すべてのエッジ 上のフローが整数であることも意味する。これは、多くの組み合わせ論的 応用(下記参照)において極めて重要であり、エッジを横切るフローは、そのエッジに対応する項目が求められる集合に含まれるかどうかを符号化する可能性がある。
応用
閉包問題 有向グラフの閉包とは、頂点の集合 C からどの辺も出ないような頂点の集合 C のことである。閉包 問題 とは 、頂点 重み付き有向グラフにおいて、最大重みまたは最小重みの閉包を見つける問題である。この問題は、最大フロー問題への還元を用いることで多項式時間 で解くことができる。
実世界での応用例
野球の敗退 野球の排除問題におけるネットワークフローの構築 野球の 敗者復活問題では、リーグで競うn チームがいます。リーグシーズンの特定の段階で、w i はチーム i の勝利数、r i はチームi の残りの試合数、r ijはチーム j との残りの試合数です。チームは、シーズンを終える見込みがまったくない場合に敗退します。野球の敗者復活問題のタスクは、シーズン中の各時点でどのチームが敗退するかを決定することです。Schwartz [ 44 ] は、この問題を最大ネットワークフローに還元する方法を提案しました。この方法では、チームk が敗退するかどうかを決定するためにネットワークが作成されます。
G = ( V , E )を、s 、t ∈ V をそれぞれソースおよびシンクとするネットワークとする。ゲームノードij を追加する。これは、これら 2 つのチーム間のプレイ数を表す。また、各チームにチームノードを追加し、i < j である各ゲームノード{ i 、j }を V に接続し、 s からそれぞれをエッジで接続する。エッジの容量はr ij であり、これはこれら 2 つのチーム間のプレイ数を表す。また、各チームにチームノードを追加し、各ゲームノード{ i 、 j }を 2 つのチームノード i およびj に接続して、どちらか一方が勝つようにする。これらのエッジのフロー値を制限する必要はない。最後に、チームノードi からシンクノードtへのエッジを作成し、 w k + r k – w i の容量を設定して、チームi が w k + r k より多く勝つことを防ぐ。Sを リーグに参加するすべてのチームの集合とし、
r ( S − { k } ) = ∑ 私 、 j ∈ { S − { k } } 私 < j r 私 j {\displaystyle r(S-\{k\})=\sum _{i,j\in \{S-\{k\}\} \atop i<j}r_{ij}} 。この方法では、ネットワークGにサイズ r ( S − { k })のフロー値が存在する場合に限り、チーム k は 排除されないと主張されています。前述の記事では、このフロー値はsから t への最大フロー値であることが証明されています。
航空便スケジュール 航空業界における大きな課題の一つは、乗務員のスケジュール管理です。航空会社のスケジュール管理問題は、拡張最大ネットワークフロー問題の応用例と考えることができます。この問題の入力は、各フライトの出発地と到着地、および到着時刻に関する情報を含むフライトの集合F です。航空会社のスケジュール管理問題の一つの形式では、最大k人の 乗務員で実行可能なスケジュールを作成することが目標となります。
この問題を解決するために、ネットワークフロー 問題を一般化した、境界付き循環問題と呼ばれる循環問題 の変形版が用いられる。これは、エッジフローに下限という制約が追加されたものである。
G = ( V , E )を、s 、t ∈ V を始点ノードおよび終点ノードとするネットワークとする。各フライトiの始点と終点について、 V に 2 つのノードを追加する。すなわち、フライトi の始点ノードs i と終点ノードd i である。また、 E に次のエッジを追加する。
s と各s i の間に容量[0, 1]のエッジが存在する。各d i とt の間に容量[0, 1]のエッジが存在する。s i とd i の各ペア間に容量 [1, 1] のエッジが存在する。出発地s j がフライトi の目的地から妥当な時間とコストで到達可能な場合、各d i とs j の間に容量 [0, 1] のエッジが存在する。s とtの間に容量[0, ∞ ]のエッジが存在する。上記の方法では、 s とt の間のG におけるk のフロー値を見つけることは、最大でk人の乗務員を持つフライトセット F の実行可能なスケジュールを見つけることと等しいと主張され、証明されている。[ 45 ]
航空会社のスケジュール作成のもう 1 つの方法は、すべてのフライトを実行するために必要な最小限の乗務員を見つけることです。この問題の答えを見つけるために、各フライトがセットA とセットB にコピーを持つ二部グラフG' = ( A ∪ B , E ) が作成されます。同じ飛行機がフライトiの後にフライト j を実行できる場合、i ∈ Aは j ∈ B に接続されます。G ' のマッチングはF のスケジュールを誘導し、明らかにこのグラフの最大二部マッチングは、最小限の乗務員数を持つ航空会社のスケジュールを生成します。[ 45 ] この記事の応用部分で述べたように、最大カーディナリティ二部マッチングは最大フロー問題の応用です。
流通需要問題製品を生産する工場と、その製品を配送する村々がある。これらは道路網で結ばれており、各道路には通過できる最大貨物量c の容量がある。問題は、需要を満たす流通経路が存在するかどうかを見つけることである。この問題は、最大フロー問題に変換することができる。
ソースノードs を追加し、そこから生産能力p i を持つすべての工場ノードf i にエッジを追加します。ここでp iは 工場f i の生産率です。 シンクノードt を追加し、すべての村v i からt へのエッジを容量d i で追加します。ここでd i は 村v i の需要率です。 G = ( V , E ) をこの新しいネットワークとする。需要を満たす循環が存在するのは、以下の条件を満たす場合に限る 。
最大流量値(G ) = ∑ 私 ∈ v d 私 {\displaystyle =\sum _{i\in v}d_{i}} 。循環が存在する場合、最大流量解を調べることで、需要を満たすために特定の道路でどれだけの貨物を輸送する必要があるかという答えが得られる。
この問題は、一部のエッジにおけるフローの下限を追加することで拡張できる。[ 46 ]
画像セグメンテーション 8x8サイズのソース画像。 ビットマップから構築されたネットワーク。ソースは左側、シンクは右側です。エッジが暗いほど、その容量が大きくなります。ピクセルが緑色のときはa i が高く、ピクセルが緑色でないときは b i が高くなります。ペナルティ p ij はすべて同じです。[ 47 ] クラインバーグとタルドスは著書の中で、画像のセグメンテーション アルゴリズムを提示している[48]。彼らは、画像内の背景と前景を検出するアルゴリズムを提示している。より正確には、このアルゴリズムは、以下のようにモデル化されたビットマップを入力として受け取る。a i ≥ 0は ピクセルi が前景に属する可能性、 b i ≥ 0 はピクセルi が背景に属する可能性、 p ij は隣接する2つのピクセルi とj が 一方を前景に、もう一方を背景に配置した場合のペナルティである。目標は、以下の量を最大化するピクセル集合の分割 ( A , B ) を見つけることである。
q ( A 、 B ) = ∑ 私 ∈ A 1 私 + ∑ 私 ∈ B b 私 − ∑ 私 、 j 隣接 | A ∩ { 私 、 j } | = 1 p 私 j {\displaystyle q(A,B)=\sum _{i\in A}a_{i}+\sum _{i\in B}b_{i}-\sum _{\begin{matrix}i,j{\text{ adjacent}}\\|A\cap \{i,j\}|=1\end{matrix}}p_{ij}} 、実際、 A (前景とみなされる)のピクセルについてはa i を獲得し、 B (背景とみなされる)のすべてのピクセルについてはb i を獲得します。隣接する2つのピクセルi とj の間の境界では、 p ij を失います。これは、量を最小化することと同等です。
q ′ ( A 、 B ) = ∑ 私 ∈ A b 私 + ∑ 私 ∈ B 1 私 + ∑ 私 、 j 隣接 | A ∩ { 私 、 j } | = 1 p 私 j {\displaystyle q'(A,B)=\sum _{i\in A}b_{i}+\sum _{i\in B}a_{i}+\sum _{\begin{matrix}i,j{\text{ adjacent}}\\|A\cap \{i,j\}|=1\end{matrix}}p_{ij}} なぜなら
q ( A 、 B ) = ∑ 私 ∈ A ∪ B 1 私 + ∑ 私 ∈ A ∪ B b 私 − q ′ ( A 、 B ) 。 {\displaystyle q(A,B)=\sum _{i\in A\cup B}a_{i}+\sum _{i\in A\cup B}b_{i}-q'(A,B).} ネットワーク上に表示される最小カット値(三角形と円)。 次に、ピクセル、ソース、シンクをノードとするネットワークを構築します(右図参照)。ソースとピクセルiを重み a i のエッジで接続します。ピクセルiとシンクを重み b i のエッジで接続します。ピクセルi とピクセルj を重みp ij で接続します。あとは、このネットワークにおける最小カット(または同等の最大フロー)を計算するだけです。最後の図は最小カットを示しています。
拡張機能 1.最小コストフロー問題 では、各エッジ ( u , v) には容量に加えてコスト係数 auvが あります。エッジを通過するフローが fuv の場合、総 コストは auv fuv となります。与え られ たサイズ d のフローで、コストが最小となるものを見つける必要があります。ほとんどのバリエーションでは、コスト係数は正または負のいずれかになります。この問題には、 さまざまな多項式時間アルゴリズムがあります。
2. 最大フロー問題は、選言制約 によって拡張できます。負の選言制約は 、特定のエッジのペアが同時にゼロ以外のフローを持つことができないことを意味します。正の選言制約は 、特定のエッジのペアにおいて、少なくとも一方がゼロ以外のフローを持つ必要があることを意味します。負の制約がある場合、単純なネットワークであっても、この問題は強いNP困難 になります。正の制約がある場合、分数フローが許容されるときは問題は多項式時間で済みますが、フローが整数でなければならない場合は、強いNP困難に なる可能性があります。 [ 49 ]
参考文献 1 2 3 Schrijver, A. (2002). "輸送問題と最大フロー問題の歴史について". Mathematical Programming . 91 (3): 437– 445. CiteSeerX 10.1.1.23.5134 . doi : 10.1007/s101070100259 . S2CID 10210675 . ↑ Gass, Saul I.; Assad, Arjang A. (2005). "1951年から1956年までのオペレーションズ・リサーチの数学的、アルゴリズム的、専門的発展". オペレーションズ・リサーチの注釈付き年表 . オペレーションズ・リサーチと経営科学に関する国際シリーズ. 第 75巻. pp. 79–110 . doi : 10.1007/0-387-25837-X_5 (2026年7月19日非アクティブ). ISBN 978-1-4020-8116-3 。{{cite book}}: CS1メンテナンス: DOIは2026年7月現在非アクティブです(リンク)1 2 Harris, TE ; Ross, FS (1955). "鉄道の正味輸送能力を評価する方法の基礎" (PDF) . 研究メモランダム . 2014年1月8日に オリジナル (PDF) からアーカイブされました。 1 2 Ford, LR ; Fulkerson, DR (1956). "ネットワークを通る最大フロー" . Canadian Journal of Mathematics . 8 : 399– 404. doi : 10.4153/CJM-1956-045-5 . 1 2 Ford, LR, Jr.; Fulkerson, DR, Flows in Networks , Princeton University Press (1962). ↑ Sherman, Jonah (2013). "ほぼ線形時間でのほぼ最大フロー". 第54回IEEEコンピュータサイエンス基礎シンポジウム論文集 . pp. 263–269 . arXiv : 1304.2077 . doi : 10.1109/FOCS.2013.36 . ISBN 978-0-7695-5135-7 . S2CID 14681906 . ↑ Kelner, JA; Lee, YT; Orecchia, L.; Sidford, A. (2014). "無向グラフにおける近似最大フローのためのほぼ線形時間アルゴリズムとその多商品一般化" (PDF) . 第25回ACM-SIAM離散アルゴリズムシンポジウム議事録 . p. 217. arXiv : 1304.2338 . doi : 10.1137/1.9781611973402.16 . ISBN 978-1-61197-338-9 S2CID 10733914。 2016年3 月3日にオリジナル(PDF) からアーカイブされました。 ↑ Knight, Helen (2014年1月7日). 「新しいアルゴリズムにより、『最大フロー』問題の解法を劇的に効率化できる」 . MITニュース。 2014年2月26日の オリジナルからアーカイブ済み。 2014年 1月8日 取得 。 1 2 Orlin, James B. (2013). "O(nm)時間での最大フロー、またはそれ以上の効率". 第45回ACM理論計算シンポジウム議事録 . pp. 765–774 . CiteSeerX 10.1.1.259.5759 . doi : 10.1145/2488608.2488705 . ISBN 9781450320290 . S2CID 207205207 . 1 2 Chen, L.; Kyng, R.; Liu, YP; Gutenberg, MP; Sachdeva, S. (2022). "ほぼ線形時間での最大フローと最小コストフロー". arXiv : 2203.00671 [ cs.DS ]. ↑ Klarreich, Erica (2022年6月8日). 「研究者らがネットワークフローのための『驚異的に高速な』アルゴリズムを実現」 . Quanta Magazine . 2022年 6月8日 取得 . ↑ Bernstein, Aaron; Nanongkai, Danupon; Wulff-Nilsen, Christian (2022年10月30日). "Negative-Weight Single-Source Shortest Paths in Near-linear Time". arXiv : 2203.03456 [ cs.DS ]. ↑ Brubaker, Ben (2023年1月18日). 「ついに、負のグラフ上の最短経路を求める高速アルゴリズムが登場」 . Quanta Magazine . 2023年 1月25日 取得 . ↑ "FOCS 2022" . focs2022.eecs.berkeley.edu . 2023年 1月25日 取得 . ↑ Santosh, Nagarakatte. "FOCS 2022 最優秀論文賞、Aaron Bernstein 教授の論文" . www.cs.rutgers.edu . 2023 年 1 月 25 日 取得 . ↑ Brand, Jan Van Den; Chen, Li; Kyng, Rasmus; Liu, Yang P.; Peng, Richard; Gutenberg, Maximilian Probst; Sachdeva, Sushant; Sidford, Aaron (2023年11月). "最小コストフローのための決定論的ほぼ線形時間アルゴリズム". 2023 IEEE 64th Annual Symposium on Foundations of Computer Science (FOCS) : 503– 514. Bibcode : 2023focs.conf...38B . doi : 10.1109/FOCS57990.2023.00037 . ISBN 979-8-3503-1894-4 。↑ Edmonds, Jack; Karp, Richard M. (1972年4月)「ネットワークフロー問題におけるアルゴリズム効率の理論的改善」 ACMジャーナル 19 ( 2): 248–264 . doi : 10.1145/321694.321699 . 1969年にアルバータ州カルガリーで開催された国際組合せ構造とその応用に関する会議で以前に発表された(MR 0266680)。 ↑ Dinic, EA (1970). 「電力推定を伴うネットワークにおける最大フロー問題の解法アルゴリズム」 Doklady Akademii Nauk SSSR . 194 : 754– 757. MR 0287976 . ↑ Karzanov, AV (1974). 「プレフロー法によるネットワーク内の最大フローの探索問題」 Doklady Akademii Nauk SSSR . 215 : 49– 52. MR 0343879 . ↑ Čerkasskiĭ, BV (1977). 「労働費をかけたネットワークにおける最大フローの構築アルゴリズム」 O ( n 2 p ) {\displaystyle O(n^{2}{\sqrt {p}})} 行動」。経済問題の解決のための数学的 方法。7 : 117–126。MR 0503654 。 ↑ Malhotra, VM; Kumar, M. Pramodh; Maheshwari, SN (1978). "An O ( | V | 3 ) {\displaystyle O(|V|^{3})} ネットワークにおける最大フローを見つけるためのアルゴリズム (PDF ) 。Information Processing Letters。7 (6 ):277–278。doi :10.1016/0020-0190(78)90016-9。↑ ガリル、ズヴィ (1980)。「 O ( V 5 / 3 E 2 / 3 ) {\displaystyle O(V^{5/3}E^{2/3})} 「最大フロー問題に対するアルゴリズム」Acta Informatica . 14 (3): 221– 242. doi : 10.1007/BF00264254 . MR 0587133 . 予備版、「最大フロー問題のための新しいアルゴリズム」、第19回コンピュータサイエンス基礎に関する年次シンポジウム(FOCS) 、1978年。↑ ガリル、ツヴィ ;アムノン、ナーマド (1980)。 「アン O ( E V ( ログ V ) 2 ) {\displaystyle O{\bigl (}EV(\log V)^{2}{\bigr )}} 「最大フロー問題に対するアルゴリズム」。Journal of Computer and System Sciences . 21 (2): 203–217 . doi : 10.1016/0022-0000(80)90035-5。 1978年に未発表原稿として配布され、1979年に「ネットワークフローと一般化パス圧縮」として第20回コンピュータサイエンス基礎に関する年次シンポジウム(FOCS)で予備的な形で発表された( doi : 10.1145/800135.804394)。↑ シロアチ、ヨッシ。 O ( n 私 ログ 2 私 ) {\displaystyle O(nI\log ^{2}I)} 最大フローアルゴリズム(技術報告書 STAN-CS-78-802)。スタンフォード大学コンピュータサイエンス学科。Galil & Naamad (1980) が引用しているように↑ Sleator, Daniel D. ; Tarjan, Robert Endre (1983). "動的ツリーのためのデータ構造". Journal of Computer and System Sciences . 26 (3): 362– 391. doi : 10.1016/0022-0000(83)90006-5 . MR 0710253 . 予備版、第13回ACM理論計算機科学シンポジウム(STOC) 、1981年、doi : 10.1145/800076.802464↑ Goldberg, AV ; Tarjan, RE (1988). "最大フロー問題への新しいアプローチ" . Journal of the ACM . 35 (4): 921. doi : 10.1145/48014.61051 . S2CID 52152408 . 予備版、第18回ACM理論計算機科学シンポジウム(STOC) 、1986年、doi : 10.1145/12130.12144↑ Cheriyan, Joseph; Hagerup, Torben (1995). "ランダム化最大フローアルゴリズム". SIAM Journal on Computing . 24 (2): 203–226 . doi : 10.1137/S0097539791221529 . MR 1320205 . 予備版は、1989年開催の第30回コンピュータサイエンス基礎シンポジウム(FOCS) に掲載、doi : 10.1109/SFCS.1989.63465↑ Alon, Noga (1990). "擬似乱数順列と最大フローアルゴリズムの生成" (PDF) . Information Processing Letters . 35 (4): 201– 204. doi : 10.1016/0020-0190(90)90024-R . MR 1066123 . Cheriyan、Hagerup、およびMehlhorn(1990)によって1989年の原稿として引用されている。↑ チェリヤン、ジョセフ。ヘイゲルップ、トーベン。 クルト・メールホルン (1996)。 「アン o ( n 3 ) {\displaystyle o(n^{3})} -時間最大フローアルゴリズム」。SIAM Journal on Computing。25 ( 6 ): 1144–1170。doi : 10.1137 / S0097539791278376。hdl : 11858 / 00-001M-0000-0014-B08A-3。MR 1417893 。 予備版、「最大流量は計算できますかo ( n m ) {\displaystyle o(nm)} 時間?、第17回オートマタ、言語、プログラミングに関する国際コロキウム (ICALP)、1990年、doi : 10.1007/BFb0032035↑ King, Valerie ; Rao, S.; Tarjan, Robert Endre (1992). "より高速な決定論的最大フローアルゴリズム" . Frederickson, Greg N. (編). Proceedings of the Third Annual ACM/SIGACT-SIAM Symposium on Discrete Algorithms, 1992年1月27-29日、米国フロリダ州オーランド . pp. 157–164 . ↑ Phillips, Steven J. ; Westbrook, Jeffery R. (1998). "オンライン負荷分散とネットワークフロー". Algorithmica . 21 (3): 245– 261. doi : 10.1007/PL00009214 . 予備版、第25回ACM理論計算機科学シンポジウム(STOC) 、1993年、doi : 10.1145/167088.167201。↑ King, V. ; Rao, S. ; Tarjan, R. (1994). "より高速な決定論的最大フローアルゴリズム". Journal of Algorithms . 17 (3): 447– 474. doi : 10.1006/jagm.1994.1044 . MR 1300259 . ↑ Orlin, James B.; Gong, Xiao-yue (2021). "高速最大フローアルゴリズム". Networks . 77 (2): 287–321 . doi : 10.1002/net.22001 . hdl : 1721.1/134021 . MR 4264487 . ↑ Ford, LR Jr. ; Fulkerson, DR (1956). "ネットワークを通る最大フロー". Canadian Journal of Mathematics . 8 : 399– 404. doi : 10.4153/CJM-1956-045-5 . MR 0079251 . ↑ Goldberg, AV ; Rao, S. (1998). "Beyond the flow decomposition barrier" . Journal of the ACM . 45 (5): 783. doi : 10.1145/290179.290181 . S2CID 96030 . ↑ Kathuria, T.; Liu, YP; Sidford, A. (2020年11月16日~19日). ほぼユニット容量最大流量 O ( m 4 / 3 ) {\displaystyle O(m^{4/3})} Time . Durham, NC, USA: IEEE. pp. 119–130 . ↑ Madry, Aleksander (2016 年 10 月 9 ~ 11 日). Computing Maximum Flow with Augmenting Electrical Flows . New Brunswick, New Jersey: IEEE. pp. 593–602 . ↑ ブランド、J. vd;リー、YT;ナノンカイ、D.ペン、R.サラヌラック、T.シドフォード、A.ソング、Z。ワン・D. (2020 年 11 月 16 ~ 19 日) 中程度に密なグラフ上のほぼ線形時間での 2 部マッチング 。米国ノースカロライナ州ダーラム: IEEE。 919–930 ページ 。 ↑ Brand, J. vd; Lee, YT; Liu, YP; Saranurak, T.; Sidford, A; Song, Z.; Wang, D. (2021). "Minimum Cost Flows, MDPs, and ℓ1-Regression in Nearly Linear Time for Dense Instances". arXiv : 2101.05719 [ cs.DS ]. ↑ Gao, Y.; Liu, YP; Peng, R. (2021). "Fully Dynamic Electrical Flows: Sparse Maxflow Faster Than Goldberg-Rao". arXiv : 2101.07233 [ cs.DS ]. ↑ Brand, Jan Van Den; Chen, Li; Kyng, Rasmus; Liu, Yang P.; Peng, Richard; Gutenberg, Maximilian Probst; Sachdeva, Sushant; Sidford, Aaron (2023年11月). "最小コストフローのための決定論的ほぼ線形時間アルゴリズム". 2023 IEEE 64th Annual Symposium on Foundations of Computer Science (FOCS) : 503– 514. Bibcode : 2023focs.conf...38B . doi : 10.1109/FOCS57990.2023.00037 . ISBN 979-8-3503-1894-4 。↑ バーンスタイン、A.;ブリクスタッド、J.サラヌラック、T.火、T. (2024)。 「経路を拡張することで最大の流量を実現」 n 2 + o ( 1 ) {\displaystyle n^{2+o(1)}} 時間」. arXiv : 2406.03648 [ cs.DS ].↑ Itai, A.; Perl, Y.; Shiloach, Y. (1982). "長さ制約付き最大非連結パスを見つける複雑性". Networks . 12 (3): 277–286 . doi : 10.1002/net.3230120306 . ISSN 1097-0037 . ↑ Schwartz, BL (1966). "部分的に完了したトーナメントの勝者の可能性". SIAM Review . 8 (3): 302– 308. Bibcode : 1966SIAMR...8..302S . doi : 10.1137/1008062 . JSTOR 2028206 . 1 2 Thomas H. Cormen 、 Charles E. Leiserson 、 Ronald L. Rivest 、 Clifford Stein ( 2001)。「26. 最大フロー」。 アルゴリズム入門、第2版 。MIT PressおよびMcGraw-Hill。pp. 643–668。ISBN 978-0-262-03293-3 。{{cite book}}: CS1 maint: 複数の名前: 著者リスト (リンク)↑ Carl Kingsford. 「最大流量拡張: 需要を伴う循環」 (PDF) 。 ↑ 「これら の イラストを生成するためのソースコードを含むプロジェクト imagesegmentationwithmaxflow」 。GitLab 。 2019年12月22日の オリジナルからアーカイブ済み。 2019年 12月22日 に取得 。 ↑ 「アルゴリズム設計」 . pearson.com . 2019年 12月21日 取得 。 ↑ Schauer, Joachim; Pferschy, Ulrich (2013年7月1日). "The maximum flow problem with disjunctive constraints". Journal of Combinatorial Optimization . 26 (1): 109–119 . CiteSeerX 10.1.1.414.4496 . doi : 10.1007/s10878-011-9438-7 . ISSN 1382-6905 . S2CID 6598669 .
さらに読む Joseph Cheriyan およびKurt Mehlhorn (1999)「プリフロープッシュ最大フローアルゴリズムにおける最高レベル選択ルールの分析」Information Processing Letters . 69 (5): 239–242 . CiteSeerX 10.1.1.42.8563 . doi : 10.1016/S0020-0190(99)00019-8 . Daniel D. Sleator およびRobert E. Tarjan (1983). "動的ツリーのデータ構造" (PDF) . Journal of Computer and System Sciences . 26 (3): 362– 391. doi : 10.1016/0022-0000(83)90006-5 . ISSN 0022-0000 . ユージン・ローラー (2001)。「4. ネットワークフロー」。『組み合わせ最適化:ネットワークとマトロイド』 。ドーバー出版。109 ~ 177ページ。ISBN 978-0-486-41453-9 。