ネットワークフロー問題とは? わかりやすく解説

Weblio 辞書 > 学問 > OR事典 > ネットワークフロー問題の意味・解説 

ネットワークフロー問題

読み方ねっとわーくふろーもんだい
【英】:network flow problem

概要

ネットワーク上のフローを扱う最適化問題総称. 最大フロー問題, 最小費用フロー問題, 輸送問題, 多品種フロー問題, 利得/損失付きフロー問題(一般化フロー問題)などがある. 最短路問題, 割当問題, 最小カット問題もネットワークフロー問題として扱うこともある.

詳説

 ネットワーク上のモノ流れを扱う.モノ与えられ有向グラフG=(V, A)\, の各沿って流れ,点で分岐合流をする.ただし,各a\, 容量c(a)\, 超えず,各点v\, から出る正味流量が,与えられ供給d(v)\, 等しくなるようにする.aを流れる量を\varphi(a)\, としたとき,


容量制約 0 \leq \varphi(a) \leq c(a) \; \;   (a \in A)\,

流量保存則 {\sum}_{a \in \delta^+v} \varphi(a)-{\sum}_{a \in \delta^-v}
\varphi(a)=d(v)
\; \;  (v \in V)\,


満たす\varphi\, フローといい,フロー扱った最適化問題ネットワークフロー問題という [1] .ただし,\delta^+v (\delta^-v)\, は点v\, から出る (へ入る) 全体を表す.  代表的なネットワークフロー問題に最大フロー問題がある.最大フロー問題とは,特別な点として入口s\, 出口t\, があり,s, t\, 以外での供給d(v)\, が0であるとき,s\, から入る量 (フロー値) を最大にするようなフロー (最大フロー) を求め問題であり,以下のように定式化できる.


\begin{array}{lll}
\mbox{maximize}  & {\sum}_{a \in \delta^+ s} \varphi(a)-{\sum}_{a \in \delta^-
s}\varphi(a) \\
\mbox{subject to}& 0 \leq \varphi(a) \leq c(a) &  (a \in A), \\
                 &  {\sum}_{e \in \delta^+v} \varphi(a)-{\sum}_{e \in \delta^-v}
\varphi(a)=0 &
                 (v \in V \setminus\{s, t \}).
\end{array}\,


 点の部分集合X\, s\, 含みt\, 含まないとき,X\, s-t\, カットという.始点X\, にあり終点X\, にない容量の和をX\, 容量といい,容量最小s-t\, カット最小カットという.任意のフローフロー値任意のs-t\, カット容量よりも大きくなり得ない.この値が一致するようなフローs-t\, カット存在することを示したのが,最大フロー最小カット定理 [2] である.実際,あるs-t\, カット容量一致するフロー値をもつフローが以下の操作得られる

 まず,任意のフロー\varphi\, 対し補助ネットワーク{\mathcal N}_\varphi=(G_\varphi=(V, A_\varphi), c_\varphi)\, 定義するG_\varphi\, は,与えられグラフ同じ点集合V\, をもち,集合A_\varphi=\{a \mid a \in A, \varphi(a) < c(a) \}\cup \{\bar{a} \mid a \in A, \varphi(a)>0 \}\, グラフとする.ただし,\bar{a}\, は,a\, 向き逆にしたである.c_\varphi\, は,A_\varphi\, 定義される残余容量であり,


c_\varphi(a)=\left\{ \begin{array}{ll}
c(a)-\varphi(a) & (a \in A) \\ \varphi(\bar{a}) & (\bar{a} \in A)
\end{array} \right.\,


与えられる補助ネットワーク上のs\, からt\, への有向道を増加道という.増加道に沿ってフロー更新繰り返しフロー値増加させる方法増加道法という.任意のフローから始め,以下の手順を繰り返す


手順1: {\mathcal N}_\varphi\, 作成し増加P\, をみつける.増加道がなければ終了

手順2: \varepsilon=\min\{c_\varphi(a) \mid a\, P\, 上の\}\, 求めP\, 上のすべてのa\, に関してa \in A\, ならば,\varphi(a)\, \varepsilon\, 増加し\bar{a} \in A\, ならば,\varphi(a)\, \varepsilon\, 減少させる


 増加道が存在しなくなったとき,{\mathcal N}_\varphi\, 上でs\, から到達可能な点集合X\, とすると,X\, s-t\, カットであり,その容量フロー値一致する.よって,増加道法終了したときのフロー最大フローであり,X\, 最小カットである.

 増加道の選択を,最小や,\varepsilon\, 最大基準で行うと,多項式時間最大フローアルゴリズムとなる.一方流量保存則緩和したプリフローを用い増加道が存在しないようなプリフローを維持しながら,最大フロー求めプッシュ・再ラベル法効率よい最大フローアルゴリズムである.

 最小費用フロー問題もネットワーク・フロー問題の一つである.各a\, フロー1単位あたりの費用\gamma(a)\, 与えられているとき,総費用\textstyle {\sum}_{a \in A}\gamma(a)\varphi(a)\, 最小にするフロー求め問題である.特に,すべての点で供給d(v)=0\, のとき,循環フローという.また,輸送問題最小費用フロー問題特殊ケースである.複数供給地需要地があり,各々供給/需要量と,各供給地需要地間の輸送費用わかっているとき,供給/需要満たし輸送にかかる総費用最小とする輸送方法とその輸送量決定する輸送問題は,容量制約のない2部グラフ上の最小費用フロー問題である.  最小費用フローアルゴリズムも多数ある.補助ネットワーク{\mathcal N}_\varphi\, 上の費用


\gamma_\varphi(a)=\left\{ \begin{array}{ll}
\gamma(a) & (a \in A) \\ -\gamma(\bar{a}) & (\bar{a} \in A)
\end{array} \right. 
\,


定義すると,フロー最小費用である必要十分条件は,その補助ネットワーク上に負の費用閉路存在しないことである.補助ネットワーク上の負の費用閉路繰り返し除去することによって最適フロー求めるのが負閉路消去法である.この他にも,点に対応する双対変数与え相補スラック条件を満たすからなるネットワーク上で最大フロー問題繰り返し解く方法最短路問題繰り返し解く方法単体法用いたネットワーク単体法などがある.いずれの方法も強多項式時間アルゴリズム存在する

 最大フロー問題最小費用フロー問題ともに,容量供給量が整数与えられているときには整数値の最適フロー存在することが知られている.また,ネットワーク構造用いた効率よいアルゴリズムいくつか存在する一方1つネットワーク上に複数品種を流す多品種フロー問題は,品種ごとに流量保存則満たされており,かつすべての品種あわせて容量制約満たされている多品種フローを扱う.多くアルゴリズム線形計画法の手法に基づいている.整数値の多品種フロー求め問題NP完全である.



参考文献

[1] R. K. Ahuja, T. L. Magnanti and J. B. Orlin, Network Flows: Theory, Algorithms, and Applications, Prentice Hall, 1993.

[2] L. R. Ford, Jr. and D. R. Fulkerson, Flows in Networks, Princeton University Press, 1962.

[3] B. Korte and J. Vygen, Combinatorial Optimization, 4th ed., Springer, 2007. 浅野孝夫 他 訳, 『組合せ最適化』, シュプリンガー・フェアラーク東京2005

[4] アルゴリズムデータベース http://www-or.amp.i.kyoto-u.ac.jp/algo-eng/db/


ネットワークフロー問題

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2025/06/07 07:50 UTC 版)

ネットワークフロー問題(ネットワークフローもんだい、: network flow problems)とは、組合せ最適化の(グラフの辺上に容量の値が課せられた)フローネットワークにおいて各頂点において入るフローと出るフローが同じ量でかつすべての辺において流れるフローがその辺の容量以下となるようなフローを求める問題である[1]

ネットワークフロー問題における特筆すべき問題としては以下のものが挙げられる:

  • 最大流問題:フローネットワークにおいて始点となる頂点から終点となる頂点へ向けてフローを流すとき、最大のフローとなるものを求める問題である[1]:166-206
  • 最小費用流問題:辺に単位当たりのフローを流すのにかかる費用が与えられたフローネットワークにおいて始点から終点へ向けて決められた量のフローを流すときに、最小の費用で流すものを求める問題である[1]:294-356
  • 多品種流問題英語版:フローネットワークにおいてそれぞれ相異なる複数のフローを同時に流すときに最小の費用となるものを求める問題である[1]:649-694

最大流最小カット定理では最大流問題における最大流の値がフローネットワークの頂点のに分割を考え、そらを結ぶ辺の重みの和が最小となる頂点分割を求める最小カット問題の重みの和の値と一致することが知られている。また、近似最大流最小カット定理英語版は、最大流最小カット定理を多品種流問題に拡張した定理である。無向フローネットワークでのゴモリー・フー木は任意の二つの頂点における最小カットを得ることができる。

フローを構築的に求めるアルゴリズムとしては以下のものが知られている:

これらに挙げられる問題以外を解く方法としては線形計画問題として定式化を与えることが多くの場合で可能であり、それにより線形計画問題を解く最適化ソルバにより解くことが可能である。

脚注

  1. ^ a b c d e f g Ahuja, Ravindra K.; Magnanti, Thomas L.; Orlin, James B. (1993). Network Flows: Theory, Algorithms, and Applications. Prentice Hall 

関連項目



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「ネットワークフロー問題」の関連用語

ネットワークフロー問題のお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



ネットワークフロー問題のページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
日本オペレーションズ・リサーチ学会日本オペレーションズ・リサーチ学会
Copyright (C) 2025 (社)日本オペレーションズ・リサーチ学会 All rights reserved.
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアのネットワークフロー問題 (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。

©2025 GRAS Group, Inc.RSS