回答:
この講義では、最大流量問題の残差グラフの背後にある直観が非常によく提示されています。説明は次のとおりです。
我々は、以下のネットワークの最大フロー問題解決しようとしていると仮定する(各ラベル表すフローの両方エッジを通して押さと容量、このエッジのを):
貪欲なアプローチの1つは次のとおりです。
つまり、使用可能な容量のあるパスを見つけ、そのパスに沿ってフローを送信し、繰り返します。
で、ヒューリスティック発見上記の3つの増強経路のうちの1つの可能な実行P 1、P 2、およびP 3をこの順で、。これらのパスは、それぞれ2、2、および1単位のフローをプッシュし、合計5のフローを実現します。
この順序でパスを選択すると、最適なソリューションが得られます。ただし、最初にを選択すると(つまり、P 1とP 2の前に)、どうなりますか?
ブロッキングフローと呼ばれるものが得られます。これ以上の拡張パスは存在しません。この場合、合計流量は3で、最適ではありません。この問題を可能にすることによって解決することができるアンドゥ操作を(フローを可能にすることによって、すなわち、前の反復の作業を元に戻す、逆に送信される):単に頂点からフロー後方の2つの単位を押す頂点にVこのように:
これらの許可された元に戻す操作をエンコードすることが、残差グラフの主な目標です。
残留グラフネットワークのGは、として頂点の同じセットを有するGと含み、各エッジのためにE = (U 、V )∈ G:
c e − f e > 0の場合、容量c e − f eの順方向エッジ。
f e > 0の場合、後方エッジと容量f e。
たとえば、ヒューリスティックが最初にP 3を選択するとき(つまり、ブロッキングフローを取得するとき)に、貪欲なヒューリスティックの最初の反復後に取得される残差グラフを考えます。
2単位のフローをwからvにプッシュする元に戻す操作は、R のsからtへのフォワード(拡張)パスとしてエンコードされることに注意してください。
一般に:
残差グラフRで拡張パスが選択された場合:
- Gの順方向エッジに対応するすべてのエッジは、利用可能な容量を持つエッジを使用してフローを増加させます。
- Gで後方に移動するエッジに対応するすべてのエッジは、過去に順方向にプッシュされたフローを元に戻します。
これは、Ford–Fulkerson法の背後にある主要なアイデアです。
Ford–Fulkersonの方法は、前述の貪欲なアプローチとまったく同じ方法で進行しますが、残余グラフに元のネットワークではなく拡張パスがなくなると停止します。残差グラフが次の最適条件を確立するため、この方法は正しいです(つまり、常に最大流量を計算します)。
ネットワーク与えられた場合、残差グラフにs − tパスがない場合、フローfはGで最大になります。