エッジ加重無向グラフと 2 つのノード (ソースとシンクと呼ばれることが多い) があります。これらの 2 つのノードを 2 つの弱いコンポーネントに分離する、可能な限り最小の重みのエッジのセットを見つける必要があります。
Ford-Fulkerson の最大フロー アルゴリズムと、有向グラフの最大フローと最小カット関係に関する彼の定理については知っています。
また、Ford-Fulkerson の無向グラフの最大フロー アルゴリズムの修正についても知っています。これは、各無向エッジを 2 つの反対の有向エッジに置き換え、両方へのフローを同時に更新します。しかし、この変更により、max-flow-min-cut-theorem は有効ではなくなったように見えます。これは、次の無向グラフで最小カットが正しく決定されないためです。
nodes: 0, 1, 2, 3
edges & capacities: {0,1}->5, {0,2}->6, {1,2}->2, {1,3}->7, {2,3}->4
source: 0
sink: 3
max-flow-min-cut の定理によると、最小カットはそれらのエッジであり、フローはその容量に等しく、変更された Ford-Fulkerson によってそれはすべてのエッジであり、明らかに正しいカットではありません。
無向グラフでグローバル最小カットを見つけるためのStoer-Wagner アルゴリズムを見つけましたが、このアルゴリズムはソースとシンクを考慮せず、ノードを配置できるカットを見つけることができるため、これは私が望むものではありません。同じコンポーネント。
これら2つの指定されたノードを分離して、ソースとシンクを持つ無向グラフで最小カットを効率的に見つけることができるアルゴリズムはありますか? 前述のアルゴリズムを変更して、私のケースで機能するようにすることはできますか?