3-3 HallとKőnig

$$\newcommand{abs}[1]{\left\lvert #1 \right\rvert} \newcommand{cG}[0]{\mathcal{G}} \newcommand{diam}[0]{\operatorname{Diam}} \newcommand{la}[0]{\leftarrow} \newcommand{lt}[0]{\left} \newcommand{Mod}[1]{\ \left(\mathrm{mod}\ #1\right)} \newcommand{mR}[0]{\mathbb{R}} \newcommand{p}[0]{\prime} \newcommand{ra}[0]{\rightarrow} \newcommand{rad}[0]{\operatorname{rad}} \newcommand{rt}[0]{\right} $$

解と上界の証明書が同じ大きさになる

matchingは互いに端点を共有しない辺を選びます。一方、vertex coverは全ての辺を少数の頂点で監視します。matchingの各辺は離れているため、どんなvertex coverも各matching辺から少なくとも一端ずつ選ばなければなりません。従って
$$ \text{matchingの大きさ}\le\text{vertex coverの大きさ} $$
です。
一般グラフでは不等号が厳しいことがあります。三角形のmaximum matchingは1辺ですが、全三辺を覆うには2頂点必要です。しかし二部グラフでは必ず等号になります。augmenting path探索に失敗したときの到達集合から、最小coverを実際に構成できます。

vertex coverと弱双対性

vertex coverとcovering number

グラフ $G$ の頂点集合 $C\subseteq V(G)$ が頂点被覆|vertex coverであるとは、全ての辺が少なくとも一方の端点を $C$ にもつことをいう。
vertex coverの頂点被覆数|最小頂点数を $\tau_v(G)$ と書く。matching numberは $\nu(G)$ と書く。

$\tau_v$ と下添字を付けるのは、spanning tree数に用いた記号との衝突を避けるためです。

matchingとvertex coverの弱双対性

任意の有限グラフ $G$、matching $M$、vertex cover $C$ に対して
$$ |M|\le|C| $$
である。従って
$$ \nu(G)\le\tau_v(G). $$

$C$ は各matching辺 $e\in M$ の少なくとも一端を含みます。$M$ の異なる辺は端点を共有しないため、一つのcover頂点を二本のmatching辺の代表にはできません。各 $e\in M$ に $C$ 内の一端を対応させると単射が得られ、$|M|\le|C|$ です。最大matchingと最小coverを選べば第二式を得ます。□

maximum matchingからminimum coverを作る

二部グラフ $G=(X\sqcup Y,E)$ のmaximum matching $M$ を取ります。全ての未飽和 $X$ 頂点から、「増加路」の規則で交互探索します。

  • $X$ から $Y$ へは非matching辺をたどる。
  • $Y$ から $X$ へはmatching辺をたどる。
    到達した集合を $Z_X\subseteq X,Z_Y\subseteq Y$ とし
    $$ C=(X\setminus Z_X)\cup Z_Y $$
    と置きます。
交互到達集合から得るcover

$M$ がmaximumなら $C=(X\setminus Z_X)\cup Z_Y$ はvertex coverである。

coverされない辺 $xy$ があると仮定します。$x\notin X\setminus Z_X$ なので $x\in Z_X$、また $y\notin Z_Y$ です。
$xy\notin M$ なら、探索は到達済みの $x$ からこの非matching辺をたどって $y$ へ到達するので矛盾です。
$xy\in M$ なら、$x$ は未飽和rootではありません。到達したmatched $X$ 頂点は、そのmatching相手からmatching辺をたどって到達します。matching辺は一意なので相手は $y$ であり、やはり $y\in Z_Y$ です。従ってcoverされない辺はありません。□

構成したcoverの大きさ

上の設定で
$$ |C|=|M|. $$

maximum matchingにはaugmenting pathがないので、到達した全ての $Y$ 頂点は飽和されています。各 $y\in Z_Y$ のmatching相手は $Z_X$ に属します。逆に $Z_X$ のうち未飽和rootでない頂点は、ある $Z_Y$ 頂点のmatching相手として到達します。
未飽和root全体を $U\subseteq X$ とすると、matching辺は $Z_Y$ と $Z_X\setminus U$ の間に全単射を与えます。
また $X\setminus Z_X$ の頂点は全て飽和され、そのmatching相手は $Y\setminus Z_Y$ にあります。従って $M$ は

  • $Z_X\setminus U$ と $Z_Y$ の間の辺、
  • $X\setminus Z_X$ と $Y\setminus Z_Y$ の間の辺
    へ分かれます。ゆえに
    $$ |M|=|Z_Y|+|X\setminus Z_X|=|C|. $$
    □

Kőnigの定理

Kőnigの定理

任意の有限二部グラフ $G$ に対して
$$ \nu(G)=\tau_v(G). $$
すなわちmaximum matchingの辺数とminimum vertex coverの頂点数は等しい。

maximum matching $M$ から前節の $C$ を作ると、$C$ はvertex coverで $|C|=|M|$ です。従って
$$ \tau_v(G)\le|C|=|M|=\nu(G). $$
弱双対性は逆向きの不等式を与えるので等号です。構成した $C$ はminimum vertex coverです。□

証明は算法でもあります。「増加路」の反復augmenting算法でmaximum matchingを求め、最後の失敗探索で $Z_X,Z_Y$ を記録すれば、minimum vertex coverも同時に出力できます。

具体例

$$ X=\{a,b,c,d\},\qquad Y=\{1,2,3,4\} $$
とし、辺を
$$ a1,\ a2,\ b1,\ b2,\ c2,\ c3,\ d3 $$
とします。matching $M=\{a1,b2,c3\}$ では $d$ が未飽和です。$d$ から交互探索すると
$$ d\to3\to c\to2\to b\to1\to a $$
と到達します。従って
$$ Z_X=\{a,b,c,d\},\qquad Z_Y=\{1,2,3\}. $$
未飽和な右頂点4へは辺がないのでaugmenting pathはありません。構成するcoverは
$$ C=(X\setminus Z_X)\cup Z_Y=\{1,2,3\} $$
で、$|C|=3=|M|$ です。

Hallの定理をKőnigから導く

「二部グラフとマッチング」ではHallの結婚定理を帰納法で証明しました。Kőnigの定理からは、最小coverを介した別証明が得られます。

Hallの結婚定理の双対的証明

有限二部グラフ $(X,Y)$ が全ての $S\subseteq X$ について
$$ |N(S)|\ge|S| $$
を満たすなら、$X$ を飽和するmatchingをもつ。

$X$ を飽和するmatchingがないと仮定すると、Kőnigの定理により大きさ $|C|<|X|$ のvertex cover $C$ があります。
$S=X\setminus C$ と置きます。$S$ から出る辺は左端でcoverされていないため、右端が全て $C\cap Y$ に入ります。従って $N(S)\subseteq C\cap Y$ です。一方
$$ |N(S)|\le|C\cap Y| =|C|-|C\cap X| <|X|-|C\cap X|=|S|. $$
これはHall条件に反します。従って $X$ を飽和するmatchingが存在します。□

帰納証明はHall条件の組合せ的な十分性を、Kőnig証明はmatchingとcoverの双対性を示します。

Hall deficiencyの正確な公式

Hall deficiency formula

有限二部グラフ $G=(X\sqcup Y,E)$ に対し
$$ \operatorname{def}(G) =\max_{S\subseteq X}\bigl(|S|-|N(S)|\bigr) $$
と置く。このとき
$$ \nu(G)=|X|-\operatorname{def}(G). $$

任意のmatching $M$ と $S\subseteq X$ を考えます。$S$ 内で飽和できる頂点は、相異なる $N(S)$ の頂点へ対応するので高々 $|N(S)|$ 個です。従って
$$ |X|-|M|\ge |S|-|N(S)|. $$
全ての $S$ で最大を取り、さらにmaximum matchingを選ぶと
$$ \nu(G)\le |X|-\operatorname{def}(G). $$
逆向きを示します。maximum matching $M$ の未飽和 $X$ 頂点から交互探索し、到達集合を $Z_X,Z_Y$ とします。「増加路」から $N(Z_X)=Z_Y$ で、matchingは $Z_Y$ と、$Z_X$ から未飽和rootを除いた集合を全単射で結びます。未飽和root数は $|X|-|M|$ なので
$$ |Z_X|-|N(Z_X)|=|X|-|M|. $$
従って $\operatorname{def}(G)\ge |X|-\nu(G)$ です。二つの不等式を合わせて公式を得ます。□

Hall条件は $\operatorname{def}(G)=0$ の場合です。この公式は、全員を割り当てられないとき最大何人まで可能かも答えます。

independent setとの補関係

independent set

頂点集合 $I\subseteq V(G)$ で、$I$ 内の二頂点を結ぶ辺が存在しないものを独立集合 (グラフ理論)|independent setという。その最大頂点数を $\alpha(G)$ と書く。

coverとindependent setの補関係

$C$ がvertex coverであることと $V(G)\setminus C$ がindependent setであることは同値である。従って
$$ \alpha(G)+\tau_v(G)=|V(G)|. $$

$C$ がcoverなら、補集合内の二頂点を結ぶ辺は両端ともcover外となるため存在しません。逆に補集合がindependentなら、任意の辺の少なくとも一端が $C$ に属するので $C$ はcoverです。
補集合を取る操作が大きさ $k$ のcoverと大きさ $|V|-k$ のindependent setを対応させるため、最小と最大の間に等式が成り立ちます。□

Kőnigの定理と合わせると、二部グラフでは
$$ \alpha(G)=|V(G)|-\nu(G) $$
です。

edge coverとの関係

edge cover

辺集合 $F\subseteq E(G)$ が辺被覆|edge coverであるとは、全ての頂点が $F$ の少なくとも一本の辺の端点になっていることをいう。孤立頂点をもつグラフにはedge coverは存在しない。最小edge coverの辺数を $\rho(G)$ と書く。

Gallaiのedge cover公式

孤立頂点をもたない有限グラフ $G$ に対して
$$ \rho(G)=|V(G)|-\nu(G). $$

maximum matching $M$ を取ります。$M$ で未飽和な各頂点 $v$ について接続辺を一本選び、$M$ へ加えます。未飽和二頂点を結ぶ辺は存在しません。もしあれば $M$ に追加できるからです。従って各追加辺は未飽和頂点を一つずつ新たに覆い、得るedge coverの辺数は
$$ |M|+(|V|-2|M|)=|V|-\nu(G). $$
よって $\rho(G)\le |V|-\nu(G)$ です。
逆にminimum edge cover $F$ を取り、包含についても極小にします。$(V,F)$ はcycleをもちません。cycle辺を一本除いても全cycle頂点が覆われるからです。また四頂点path $a-b-c-d$ を含めば、中央辺 $bc$ を除いても $b$ は $ab$、$c$ は $cd$ に覆われ、極小性に反します。
従って $(V,F)$ の各連結成分はstarです。各starから辺を一本選ぶとmatchingになります。成分数を $k$ とするとこのmatchingは $k$ 辺です。star forestでは
$$ |F|=|V|-k $$
なので $\nu(G)\ge k=|V|-|F|$、すなわち $|F|\ge|V|-\nu(G)$ です。両不等式から公式を得ます。□

この公式は一般グラフで成立し、二部性を必要としません。

0--1行列とrook

$m\times n$ の0--1行列で、1の位置を二部グラフの辺とみなします。行を $X$、列を $Y$ とすると、同じ行・列を共有しない1の選択はmatching、全ての1を覆う行・列の選択はvertex coverです。
Kőnigの定理により、置けるrookの最大個数は、全ての1を覆うために選ぶ行・列の最小本数と一致します。

演習

minimum coverを確認する

本文の具体例で $C=\{1,2,3\}$ が全辺を覆うことを確認し、大きさ2のcoverが存在しないことをmatchingから証明せよ。

解答

全ての辺の右端は1,2,3のいずれかなので $C$ はcoverです。一方 $M=\{a1,b2,c3\}$ は3辺のmatchingです。弱双対性により任意のvertex coverは少なくとも3頂点必要です。従って大きさ2のcoverは存在せず、$C$ はminimumです。□

三角形で等号が壊れる

三角形 $K_3$ について $\nu(K_3)$ と $\tau_v(K_3)$ を求めよ。

解答

matchingは二辺を同時に選べないので $\nu(K_3)=1$ です。一頂点だけでは反対側の辺を覆えず、任意の二頂点なら全辺を覆うので $\tau_v(K_3)=2$ です。従って等号は成立しません。三角形は二部グラフでないためKőnig定理の仮定外です。□

deficiencyを計算する

二部グラフで
$$ N(a)=N(b)=N(c)=\{1,2\},\qquad N(d)=\{2,3\} $$
とする。$\operatorname{def}(G)$ とmaximum matchingの大きさを求めよ。

解答

$S=\{a,b,c\}$ では不足が $3-2=1$、全体 $X$ でも近傍が $\{1,2,3\}$ なので不足は $4-3=1$ です。他の集合の不足は1以下なので $\operatorname{def}(G)=1$。従って
$$ \nu(G)=|X|-1=3. $$
実際 $a1,b2,d3$ が大きさ3のmatchingです。□

independent setを求める

偶cycle $C_8$ のmatching numberとindependence numberを求めよ。

解答

交互の四辺を選ぶperfect matchingがあるので $\nu(C_8)=4$ です。二部グラフなので
$$ \alpha(C_8)=|V|-\nu(C_8)=8-4=4. $$
実際、一つおきの四頂点がindependent setです。□

minimum edge cover

六頂点path $P_6$ と五頂点cycle $C_5$ のminimum edge cover数を求め、具体例を書け。

解答

$P_6$ は辺12,34,56からなるperfect matchingをもつので $\nu=3$、従って $\rho=6-3=3$ です。この三辺がedge coverです。
$C_5$ のmaximum matchingは2辺なので $\rho=5-2=3$。例えば辺12,34,45が全頂点を覆います。□

rookとline cover

$$ \begin{pmatrix} 1&1&0&0\\ 0&1&1&0\\ 0&0&1&1 \end{pmatrix} $$
の1の位置に、同じ行・列を共有しないrookを最大何個置けるか。また全ての1を覆う行・列の最小本数を求めよ。

解答

位置 $(1,1),(2,2),(3,3)$ にrookを置けば3個です。行が三つなので4個は不可能です。Kőnigの定理によりminimum line cover数も3で、例えば全三行を選べば実現します。□

本章で得たもの

matchingは実行可能な割当、vertex coverはそれ以上の割当が不可能であることを示す上界証明書です。二部グラフでは交互探索から両者を同じ大きさで構成でき、Kőnigの等式が成立します。
同じ双対性から、Hallの別証明、最大不足と未割当数の一致、independent set、edge cover、rook配置が一つの枠組みに入りました。

Mathpediaは寄付と、参考文献の書籍リンク(Amazonアソシエイト)の紹介料で運営されています。 支援について / 寄付する

前ページへ
グラフ理論 ― 連結性・木・マッチング・フロー・平面性・彩色の表紙
次ページへ