Kőnig の定理と最大流最小カット定理

最近組み合わせ最適化を勉強中なので、考えたことをメモ


任意の二部グラフ G=(U \sqcup V,E) について、次の Kőnig の定理が成り立ちます。

König の定理G の最大マッチングと G の最小点被覆は同じサイズを持つ。


この定理の証明はマッチングに関する増加路(augmenting path)を用いたものが有名ですが、より強い定理である最大流最小カット定理の系としても示せます。

説明のため、 G の例として次のグラフを考えます。

G

まずは  G から次のような有向グラフ G' を作ります。

G'

つまり  G'G に頂点 S,T を追加し、向きと辺容量 1 をつけたものです。
競プロではマッチングをフローで求める際によく出てきますね。


G の最大マッチング= G' の最大流

これは馴染み深いと思います。

G のマッチングと G' のフローには一対一の対応が作れます。

具体的には、G のマッチングにその辺と S,T に繋がる辺のみを使うフローを対応させればよいです。
マッチングでは各頂点は高々一つの辺にしか含まれないので、G' の作り方からこのような対応は可能です。

さらにこの対応では、マッチングのサイズとフローの流量が等しいです。
これはフローの流量がフローで使われた中央の辺の本数に等しいことからわかります。


G の最小点被覆= G' の最小カット

二方向に分けて示します。


G の最小点被覆 \ge G' の最小カット

G の点被覆 X を任意に取ります。

● が X の点

G' において、X の点と S,T のいずれかを端点とする辺の集合を E_X とします。

そして、 S から E_X の辺以外を辿って到達可能な頂点の集合を W_S、到達不可能な頂点の集合を W_T とします。

縦線が引かれているのが E_X の辺

明らかに W_S,W_TG' の頂点集合を二分割します。

加えて、 T \in W_T が成り立ちます。もし  S から  T への E_X の辺を使わないパス  (S,u,v,T) があったと仮定すると、 u,v \notin X となり、XG の点被覆であることに矛盾するからです。

よって  (W_S, W_T)S \textrm{-} T カットとなっています。

さらにこのカットのコストは |X| (= |E_X| ) 以下です。これは W_S から W_T への辺が全て E_X に入っていることからわかります。

以上より任意の点被覆 X について、コスト |X| 以下のカットを作ることができました。

(2022/11/01 追記:SSRS さんとだれさんに指摘を頂き修正しました。ありがとうございます!)


G の最小点被覆 \le G' の最小カット

逆に今度は S \textrm{-} T カット C を任意に取ります。

カット C

 C において、S または T と繋がっている辺の  S,T でない方の端点の集合を X とします。

● が X の点

G( U \sqcup V ) \setminus X から誘導されるグラフ  G  \left \lbrack \left( U \sqcup V \right) \setminus X \right \rbrack を考えます。

 G  \left \lbrack \left( U \sqcup V \right) \setminus X \right \rbrack

XU \setminus X の点のうち出次数 1 以上のものを全て追加した集合 X' は点被覆になります。

さらに、

  •  X のサイズは C の左右の辺の本数に等しい
  • X'X のサイズの差分は G  \left \lbrack \left( U \sqcup V \right) \setminus X \right \rbrack の中央の辺の本数以下
  •  G  \left \lbrack \left( U \sqcup V \right) \setminus X \right \rbrack の辺(に対応する G' の辺)は全て C に入っている(カットなので)

ことから、X' のサイズは C のコスト以下であるとわかります。


まとめ

最大流最小カット定理から、

G の最大マッチング= G' の最大流= G' の最小カット= G の最小点被覆

となり、無事 Kőnig の定理が示せました。