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

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/




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

辞書ショートカット

すべての辞書の索引

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

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

   

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



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

   
日本オペレーションズ・リサーチ学会日本オペレーションズ・リサーチ学会
Copyright (C) 2024 (社)日本オペレーションズ・リサーチ学会 All rights reserved.

©2024 GRAS Group, Inc.RSS