トップQs
タイムライン
チャット
視点
アウトオブキルタ法
ウィキペディアから
Remove ads
アウトオブキルタ法(アウトオブキルタほう、英: out-of-kilter algorithm)とは、フローネットワークにおける最小費用流問題を解くアルゴリズムの一種である。1961年にデルバード・レイ・ファルカーソンにより初めて提案された解法である[1][2]。頂点と枝からなるネットワークにおいて定常流を求める問題は、さまざまな事象を記述するために応用することができる。例として輸送システムや人員の配置割当などが挙げられる。一般的に枝には費用および容量が与えられている。そして、容量制約付きネットワーク内においてある2点間の最短経路を求めることがしばしば発生する。アウトオブキルタ法ではアウトオブキルタな枝を特定し、すべての枝がインキルタとなり、最小費用のフローが得られるまでその時点で得られているフローを修正していくこととなる。そのため、制約付きの有向ネットワークにおいて総費用が最小となるフローを求めることができる。
Remove ads
アルゴリズム
要約
視点
始めに、アウトオブキルタ法では単一の閉路およびその頂点の集合を得る。そしてアウトオブキルタな枝を探す。もしキルタ内の枝においてフローを増加あるいは減少させられるならば、それぞれフローを増加あるいは減少させる道を求める。もしそのような道が存在しなければ、実行可能なフローは存在しない。この手順はすべての枝がインキルタになるまで続け、やがて最適なフローが求まる。
今、 個の頂点および、 個の有向枝のネットワークについて考える。もし枝 が始点に を持ち、終点に を持っているならば、 と記述する。ここで、 を枝 に流れる(頂点 から頂点 への)フローの量とする。また、、 はそれぞれ枝 におけるフローの容量の下限および上限を表すとする。容量については下限・上限のいずれも一部あるいはすべての枝において有限の値として与えられる場合もあれば、無限の容量とする場合もある。このとき、最適化する問題は以下の通りに表される:
(1) (2)
もし与えられたフロー x が (1) を満たすとき、各頂点においてフローは保存され、それらは循環フローといえる。もしフロー x が (2) を満たすとき、実行可能であるといえる。
Remove ads
計算複雑性
計算量:
- 反復では の計算量
- この計算量は最短経路の計算が主に占める
- 総計算量:
Remove ads
脚注
参考文献
外部リンク
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads