最大流量の残差グラフ


14

ここで最大流量問題について読んでいます。残余グラフの背後にある直感を理解できませんでした。フローを計算するときにバックエッジを考慮するのはなぜですか?

Residual Graphの概念を理解してくれる人はいますか?

無向グラフのアルゴリズムはどのように変わりますか?

回答:


28

この講義では、最大流量問題の残差グラフの背後にある直観が非常によく提示されています。説明は次のとおりです。

我々は、以下のネットワークの最大フロー問題解決しようとしていると仮定するG(各ラベルfe/ce表すフローの両方feエッジを通して押さeと容量ce、このエッジのを):

実行例

貪欲なアプローチの1つは次のとおりです。

  1. 任意選択増強経路Pソース頂点から進むsシンク頂点へのtよう)。つまり、 Pのすべてのエッジに使用可能な容量があります。e(ePfe<ceP
  2. この経路を通る最大可能流量を押します。Δの値は、Pボトルネックによって決まります。つまり、利用可能な容量が最小のエッジです。正式に、Δ = E PC E - F EΔΔPΔ=mineP(cefe)
  3. 拡張パスがなくなるまで手順1に進みます。

つまり、使用可能な容量のあるパスを見つけ、そのパスに沿ってフローを送信し、繰り返します。

、ヒューリスティック発見上記の3つの増強経路のうちの1つの可能な実行P 1P 2、およびP 3をこの順で、。これらのパスは、それぞれ2、2、および1単位のフローをプッシュし、合計5のフローを実現します。GP1P2P3

最大フローのための貪欲なアプローチの可能な実行

この順序でパスを選択すると、最適なソリューションが得られます。ただし、最初にを選択すると(つまり、P 1P 2の前に)、どうなりますか?P3P1P2

ブロッキングパス

ブロッキングフローと呼ばれるものが得られます。これ以上の拡張パスは存在しません。この場合、合計流量は3で、最適ではありません。この問題を可能にすることによって解決することができるアンドゥ操作を(フローを可能にすることによって、すなわち、前の反復の作業を元に戻す、逆に送信される):単に頂点からフロー後方の2つの単位を押す頂点にVこのように:wv

逆流

これらの許可された元に戻す操作をエンコードすることが、残差グラフの主な目標です。

残留グラフネットワークのGは、として頂点の同じセットを有するGと含み、各エッジのためにE = U V GRGGe=(u,v)G

  • c ef e > 0の場合、容量c ef eの順方向エッジe=(u,v)cefecefe>0

  • f e > 0の場合、後方エッジと容量f ee=(v,u)fefe>0

たとえば、ヒューリスティックが最初にP 3を選択するとき(つまり、ブロッキングフローを取得するとき)に、貪欲なヒューリスティックの最初の反復後に取得される残差グラフを考えます。RP3

残差グラフ

2単位のフローをwからvにプッシュする元に戻す操作は、R のsからtへのフォワード(拡張)パスとしてエンコードされることに注意してください。wvstR

残差グラフの拡張パス

一般に:

残差グラフRで拡張パスが選択された場合:PR

  • Gの順方向エッジに対応するすべてのエッジは、利用可能な容量を持つエッジを使用してフローを増加させます。PG
  • Gで後方に移動するエッジに対応するすべてのエッジは、過去に順方向にプッシュされたフローを元に戻します。PG

これは、Ford–Fulkerson法の背後にある主要なアイデアです。

Ford–Fulkersonの方法は、前述の貪欲なアプローチとまったく同じ方法で進行しますが、残余グラフに元のネットワークではなく拡張パスがなくなると停止します。残差グラフが次の最適条件を確立するため、この方法は正しいです(つまり、常に最大流量を計算します)。

ネットワーク与えられた場合、残差グラフにs tパスがない場合、フローfGで最大になります。GfGst


Edmonds-Karpアルゴリズムで説明されているように、パスが最短の長さで追加される例はありますか?カウンターの例では、最初のパスの長さは3ですが、短い(つまり2)パスを見つけることができ、Edmonds-Karpを実行している場合は最初に追加されます。
ロイ

st3vv1v2ww1w2(v1,v2)(w1,w2)2vwv1w2(v1,w2

あなたの例は理にかなっています。問題のエッジが最短パスの1つになるように、カット内の他のエッジのグラフをいつでも拡張できます。
ロイ

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.