完全な解決策はありませんが、最初のステップとして使用できる削減があります。まず、グラフを2重連結コンポーネントに分解します。この分解により、カットされたすべての頂点が識別されます。頂点は、削除されると、グラフを2つのコンポーネントに切断します。切断点ごとに、ソース頂点と宛先頂点のペアは、非分割ペアとしてカットの同じ側にあるか、分割ペアとしてカットの反対側にあります。(切断点がソースまたはターゲットのいずれかである場合は、分割ペアとしてカウントします。)
切断点に2つ以上の分割ペアがある場合、両方のパスが切断点を通過する必要があるため、問題は解決されません。(これは、上記の私のコメントの五分位グラフの例の一般化です。)
分割ペアがない場合、問題は2つの小さな問題に解決されます。各コンポーネントに1つずつあります。解決策は、小さい方のそれぞれの解決策の組み合わせです。
分割ペアが1つだけある場合は、問題をより小さな問題のペアに減らします。1つは各コンポーネントの関連バージョンで、切断点はグラフ間で複製されます。切断点がX_1
何らかのコンポーネントにあると仮定します。そのコンポーネントで、複製された切断点にラベルを付けますY_1
。他のコンポーネントの場合はその逆です。前と同じように、解決策は2つの小さいものの組み合わせです。
このソリューションの本質は鳩の巣原理です。これは、2つのパスが1つのポイントを通過できないためです。1つ上に移動すると、3つのポイントが2つのポイントを通過することはできません。これにより、すぐに3つに接続されたコンポーネントを調べ、SPQRツリーを使用することになります。この構造から、すべての2点カットを列挙できます。前と同じように、頂点を2つのセットに分割し、同様に進みます。ただし、分割されたペアのすべての順列を考慮する必要があります。サブ問題はすべて、3つに接続されたコンポーネントにあります。
これがどこにつながるかがわかります。SPQRツリーがより高度な接続性に一般化されているかどうかはわかりません。たとえそうだったとしても、一般的に組み合わせ爆発が予想されます。そして、これはすべて難しい問題につながります。
最初は、この問題は平面グラフでは扱いやすいと思いました。そうではありません; 上記の論文を参照してください。NP完全のままです。
上記のアルゴリズムが与えられると、2重連結グラフで問題を想定できます。ここでの違いは、平面グラフには「ローカル」エッジしかないことです(グラフを球に埋め込むことで確認できます)。「リモート」エッジは他のエッジと交差する必要があります。これは、最小限のカットセットの動作がはるかに適切に動作することを意味します。しかし、問題を機能させるのに十分な振る舞いはありません。