結婚定理とマッチング(Hall's marriage theorem and matchings)とは、有限集合 $A$、$B$ の頂点を結ぶ 2 部グラフで、$A$ の各頂点に、隣り合う $B$ の頂点を互いに異なるように割り当てられる条件を述べた定理である。Hall の結婚定理によれば、その必要十分条件は、$A$ のすべての部分集合 $S$ について、$S$ のどれかと隣り合う $B$ の頂点の個数 $\lvert N(S)\rvert$ が $\lvert S\rvert$ 以上であることである。証明は $A$ の要素の個数についての帰納法による。系として、$A$ と $B$ のどの頂点からもちょうど $k$ 本($k\ge1$)の辺が出ていれば割り当てられる。条件を 1 点の $S$ や $S=A$ だけで確かめるのでは足りず、$A$ が無限集合なら定理は成り立たない。
前提知識: 一筆書きとグラフ, 数学的帰納法と整列性
3 人 $1$、$2$、$3$ に、3 つの仕事 $a$、$b$、$c$ を 1 人 1 つずつ割り当てたい。ただし、人によってできる仕事が決まっている。全員に、できる仕事を、互いに違うように割り当てられるだろうか。
人と仕事を頂点にして、人と「その人ができる仕事」を辺で結ぶと、一筆書きとグラフ で使ったグラフの図になる(図 1)。
人 $1$ は $a$ と $b$、人 $2$ は $a$ だけ、人 $3$ は $b$ と $c$ ができるとする。
人 $2$ には $a$ しかないので、$2\to a$ と決まる。すると人 $1$ には $b$ しか残らないので $1\to b$、人 $3$ には $c$ しか残らないので $3\to c$ である。割り当て
$$
1\to b,\qquad 2\to a,\qquad 3\to c
$$
で、全員に互いに違う仕事が割り当てられた。この場合、割り当て方はこの 1 通りしかない(人 $2$ から順に、残りが 1 つずつに決まったから)。
人 $1$ は $a$ だけ、人 $2$ も $a$ だけ、人 $3$ は $a$、$b$、$c$ のどれでもできるとする。
人 $1$ と人 $2$ はどちらも $a$ しかできないので、2 人に互いに違う仕事を割り当てることはできない。人 $3$ にどれほど選択肢があっても、全員の割り当ては作れない。2 人 $\{1,2\}$ のできる仕事を合わせても $\{a\}$ の 1 つしかなく、人数 $2$ より少ないことが原因である(図 2)。
割り当てられる例。赤い 3 本の辺が割り当て 1→b、2→a、3→c
割り当てられない例。色をつけた 2 人 1、2 のできる仕事は a だけ
ex-mar-fail の原因は、「何人かを選ぶと、その人たちのできる仕事を合わせても、人数より少ない」ことだった。このような人の集まりが 1 つでもあれば割り当てられないのは当然である。驚くべきことに、逆も成り立つ。この記事で答える問いは次の 3 つである。
| 高校の言葉 | この記事の言葉 | 大学の言葉 |
|---|---|---|
| 人と仕事を線で結んだ図 | 2 部グラフ | 2 部グラフ |
| 1 人 1 つずつ、違う仕事を割り当てる | $A$ 全体の割り当て | $A$ を覆うマッチング |
| 何人かのできる仕事を合わせたもの | $N(S)$ | 近傍 |
| 「どの何人を選んでも、できる仕事は人数以上」 | Hall の条件 | Hall の条件 |
有限集合 $A$、$B$(共通の要素はない)を頂点とし、どの辺も $A$ の頂点と $B$ の頂点を結ぶグラフを 2 部グラフ という。同じ 2 頂点を結ぶ辺が 2 本以上あってもよい。$a\in A$ と $b\in B$ が辺で結ばれているとき、$a$ と $b$ は 隣り合う という。
$A$ の各頂点 $a$ に、$a$ と隣り合う $B$ の頂点 $f(a)$ を 1 つずつ対応させる写像 $f\colon A\to B$ で、$a\ne a'$ なら $f(a)\ne f(a')$ となるもの(単射)を、$A$ 全体の割り当て という。
$A$ の部分集合 $S$ に対し、$S$ のどれか 1 つ以上の頂点と隣り合う $B$ の頂点全体を $N(S)$ と書く。$N(\emptyset)=\emptyset$ とする。$S$ の要素の個数を $\lvert S\rvert$ と書く。
割り当てを辺で言うと、「どの 2 本も端点を共有しない辺の集まりで、$A$ のすべての頂点がそのどれかの端点になっているもの」である。どの 2 本も端点を共有しない辺の集まりを マッチング という(マッチング(グラフ理論))。$f(a)=b$ のとき辺 $ab$ を選べば、割り当てからマッチングが得られる。
割り当てが作れるかどうかは、どの頂点とどの頂点が隣り合うかだけで決まり、辺が何本あるかにはよらない。辺の本数が意味をもつのは、後の cor-mar-regular だけである。
ex-mar-start の 2 部グラフ($A=\{1,2,3\}$、$B=\{a,b,c\}$)で、空でない部分集合 $S$ は $2^3-1=7$ 個ある。
| $S$ | $N(S)$ | $\lvert S\rvert$ | $\lvert N(S)\rvert$ |
|---|---|---|---|
| $\{1\}$ | $\{a,b\}$ | $1$ | $2$ |
| $\{2\}$ | $\{a\}$ | $1$ | $1$ |
| $\{3\}$ | $\{b,c\}$ | $1$ | $2$ |
| $\{1,2\}$ | $\{a,b\}$ | $2$ | $2$ |
| $\{1,3\}$ | $\{a,b,c\}$ | $2$ | $3$ |
| $\{2,3\}$ | $\{a,b,c\}$ | $2$ | $3$ |
| $\{1,2,3\}$ | $\{a,b,c\}$ | $3$ | $3$ |
どの行でも $\lvert N(S)\rvert\ge\lvert S\rvert$ である。ex-mar-fail の 2 部グラフでは、$S=\{1,2\}$ で $N(S)=\{a\}$、$\lvert N(S)\rvert=1<2=\lvert S\rvert$ となる。
2 部グラフが Hall の条件 を満たすとは、$A$ のすべての部分集合 $S$ について
$$
\lvert N(S)\rvert\ge\lvert S\rvert
$$
が成り立つことをいう。
$S=\emptyset$ では両辺が $0$ なので、いつも成り立つ。確かめるのは空でない $S$ で、$A$ の要素が $n$ 個なら $2^n-1$ 個ある。
$A$、$B$ が有限集合の 2 部グラフについて、次の 2 つは同値である。
(1) $A$ 全体の割り当てがある。
(2) Hall の条件を満たす。つまり、$A$ のすべての部分集合 $S$ について $\lvert N(S)\rvert\ge\lvert S\rvert$ である。
「結婚定理」の名は、$A$ を何人かの人、$B$ を結婚の相手の候補とし、各人に互いに違う相手を選べるかという言い方で述べられることが多いからである。この記事では仕事の割り当ての言い方を使う。
(1) ならば (2) は、ex-mar-fail で見た「人数より仕事が少なければ割り当てられない」の言いかえである。(2) ならば (1) が本題で、$A$ の要素の個数についての帰納法で示す。帰納法の途中で、グラフを小さくしても Hall の条件が保たれることを 2 つの補題で確かめる。
Hall の条件を満たす 2 部グラフで、$A$ の部分集合 $S$ のうち、空でなく $A$ 全体でもないもの(空でない真部分集合 という)を考える。このような $S$ について、次の 2 つの場合がある。
Hall の条件を満たし、場合 1 にあたる 2 部グラフで、$A$ の要素は 2 個以上とする。$a\in A$ と、$a$ と隣り合う $b\in B$ をとる。$A'=A\setminus\{a\}$、$B'=B\setminus\{b\}$ とし、$A'$ と $B'$ の間の辺だけを残した 2 部グラフを $G'$ とする。このとき $G'$ も Hall の条件を満たす。
要点:取り除くのは $B$ の頂点 $b$ の 1 つだけなので、$N(S)$ は多くとも 1 つしか減らず、場合 1 の「余裕 1」で足りる。
$G'$ での $N$ を $N'$ と書く。$S\subset A'$ が空なら $\lvert N'(S)\rvert=0=\lvert S\rvert$ である。$S$ が空でないとする。$a\notin S$ なので $S\ne A$ で、$S$ は $A$ の空でない真部分集合である。場合 1 だから $\lvert N(S)\rvert\ge\lvert S\rvert+1$ である。
$G'$ では $B$ の頂点のうち $b$ だけを除き、$S$ の頂点と $B'$ の頂点を結ぶ辺はすべて残している。よって $N'(S)=N(S)\setminus\{b\}$ で、$\lvert N'(S)\rvert\ge\lvert N(S)\rvert-1\ge\lvert S\rvert$ である。
Hall の条件を満たす 2 部グラフで、$S_0\subset A$ が $\lvert N(S_0)\rvert=\lvert S_0\rvert$ を満たすとする。
要点:$G_1$ では $N$ が変わらない。$G_2$ では、$T$ と $S_0$ を合わせた集合に Hall の条件を当て、$N(S_0)$ の分を引く。
$G_1$ について.$S\subset S_0$ とする。$S$ の頂点と隣り合う $B$ の頂点は、$S_0$ の頂点と隣り合うので、どれも $N(S_0)$ に入る。よって $G_1$ での $N$ は、もとのグラフの $N(S)$ と同じで、$\lvert N(S)\rvert\ge\lvert S\rvert$ がそのまま成り立つ。
$G_2$ について.$T\subset A\setminus S_0$ とし、$G_2$ での $N$ を $N_2$ と書く。$G_2$ は $B\setminus N(S_0)$ の頂点だけを残したので、$N_2(T)=N(T)\setminus N(S_0)$ である。一方、$N(T\cup S_0)=N(T)\cup N(S_0)$ で、これは共通部分のない 2 つの集合 $N_2(T)$ と $N(S_0)$ の和集合に等しい。よって $$\lvert N(T\cup S_0)\rvert=\lvert N_2(T)\rvert+\lvert N(S_0)\rvert$$ である。もとのグラフの Hall の条件を $T\cup S_0$ に当てると、$T$ と $S_0$ には共通の要素がないので $$\lvert N_2(T)\rvert=\lvert N(T\cup S_0)\rvert-\lvert N(S_0)\rvert\ge\lvert T\cup S_0\rvert-\lvert S_0\rvert=\lvert T\rvert+\lvert S_0\rvert-\lvert S_0\rvert=\lvert T\rvert$$ である。
場合 2 の分け方。青の枠が S0={1,2} と N(S0)={a,b} のグラフ G1、緑の枠が残りのグラフ G2。点線の辺 3b は G2 に入らない。赤は最後に得られる割り当て
ex-mar-lemmas (2) のグラフで、証明の手順を追う。場合 2 の $S_0=\{1,2\}$ で分ける。
$G_1$($1,2$ と $a,b$)では、$\{1\}$ も $\{2\}$ も $N=\{a,b\}$ で余裕が $1$ あり、場合 1 にあたる。$1\to a$ と決めて取り除くと、$2$ には $b$ が残り $2\to b$。
$G_2$($3,4$ と $c,d$)でも同じく $3\to c$、$4\to d$ と決まる。
合わせて $1\to a$、$2\to b$、$3\to c$、$4\to d$ で、図 3 の赤い 4 本の辺である。このグラフの $A$ 全体の割り当ては、$1,2$ に $a,b$ を、$3,4$ に $c,d$ を配る $2\times2=4$ 通りある。$3\to b$ とすると、$1$ と $2$ に残る仕事が $a$ だけになり割り当てられない。一般に、場合 2 では $S_0$ の $\lvert S_0\rvert$ 人が $N(S_0)$ の $\lvert S_0\rvert$ 個の仕事を互いに違うように使うので、どの割り当てでも $N(S_0)$ はすべて $S_0$ の人に使われ、残りの人は $B\setminus N(S_0)$ から選ぶしかない。2 つに分けても、割り当てを見落とさない。
Hall の条件は、$2^n-1$ 個の部分集合をすべて確かめるので、$n$ が大きいと手で確かめるのは大変である。辺の本数がそろっているときは、数え方 1 つで確かめられる。
$k\ge1$ とする。2 部グラフで、$A$ のどの頂点からも、$B$ のどの頂点からも、ちょうど $k$ 本の辺が出ているとする(同じ 2 頂点を結ぶ辺が 2 本以上あれば、その本数を数える)。このとき $\lvert A\rvert=\lvert B\rvert$ で、$A$ 全体の割り当てがある。割り当ては $A$ と $B$ の 1 対 1 の対応になる。
段 1($\lvert A\rvert=\lvert B\rvert$).辺の本数を 2 通りに数える。どの辺もちょうど 1 つの $A$ の頂点から出ているので、辺の本数は $k\lvert A\rvert$ である。同じく $B$ の側から数えると $k\lvert B\rvert$ である。$k\lvert A\rvert=k\lvert B\rvert$ で $k\ge1$ なので、$\lvert A\rvert=\lvert B\rvert$ である。
段 2(Hall の条件).$S\subset A$ をとる。$S$ の頂点から出る辺は、全部で $k\lvert S\rvert$ 本ある。その各辺のもう一方の端点は、$S$ の頂点と隣り合うので $N(S)$ に入る。つまり、これらの辺はどれも「$N(S)$ の頂点から出る辺」でもある。$N(S)$ の頂点から出る辺は全部で $k\lvert N(S)\rvert$ 本なので
$$
k\lvert S\rvert\le k\lvert N(S)\rvert
$$
である。$k\ge1$ で割ると $\lvert S\rvert\le\lvert N(S)\rvert$ となり、Hall の条件が成り立つ。
段 3(結論).thm-mar-hall より $A$ 全体の割り当て $f$ がある。$f$ は単射で、$\lvert A\rvert=\lvert B\rvert$ なので、$f$ の行き先は $B$ のすべての頂点を 1 回ずつ使う。よって $f$ は $A$ と $B$ の 1 対 1 の対応である。
thm-mar-hall と cor-mar-regular の条件のうち、どれを外すと何が崩れるかを表にする。
| 外す条件 | 反例 | 成り立たなくなること |
|---|---|---|
| Hall の条件を 1 点の $S$ だけで確かめる | ex-mar-fail のグラフ(ex-mar-cx-small) | 「条件を満たせば割り当てられる」 |
| Hall の条件を $S=A$ だけで確かめる | 同じグラフ(ex-mar-cx-small) | 「条件を満たせば割り当てられる」 |
| $A$ が有限 | $a_0$ がすべての $b_i$ と、$a_i$ が $b_i$ だけと隣り合う(ex-mar-cx-infinite) | 「条件を満たせば割り当てられる」 |
| cor-mar-regular で $B$ の側も $k$ 本 | $1,2,3$ がどれも $a,b$ と隣り合う(ex-mar-cx-degree) | 系の結論(割り当てがある) |
ex-mar-fail のグラフ($1$ は $a$、$2$ は $a$、$3$ は $a,b,c$)では、1 点の $S$ について $\lvert N(\{1\})\rvert=\lvert N(\{2\})\rvert=1$、$\lvert N(\{3\})\rvert=3$ で、どれも $\lvert S\rvert=1$ 以上である。全体 $S=A$ でも $N(A)=\{a,b,c\}$ で $3\ge3$ である。それでも $S=\{1,2\}$ で $\lvert N(S)\rvert=1<2$ となり、割り当てはない。「全員が何かの仕事をできる」ことと「仕事の総数が人数以上」であることだけでは足りず、途中の大きさの $S$ も確かめる必要がある。
$A=\{a_0,a_1,a_2,\dots\}$、$B=\{b_1,b_2,\dots\}$ とし、$a_0$ はすべての $b_i$ と、$a_i$($i\ge1$)は $b_i$ だけと隣り合うとする(図 5)。
$A$ の有限部分集合 $S$ はどれも $\lvert N(S)\rvert\ge\lvert S\rvert$ を満たす。$a_0\notin S$ なら $N(S)=\{b_i\mid a_i\in S\}$ で、$\lvert N(S)\rvert=\lvert S\rvert$ である。$a_0\in S$ なら $N(S)$ は $B$ 全体で、無限個の要素をもつ。$S$ が無限集合のときも、$S$ に入る $a_i$($i\ge1$)ごとに $b_i$ が $N(S)$ に入るか、$a_0\in S$ で $N(S)=B$ となるので、$N(S)$ は無限集合である。したがって、$S$ の頂点に比べて $N(S)$ の頂点が足りない、ということはどの $S$ でも起こらない。
しかし $A$ 全体の割り当て $f$ はない。$f(a_0)=b_j$ とすると、$a_j$ と隣り合うのは $b_j$ だけなので $f(a_j)=b_j=f(a_0)$ となり、単射にならない。thm-mar-hall の証明の帰納法は $A$ の要素の個数についてのもので、$A$ が有限でないと使えない。
A のどの頂点からも 2 本の辺が出るが、B の頂点 c からは辺が出ていない 2 部グラフ
a0 はすべての bi と、ai は bi だけと隣り合う無限の 2 部グラフ。赤い辺は ai が使える唯一の辺
$A=\{1,2,3\}$、$B=\{a,b,c\}$ で、$1$、$2$、$3$ がどれも $a$ と $b$ の 2 つと隣り合うとする(図 4)。$A$ のどの頂点からも 2 本の辺が出ているが、$B$ の側は $a$ から 3 本、$b$ から 3 本、$c$ から 0 本で、そろっていない。$S=A$ で $N(A)=\{a,b\}$、$\lvert N(A)\rvert=2<3$ なので、割り当てはない。cor-mar-regular の証明の段 2 で「$N(S)$ の頂点から出る辺は $k\lvert N(S)\rvert$ 本」を使ったが、ここでは $N(A)$ の頂点から出る辺は $6$ 本で、$2\lvert N(A)\rvert=4$ 本ではない。
$B$ の部分集合 $X_1,X_2,\dots,X_n$ から、要素 $x_1\in X_1$、$x_2\in X_2$、…、$x_n\in X_n$ を互いに異なるように選べるか、という問題を考える。$A=\{1,2,\dots,n\}$ とし、$i\in A$ と $x\in X_i$ を辺で結ぶと、$N(\{i\})=X_i$ で、$S\subset A$ について $N(S)$ は $S$ に入る $i$ の $X_i$ の和集合である。よって thm-mar-hall は次のように言いかえられる。
$X_1,\dots,X_n$ から互いに異なる代表を選べるための必要十分条件は、添字のどの集まり $I\subset\{1,\dots,n\}$ についても
$$
\left\lvert\,\bigcup_{i\in I}X_i\,\right\rvert\ge\lvert I\rvert
$$
が成り立つことである。
たとえば ex-mar-start は $X_1=\{a,b\}$、$X_2=\{a\}$、$X_3=\{b,c\}$ から代表を選ぶ問題で、$X_1\cup X_2=\{a,b\}$ のような和集合の個数を数えることになる。和集合の要素の個数は 集合の要素の個数と包除原理 で扱う。
Hall の条件が崩れるとき、$\lvert S\rvert-\lvert N(S)\rvert$ が「足りない仕事の数」である。その最大値が、割り当てられない人数の最小値になる。
$A$、$B$ が有限集合の 2 部グラフで、$\delta=\max_{S\subset A}\bigl(\lvert S\rvert-\lvert N(S)\rvert\bigr)$ とする($S=\emptyset$ で $0$ なので $\delta\ge0$)。$A$ の部分集合 $A_1$ 全体の割り当て($A_1$ の各頂点に、隣り合う $B$ の頂点を互いに異なるように対応させること)ができる $A_1$ の要素の個数の最大値は、$\lvert A\rvert-\delta$ である。
要点:$\lvert S\rvert-\lvert N(S)\rvert$ 人はどうしても余る。逆に、$B$ に「だれとでも隣り合う架空の仕事」を $\delta$ 個足すと Hall の条件が成り立つ。
$\lvert A\rvert-\delta$ 以下であること.$A_1$ 全体の割り当て $f$ があるとし、$\lvert S\rvert-\lvert N(S)\rvert=\delta$ となる $S$ をとる。$S\cap A_1$ の頂点の行き先は互いに異なり、どれも $N(S)$ に入るので、$\lvert S\cap A_1\rvert\le\lvert N(S)\rvert$ である。よって $S$ の頂点のうち $A_1$ に入らないものは $\lvert S\rvert-\lvert N(S)\rvert=\delta$ 個以上あり、$\lvert A_1\rvert\le\lvert A\rvert-\delta$ である。
$\lvert A\rvert-\delta$ 人を割り当てられること.$B$ に新しい頂点を $\delta$ 個足し、どれも $A$ のすべての頂点と辺で結ぶ。新しいグラフでの $N$ を $N^{+}$ と書くと、空でない $S$ では $N^{+}(S)=N(S)\cup(\text{新しい }\delta\text{ 個})$ なので $\lvert N^{+}(S)\rvert=\lvert N(S)\rvert+\delta\ge\lvert N(S)\rvert+\bigl(\lvert S\rvert-\lvert N(S)\rvert\bigr)=\lvert S\rvert$ である。thm-mar-hall より、新しいグラフで $A$ 全体の割り当て $g$ がある。新しい頂点は $\delta$ 個で、$g$ は単射なので、新しい頂点に割り当てられた $A$ の頂点は $\delta$ 個以下である。それ以外の頂点全体を $A_1$ とすると、$\lvert A_1\rvert\ge\lvert A\rvert-\delta$ で、$g$ を $A_1$ に制限したものは、もとのグラフでの $A_1$ 全体の割り当てである。
ex-mar-fail のグラフでは、$S=\{1,2\}$ で $\lvert S\rvert-\lvert N(S)\rvert=2-1=1$、ほかの $S$ ではこの値は $0$ 以下なので $\delta=1$ で、最大 $3-1=2$ 人を割り当てられる。実際、$1\to a$、$3\to b$ で 2 人を割り当てられ、$1$ と $2$ のどちらかは必ず余る。
prop-mar-deficiency の最大値は、2 部グラフの 最大のマッチング(端点を共有しない辺をできるだけ多く選んだもの)の辺の数である。大学のグラフ理論では、最大のマッチングの辺の数が、「どの辺にも少なくとも一方の端点が入る頂点の集まり」の要素の個数の最小値に等しいこと(König の定理)が知られている。この記事では証明しない。
KT17 の節 14.2 は、2 部グラフの最大のマッチングを、辺に向きと容量をつけたネットワークの最大の流れとして求める方法を述べ、その方法で割り当てが広げられなくなったときに見つかる頂点の集まり(人の数より仕事の数が少ない集まり)を手がかりに、Hall の定理(Theorem 14.7)を述べている。Lev24 の節 2.7 は Hall の結婚定理(Theorem 2.7.1)を述べ、トランプを 13 の山に分ける ex-mar-cards (2) の問題を例 2.7.2 として扱っている。
$A=\{1,2,3,4\}$、$B=\{a,b,c,d\}$ で、$1$ は $a,b$、$2$ は $b,c$、$3$ は $a,c$、$4$ は $c,d$ と隣り合う。$A$ 全体の割り当てを 1 つ見つけ、全部で何通りあるか求めよ。
$4$ が $c$ を使うと、$1,2,3$ に $a,b$ の 2 つしか残らないので割り当てられない($S=\{1,2,3\}$ に対し $N(S)=\{a,b,c\}$ から $c$ を除くと 2 個)。よって $4\to d$ である。残りの $1,2,3$ と $a,b,c$ で、$1\to a$ なら $3\to c$、$2\to b$。$1\to b$ なら $2\to c$、$3\to a$。割り当ては $1\to a,2\to b,3\to c,4\to d$ と $1\to b,2\to c,3\to a,4\to d$ の 2 通りである。
$A=\{P,Q,R,T\}$、$B=\{x,y,z\}$ で、$P$ は $x,y$、$Q$ は $x$、$R$ は $x,y,z$、$T$ は $y$ と隣り合う。$A$ 全体の割り当てがないことを、Hall の条件が崩れる部分集合を示して確かめよ。また、最大何人を割り当てられるか。
$N(\{P,Q,T\})=\{x,y\}$ で、$2<3$ である($A$ 全体でも $N(A)=\{x,y,z\}$ で $3<4$)。$\lvert S\rvert-\lvert N(S)\rvert$ の最大値は $1$ なので、prop-mar-deficiency より最大 $4-1=3$ 人で、たとえば $Q\to x$、$T\to y$、$R\to z$ である。
Mathpediaは寄付と、参考文献の書籍リンク(Amazonアソシエイト)の紹介料で運営されています。 支援について / 寄付する