コンテンツにスキップ

マッチング:Hall の結婚定理・König の定理・Tutte の定理

対象読者: 本テーマ第 1 章(道・閉路・木、握手補題、最長の道を取る論法)の内容と、学部 1 年の線形代数(行列、凸結合)を学んだ人。位相の知識は仮定しません。

前提となる記事:道・閉路・木:Euler 回路と Hamilton 閉路

生 Markdown

仕事の割り当てや、組み合わせの相手決めのように、「互いに重ならないように相手を 1 人ずつ選ぶ」問題がこの記事の主題です。選べないときに、その理由を 1 つの小さな「障害」で言い切れるか、というのが素朴な疑問になります。読み終えると、割り当てが可能かどうかを判定する条件と、不可能なときにその理由を示す方法が分かります。以下の箇条書きは全体の地図なので、初めて見る用語があっても、各節で順に説明するので読み進めてください。

  • マッチングが最大であることと、増加道が存在しないことは同値です(Berge の定理、定理 3.3)。2 つのマッチングの対称差が道と偶閉路に分かれることが根拠です。
  • 二部グラフでは、片側 AA を飽和するマッチングがあることと、どの S⊆AS\subseteq A についても ∣N(S)∣≥∣S∣|N(S)|\ge|S| であることが同値です(Hall の結婚定理、定理 4.2)。帰納法と増加道の 2 通りで証明します。
  • 二部グラフでは、最大マッチングの大きさ ν\nu と最小頂点被覆の大きさ τ\tau が一致します(König–Egerváry の定理、定理 4.9)。これは半順序集合の Dilworth の定理と互いに導けます。
  • 二重確率行列は置換行列の凸結合です(Birkhoff–von Neumann の定理、定理 6.2)。Hall の定理を行列の言葉に直したものです。
  • 一般のグラフが完全マッチングをもつのは、どの頂点集合 SS についても G−SG-S の奇成分が ∣S∣|S| 個以下のとき、そのときに限ります(Tutte の 1-因子定理、定理 7.2)。辺極大な反例の構造を調べて証明します。
  • 選好順位つきの二部マッチングには、必ず安定なものがあり、提案する側にとって最良のものが提案の手続きで得られます(Gale–Shapley の定理、定理 8.2)。

5 人の応募者と 5 つの仕事があり、各応募者にはこなせる仕事がいくつかあるとします。全員に、別々の、こなせる仕事を割り当てられるでしょうか。できない理由として分かりやすいのは、「ある 3 人がこなせる仕事を全部集めても 2 つしかない」という状況です。この 3 人に別々の仕事は割り当てられません。Hall の結婚定理は、割り当てができない理由はこの型のものしかないと主張します。

この「障害がなければ、できる」という形は、この章のどの定理にも共通しています。障害は、Hall の定理では近傍の小さい集合、König の定理では小さい頂点被覆、Tutte の定理では奇成分をたくさん残す頂点集合です。最大マッチングの大きさ(最大化問題の答え)が、障害の大きさ(最小化問題の答え)と一致するという形に書けるので、これらは最大最小定理と呼ばれます。第 3 章 では、同じ型の Menger の定理と最大フロー最小カット定理を扱い、そこから Hall と König の定理を導き直します。

証明の道具は、二部グラフと一般のグラフで切り替えます。二部グラフ(§4)では「増加道が無いときに、非飽和な頂点から交互道で届く範囲を調べる」という 1 つの議論(補題 4.1)で Hall と König の両方を示します。一般のグラフ(§7)ではこの議論が奇閉路のために壊れるので、「完全マッチングをもたない辺極大なグラフはどんな形か」を調べる議論に切り替えます。

グラフの語彙は 第 1 章 に従い、グラフは有限・単純・無向とします。

2. マッチング・被覆・独立集合

Section titled “2. マッチング・被覆・独立集合”

定義 2.1(マッチング)↗

グラフ GG の辺集合 M⊆E(G)M\subseteq E(G) で、どの 2 辺も端点を共有しないものをマッチングという。MM の辺の端点になっている頂点は MM で飽和されているといい、そうでない頂点は非飽和であるという。uv∈Muv\in M のとき、vv を uu の(MM での)相手という。辺の数が最大のマッチングを最大マッチング、その辺の数をマッチング数 ν(G)\nu(G) という。全頂点を飽和するマッチングを完全マッチングまたは 1-因子という。一般に、kk-正則な全域部分グラフを kk-因子という。

定義 2.2(頂点被覆・独立集合・辺被覆)↗

  • K⊆V(G)K\subseteq V(G) が頂点被覆であるとは、どの辺も KK の頂点を端点にもつことをいう。最小の大きさを被覆数 τ(G)\tau(G) という。
  • I⊆V(G)I\subseteq V(G) が独立集合であるとは、II のどの 2 頂点も隣接しないことをいう。最大の大きさを独立数 α(G)\alpha(G) という。
  • L⊆E(G)L\subseteq E(G) が辺被覆であるとは、どの頂点も LL のある辺の端点であることをいう。最小の大きさを辺被覆数 ρ(G)\rho(G) という(孤立点のないグラフでだけ定義される)。
  • S⊆V(G)S\subseteq V(G) の近傍を N(S)=⋃v∈SN(v)N(S)=\bigcup_{v\in S}N(v) と書く。

補題 2.3(弱双対性)✓

どのグラフでも、マッチング MM と頂点被覆 KK について ∣M∣≤∣K∣|M|\le|K| である。とくに ν(G)≤τ(G)\nu(G)\le\tau(G) であり、∣M∣=∣K∣|M|=|K| となる組があれば MM は最大マッチング、KK は最小頂点被覆である。

証明(補題 2.3)

MM の各辺 ee は KK の頂点を端点にもつので、その 1 つを φ(e)∈K\varphi(e)\in K と選びます。MM の辺は端点を共有しないので、φ:M→K\varphi:M\to K は単射で、∣M∣≤∣K∣|M|\le|K| です。最大マッチングと最小頂点被覆に当てはめれば ν≤τ\nu\le\tau です。∣M∣=∣K∣|M|=|K| なら ∣M∣≤ν≤τ≤∣K∣=∣M∣|M|\le\nu\le\tau\le|K|=|M| となり、すべて等号です。

三角形 K3K_3 では ν=1\nu=1、τ=2\tau=2 なので、一般には等号は成り立ちません。二部グラフでは等号が成り立つ、というのが König–Egerváry の定理です。

定義 3.1(交互道・増加道)↗

MM をマッチングとする。道 P=x0x1⋯xkP=x_0x_1\cdots x_k が MM-交互道であるとは、辺 xi−1xix_{i-1}x_i が MM に属するものと属さないものが交互に並ぶことをいう。両端点 x0≠xkx_0\ne x_k がどちらも MM で非飽和な MM-交互道を MM-増加道という。

増加道の最初と最後の辺は、端点が非飽和なので MM に属しません。したがって増加道の長さは奇数で、MM に属さない辺が属する辺より 1 本多くなっています。

補題 3.2(最大次数 2 のグラフの形)✓

最大次数が 2 以下の連結グラフは、道グラフか閉路グラフである。

証明(補題 3.2)

HH を最大次数 2 以下の連結グラフ、P=v0⋯vkP=v_0\cdots v_k を HH の最長の道とします。k=0k=0 なら、連結性から HH は 1 頂点です。k≥1k\ge1 とします。内部の頂点 v1,…,vk−1v_1,\dots,v_{k-1} は道の上で 2 つの隣接点をもつので、それ以外の辺をもちません。端点 v0v_0 の隣接点は、PP が最長なので PP の上にあります(命題 3.1[道・閉路・木] の証明の手順 1)。それは v1v_1 のほかには、まだ次数に余裕のある vkv_k しかありえません。vkv_k についても同じです。したがって、PP の頂点の間の辺は、PP の辺と、あるとすれば v0vkv_0v_k(k≥2k\ge2)だけで、PP の頂点と PP の外の頂点を結ぶ辺はありません。HH は連結なので V(H)=V(P)V(H)=V(P) で、HH は PP か、PP に v0vkv_0v_k を足した閉路です。

定理 3.3(Berge の定理)✓

グラフ GG のマッチング MM が最大マッチングであるためには、MM-増加道が存在しないことが必要十分である。

証明(定理 3.3)

必要性(増加道があれば大きくできる). P=x0⋯xkP=x_0\cdots x_k を MM-増加道とし、M′=M△E(P)M'=M\triangle E(P)(対称差。PP の上で MM の辺とそうでない辺を入れ替える)と置きます。M′M' がマッチングであることを確かめます。PP の外の頂点に接続する M′M' の辺は MM の辺と同じです。PP の内部の頂点 xix_i では、PP の 2 辺のうち一方だけが MM に属し、xix_i に接続する MM の辺はそれだけなので、入れ替えたあとも xix_i に接続する M′M' の辺はちょうど 1 本です。端点 x0,xkx_0,x_k は MM で非飽和だったので、接続する M′M' の辺は PP の端の辺 1 本だけです。よって M′M' はマッチングで、∣M′∣=∣M∣+1|M'|=|M|+1 です。MM は最大ではありません。

十分性(最大でなければ増加道がある). ∣M′∣>∣M∣|M'|>|M| であるマッチング M′M' があるとします。全域部分グラフ H=(V(G),M△M′)H=(V(G),M\triangle M') を考えます。各頂点に接続する MM の辺も M′M' の辺も高々 1 本なので、HH の最大次数は 2 以下です。補題 3.2 から、HH の各連結成分は道か閉路です。HH の次数 2 の頂点では、接続する 2 辺の一方が M∖M′M\setminus M'、他方が M′∖MM'\setminus M に属します。したがって、各成分の上で MM の辺と M′M' の辺は交互に並びます。

閉路の成分では、交互に並ぶので MM の辺と M′M' の辺は同数です。∣M′∖M∣>∣M∖M′∣|M'\setminus M|>|M\setminus M'| なので、M′M' の辺のほうが多い成分があり、それは道 QQ で、最初と最後の辺が M′M' に属します。QQ は MM-交互道です。

QQ の端点 xx が MM で非飽和であることを示します。xx に接続する QQ の辺を e∈M′∖Me\in M'\setminus M とします。xx が MM の辺 ff で飽和されているとすると、e∉Me\notin M から f≠ef\ne e です。f∈M′f\in M' なら xx に M′M' の辺が 2 本接続して矛盾するので、f∈M∖M′⊆E(H)f\in M\setminus M'\subseteq E(H) です。すると xx の HH での次数は 2 以上となり、xx が道 QQ の端点(次数 1)であることに反します。よって QQ は MM-増加道です。

例 3.4(増加道を追う)

A={a1,a2,a3}A=\{a_1,a_2,a_3\}、B={b1,b2,b3}B=\{b_1,b_2,b_3\} とし、K3,3K_{3,3} から 4 辺を除いて辺を a1b1, a1b2, a2b1, a2b3, a3b2a_1b_1,\ a_1b_2,\ a_2b_1,\ a_2b_3,\ a_3b_2 の 5 本にしたグラフを考えます。マッチング M={a1b2, a2b1}M=\{a_1b_2,\ a_2b_1\} では a3a_3 と b3b_3 が非飽和です。a3a_3 から出発すると、

a3 ⟶∉M b2 ⟶∈M a1 ⟶∉M b1 ⟶∈M a2 ⟶∉M b3a_3\ \overset{\notin M}{\longrightarrow}\ b_2\ \overset{\in M}{\longrightarrow}\ a_1\ \overset{\notin M}{\longrightarrow}\ b_1\ \overset{\in M}{\longrightarrow}\ a_2\ \overset{\notin M}{\longrightarrow}\ b_3

が MM-増加道です。入れ替えると M′={a3b2, a1b1, a2b3}M'=\{a_3b_2,\ a_1b_1,\ a_2b_3\} となり、これは完全マッチングです。a3a_3 の隣接点は b2b_2 だけなので、a3a_3 を飽和するには、いったん a1a_1 を b2b_2 から引きはがして b1b_1 に移し、a2a_2 を b3b_3 に移すという玉突きが必要でした。増加道はこの玉突きを記述しています。

次の動画で、増加道が a3a_3 から b3b_3 へ 1 辺ずつ伸び、最後に道の上で入れ替わってマッチングが 1 本増える様子を見てください。

二部グラフ上で、非飽和な a3 から赤い増加道が b2、a1、b1、a2、b3 の順に 1 辺ずつ伸びる。その後、道の上でマッチングの辺と非マッチングの辺が入れ替わり、a3b2、a1b1、a2b3 の完全マッチングになる。
例の増加道をたどる動画。赤が道、太線がマッチングです。道の上で の辺と にない辺を入れ替えると、 は完全マッチングになります。

4. 二部グラフ:Hall の定理と König の定理

Section titled “4. 二部グラフ:Hall の定理と König の定理”

この節では GG を二部グラフとし、二部分割 (A,B)(A,B) を 1 つ固定します。二部グラフの交互道は AA と BB の頂点を交互に通ります。AA の非飽和な頂点 uu から出発する MM-交互道 x0x1x2⋯x_0x_1x_2\cdots(x0=ux_0=u)では、x0x_0 が非飽和なので最初の辺は MM に属さず、

x2j∈A,x2j+1∈B,x2jx2j+1∉M,x2j+1x2j+2∈Mx_{2j}\in A,\quad x_{2j+1}\in B,\quad x_{2j}x_{2j+1}\notin M,\quad x_{2j+1}x_{2j+2}\in M

となります。「AA から BB へは MM に属さない辺で、BB から AA へは MM の辺で」進むわけです。

次の補題のねらいは、増加道が無いときに、非飽和な頂点から交互道でたどれる頂点を AA 側の集合 SS と BB 側の集合 TT に分けて調べることです。結論は、TT が SS の近傍そのものになり、しかも TT の大きさが SS より非飽和な頂点の数だけ小さい、というものです。この SS が Hall の条件を破る集合になり、(A∖S)∪T(A\setminus S)\cup T が小さい頂点被覆になります。

補題 4.1(交互道で届く範囲)✓

二部グラフ GG(二部分割 (A,B)(A,B))のマッチング MM が増加道をもたないとする。AA の MM-非飽和な頂点の集合を UU とし、UU の頂点から出発する MM-交互道で届く頂点全体を ZZ、S=Z∩AS=Z\cap A、T=Z∩BT=Z\cap B と置く(長さ 0 の道を含めるので U⊆SU\subseteq S)。このとき次が成り立つ。

  1. TT の頂点はすべて MM で飽和されていて、その相手は S∖US\setminus U に属する。MM は TT から S∖US\setminus U への全単射を与え、∣T∣=∣S∣−∣U∣|T|=|S|-|U| である。
  2. N(S)=TN(S)=T である。
証明(補題 4.1)

1. t∈Tt\in T とし、UU の頂点 x0x_0 から tt への MM-交互道 P=x0x1⋯x2k+1P=x_0x_1\cdots x_{2k+1}(x2k+1=tx_{2k+1}=t)を取ります。tt が非飽和なら PP は両端が非飽和な交互道、すなわち増加道となり、仮定に反します。よって tt は飽和されています。相手を t′∈At'\in A とします。t′t' が PP の上にあるとすると、t′=x2jt'=x_{2j}(AA の頂点なので添字は偶数)です。j=0j=0 なら x0x_0 が非飽和であることに反し、j≥1j\ge1 なら x2jx_{2j} の相手は x2j−1≠tx_{2j-1}\ne t なので矛盾します。したがって t′t' は PP の上になく、PP に MM の辺 tt′tt' を足した道も MM-交互道で、t′∈St'\in S です。t′t' は飽和されているので t′∈S∖Ut'\in S\setminus U です。

MM はマッチングなので、対応 t↦t′t\mapsto t' は単射です。全射であることを示します。s∈S∖Us\in S\setminus U とすると、ss への交互道 x0⋯x2jx_0\cdots x_{2j}(x2j=sx_{2j}=s)は、s∉Us\notin U かつ s≠x0s\ne x_0(x0=sx_0=s だと s∈Us\in U)なので j≥1j\ge1 で、最後の辺 x2j−1x2jx_{2j-1}x_{2j} は MM に属します。x2j−1∈Tx_{2j-1}\in T で、その相手が ss です。よって全単射で、∣T∣=∣S∖U∣=∣S∣−∣U∣|T|=|S\setminus U|=|S|-|U| です。

2. T⊆N(S)T\subseteq N(S) を示します。t∈Tt\in T への交互道 x0⋯x2k+1x_0\cdots x_{2k+1} で、x2k∈Sx_{2k}\in S は tt と隣接します。

N(S)⊆TN(S)\subseteq T を示します。s∈Ss\in S、b∈N(s)b\in N(s) とします。sb∈Msb\in M のとき、ss は飽和されているので s∈S∖Us\in S\setminus U で、1 の全射性の証明から、ss の相手 bb は TT に属します。sb∉Msb\notin M のとき、UU の頂点から ss への交互道 PP(長さは偶数)を取ります。bb が PP の上にあれば、PP の途中までの部分も交互道なので b∈Z∩B=Tb\in Z\cap B=T です。bb が PP の上になければ、PP の最後の辺は(あれば)MM に属するので、PP に MM に属さない辺 sbsb を足した道も交互道で、b∈Tb\in T です。

a₃a₁a₂b₁b₂S(A 側)T(B 側)
補題の例。、、辺は 、(太線)。非飽和な から届くのは で、(塗りつぶし)、(塗りつぶし)です。 で、 になっています。

定理 4.2(Hall の結婚定理)✓

二部グラフ GG(二部分割 (A,B)(A,B))が AA の全頂点を飽和するマッチングをもつためには、

∣N(S)∣≥∣S∣(すべての S⊆A)|N(S)|\ge|S|\qquad(\text{すべての }S\subseteq A)

が成り立つこと(Hall の条件)が必要十分である。

証明(定理 4.2)

必要性. MM が AA を飽和するとします。S⊆AS\subseteq A の各頂点の相手は N(S)N(S) に属し、相異なります。よって ∣N(S)∣≥∣S∣|N(S)|\ge|S| です。

十分性の第 1 の証明(∣A∣|A| についての帰納法). 完全帰納法(定理 4.3[証明の技術])を使います。∣A∣=0|A|=0 なら空のマッチングでよく、∣A∣=1|A|=1 なら ∣N(A)∣≥1|N(A)|\ge1 なので辺が 1 本取れます。∣A∣≥2|A|\ge2 とし、AA 側の頂点数がより小さい二部グラフでは定理が正しいとします。

場合 1: 空でない真部分集合 S⊊AS\subsetneq A がすべて ∣N(S)∣≥∣S∣+1|N(S)|\ge|S|+1 を満たす. 辺 abab(a∈Aa\in A、b∈Bb\in B)を 1 本選び、G′=G−{a,b}G'=G-\{a,b\} とします。空でない S⊆A∖{a}S\subseteq A\setminus\{a\} について、NG′(S)=N(S)∖{b}N_{G'}(S)=N(S)\setminus\{b\} なので ∣NG′(S)∣≥∣N(S)∣−1≥∣S∣|N_{G'}(S)|\ge|N(S)|-1\ge|S| です。G′G' は Hall の条件を満たすので、帰納法の仮定から A∖{a}A\setminus\{a\} を飽和するマッチングがあり、辺 abab を足せば AA を飽和します。

場合 2: 空でない真部分集合 S0⊊AS_0\subsetneq A で ∣N(S0)∣=∣S0∣|N(S_0)|=|S_0| となるものがある. G1=G[S0∪N(S0)]G_1=G[S_0\cup N(S_0)] では、S⊆S0S\subseteq S_0 の近傍は GG での近傍と同じなので、Hall の条件が成り立ちます。∣S0∣<∣A∣|S_0|<|A| なので、帰納法の仮定から G1G_1 に S0S_0 を飽和するマッチング M1M_1 があります。

G2=G−(S0∪N(S0))G_2=G-(S_0\cup N(S_0)) とします。S⊆A∖S0S\subseteq A\setminus S_0 について NG2(S)=N(S)∖N(S0)N_{G_2}(S)=N(S)\setminus N(S_0) です。N(S∪S0)N(S\cup S_0) は N(S0)N(S_0) と N(S)∖N(S0)N(S)\setminus N(S_0) の非交和なので、GG の Hall の条件から

∣NG2(S)∣=∣N(S∪S0)∣−∣N(S0)∣≥(∣S∣+∣S0∣)−∣S0∣=∣S∣|N_{G_2}(S)|=|N(S\cup S_0)|-|N(S_0)|\ge(|S|+|S_0|)-|S_0|=|S|

です。∣A∖S0∣<∣A∣|A\setminus S_0|<|A| なので、G2G_2 に A∖S0A\setminus S_0 を飽和するマッチング M2M_2 があります。M1M_1 と M2M_2 は頂点を共有しないので、M1∪M2M_1\cup M_2 は AA を飽和するマッチングです。

十分性の第 2 の証明(増加道). MM を GG の最大マッチングとします。定理 3.3 の必要性の側から、MM-増加道はありません。AA に非飽和な頂点があるとして、補題 4.1 の U≠∅U\ne\varnothing、SS、TT を取ると、

∣N(S)∣=∣T∣=∣S∣−∣U∣<∣S∣|N(S)|=|T|=|S|-|U|<|S|

となり、Hall の条件に反します。よって MM は AA を飽和します。

第 2 の証明は、Hall の条件を破る集合 SS を具体的に与えます。最大マッチングを 1 つ求めれば、「なぜこれ以上大きくできないか」の証拠が交互道で届く範囲として手に入るわけです。

系 4.3(不足数版)✓

二部グラフ GG(二部分割 (A,B)(A,B))の不足数を def⁡(G)=max⁡S⊆A(∣S∣−∣N(S)∣)\operatorname{def}(G)=\max_{S\subseteq A}\bigl(|S|-|N(S)|\bigr) と定める(S=∅S=\varnothing を取れるので def⁡(G)≥0\operatorname{def}(G)\ge0)。このとき

ν(G)=∣A∣−def⁡(G)\nu(G)=|A|-\operatorname{def}(G)

である。

証明(系 4.3)

d=def⁡(G)d=\operatorname{def}(G) と置きます。

ν≤∣A∣−d\nu\le|A|-d. MM をマッチング、S⊆AS\subseteq A とします。SS の飽和された頂点の相手は N(S)N(S) の相異なる頂点なので、SS の飽和された頂点は ∣N(S)∣|N(S)| 個以下で、AA の非飽和な頂点は ∣S∣−∣N(S)∣|S|-|N(S)| 個以上です。SS を動かして ∣M∣≤∣A∣−d|M|\le|A|-d を得ます。

ν≥∣A∣−d\nu\ge|A|-d. BB に新しい頂点を dd 個足し、それぞれを AA の全頂点と結んだ二部グラフを G+G^+ とします。空でない S⊆AS\subseteq A について ∣NG+(S)∣=∣N(S)∣+d≥∣S∣|N_{G^+}(S)|=|N(S)|+d\ge|S| なので、G+G^+ は Hall の条件を満たし、定理 4.2 から AA を飽和するマッチング M+M^+ があります。新しい頂点に接続する辺は M+M^+ に高々 dd 本なので、それらを除くと GG のマッチングで辺が ∣A∣−d|A|-d 本以上のものが残ります。

系 4.4(相異なる代表系)✓

有限集合の族 A1,…,AnA_1,\dots,A_n について、相異なる元 x1,…,xnx_1,\dots,x_n で xi∈Aix_i\in A_i となるもの(相異なる代表系、SDR)が存在するためには、どの I⊆{1,…,n}I\subseteq\{1,\dots,n\} についても ∣⋃i∈IAi∣≥∣I∣\bigl|\bigcup_{i\in I}A_i\bigr|\ge|I| であることが必要十分である。

証明(系 4.4)

添字の集合 A={1,…,n}A=\{1,\dots,n\} と元の集合 B=⋃iAiB=\bigcup_iA_i を 2 つの側とし(添字と元は別の頂点として扱います)、x∈Aix\in A_i のとき ii と xx を結んだ二部グラフを作ります。I⊆AI\subseteq A の近傍は ⋃i∈IAi\bigcup_{i\in I}A_i で、AA を飽和するマッチングは SDR にほかなりません。定理 4.2 がそのまま主張を与えます。

系 4.5(正則二部グラフの完全マッチング)✓

k≥1k\ge1 とする。kk-正則な二部グラフは完全マッチングをもつ。

証明(系 4.5)

二部分割を (A,B)(A,B) とします。辺の数を AA 側、BB 側から数えると k∣A∣=∣E(G)∣=k∣B∣k|A|=|E(G)|=k|B| なので ∣A∣=∣B∣|A|=|B| です。S⊆AS\subseteq A とします。SS の頂点に接続する辺は k∣S∣k|S| 本で、そのもう一方の端点はすべて N(S)N(S) に入ります。N(S)N(S) の頂点に接続する辺は全部で k∣N(S)∣k|N(S)| 本なので、k∣S∣≤k∣N(S)∣k|S|\le k|N(S)|、すなわち ∣N(S)∣≥∣S∣|N(S)|\ge|S| です。定理 4.2 から AA を飽和するマッチングがあり、∣A∣=∣B∣|A|=|B| なのでそれは完全マッチングです。

例 4.6(トランプ 52 枚を 13 山に分ける)

ジョーカーを除く 52 枚のトランプを、4 枚ずつ 13 の山に勝手に分けます。このとき、各山から 1 枚ずつ選んで、A, 2, …, K の 13 種類の数字がすべてそろうようにできます。山を AA 側、数字を BB 側とし、山にその数字のカードが入っているとき結んだ二部グラフを考えます。kk 個の山には 4k4k 枚のカードがあり、同じ数字のカードは 4 枚しかないので、そこに現れる数字は kk 種類以上です。Hall の条件が成り立つので、定理 4.2 から 13 の山を相異なる数字に対応させるマッチングがあり、数字は 13 種類なのですべてそろいます。

例 4.7(Latin 長方形は Latin 方陣に延長できる)

r×nr\times n の表(r<nr<n)の各マスに 1,…,n1,\dots,n の数字を入れ、どの行にもどの列にも同じ数字が 2 回現れないようにしたものを Latin 長方形といいます。これには必ず r+1r+1 行目を足せます。列を AA 側、数字を BB 側とし、列にまだその数字が現れていないとき結びます。各列には rr 個の数字が現れているので、列の次数は n−rn-r です。各数字は各行にちょうど 1 回、つまり rr 個の相異なる列に現れているので、数字の次数も n−rn-r です。(n−r)(n-r)-正則な二部グラフなので、系 4.5 から完全マッチングがあり、それが r+1r+1 行目を与えます。繰り返せば n×nn\times n の Latin 方陣になります。

例 4.8(無限グラフでは Hall の条件だけでは足りない)

A={a0,a1,a2,… }A=\{a_0,a_1,a_2,\dots\}、B={b1,b2,… }B=\{b_1,b_2,\dots\} とし、a0a_0 をすべての bjb_j と、aia_i(i≥1i\ge1)を bib_i だけと結びます。有限集合 S⊆AS\subseteq A について、a0∉Sa_0\notin S なら ∣N(S)∣=∣S∣|N(S)|=|S|、a0∈Sa_0\in S なら N(S)=BN(S)=B は無限集合なので、Hall の条件は成り立ちます。しかし AA を飽和するマッチングはありません。a0a_0 の相手を bkb_k とすると、aka_k の唯一の隣接点が取られてしまうからです。定理 4.2 の証明は、どちらも有限性(帰納法、最大マッチングの存在)を使っています。

定理 4.9(König–Egerváry の定理)✓

二部グラフ GG では ν(G)=τ(G)\nu(G)=\tau(G) である。

証明(定理 4.9)

MM を最大マッチングとします。定理 3.3 から増加道はないので、補題 4.1 の U,S,TU,S,T が取れます。

K=(A∖S)∪TK=(A\setminus S)\cup T

が頂点被覆で、∣K∣=∣M∣|K|=|M| であることを示します。そうすれば 補題 2.3 から ν=∣M∣=∣K∣=τ\nu=|M|=|K|=\tau です。

KK は頂点被覆. 辺 abab(a∈Aa\in A、b∈Bb\in B)を取ります。a∉Sa\notin S なら a∈Ka\in K です。a∈Sa\in S なら、補題 4.1 の 2 から b∈N(S)=T⊆Kb\in N(S)=T\subseteq K です。

∣K∣=∣M∣|K|=|M|. A∖SA\setminus S の頂点は、U⊆SU\subseteq S なのですべて飽和されています。TT の頂点も 補題 4.1 の 1 からすべて飽和されています。よって KK の各頂点は MM の辺をちょうど 1 本もちます。MM の 1 本の辺 abab が KK の頂点を 2 つ含むとすると、a∈A∖Sa\in A\setminus S かつ b∈Tb\in T ですが、TT の頂点の相手は SS に属する(同 1)ので矛盾します。よって対応「KK の頂点 ↦\mapsto それを含む MM の辺」は単射で、∣K∣≤∣M∣|K|\le|M| です。逆向きの不等式は 補題 2.3 です。

5. Gallai の恒等式と Dilworth の定理との関係

Section titled “5. Gallai の恒等式と Dilworth の定理との関係”

この節の後半では半順序集合の言葉が出ます。鎖は、どの 2 元も大小が比べられる部分集合、反鎖は、どの 2 元も大小が比べられない部分集合のことで、幅は反鎖の大きさの最大値です。

4 つの量 ν,τ,α,ρ\nu,\tau,\alpha,\rho の間には、二部グラフに限らず成り立つ 2 つの関係があります。

定理 5.1(Gallai の恒等式)✓

nn 頂点のグラフ GG について α(G)+τ(G)=n\alpha(G)+\tau(G)=n が成り立つ。さらに GG に孤立点がなければ ν(G)+ρ(G)=n\nu(G)+\rho(G)=n が成り立つ。

証明(定理 5.1)

α+τ=n\alpha+\tau=n. I⊆V(G)I\subseteq V(G) が独立集合であることは、両端が II に入る辺がないこと、すなわちどの辺も V(G)∖IV(G)\setminus I に端点をもつことと同じで、これは V(G)∖IV(G)\setminus I が頂点被覆であることです。よって最大の独立集合の補集合は最小の頂点被覆で、α=n−τ\alpha=n-\tau です。

ρ≤n−ν\rho\le n-\nu. 最大マッチング MM を取ります。非飽和な頂点は n−2νn-2\nu 個あり、孤立点はないので、それぞれに接続する辺を 1 本ずつ選んで MM に足すと辺被覆になります。その辺の数は ν+(n−2ν)=n−ν\nu+(n-2\nu)=n-\nu 以下です。

ρ≥n−ν\rho\ge n-\nu. 最小の辺被覆 LL を取り、LL に含まれるマッチングのうち辺の数が最大のもの MM を取ります。MM で非飽和な頂点の集合を WW とすると、∣W∣=n−2∣M∣|W|=n-2|M| です。LL の辺で両端が WW に入るものはありません(あれば MM に足せて、MM の選び方に反します)。WW の各頂点は LL の辺で覆われ、その辺は MM に属さず(WW の頂点は MM で非飽和)、WW の頂点を 1 つしか含みません。よって ∣L∖M∣≥∣W∣|L\setminus M|\ge|W| で、

ρ=∣L∣≥∣M∣+(n−2∣M∣)=n−∣M∣≥n−ν\rho=|L|\ge|M|+(n-2|M|)=n-|M|\ge n-\nu

です。

二部グラフでは 定理 4.9 と合わせて α=n−ν\alpha=n-\nu、孤立点がなければ α=ρ\alpha=\rho となります。

König–Egerváry の定理は、半順序集合の Dilworth の定理(定理 8.2[半順序集合と Möbius 反転]。鎖分割の最小個数は幅に等しい)と同じ内容を別の言葉で述べたものです。鎖・反鎖・幅の定義は 定義 8.1[半順序集合と Möbius 反転] に従います。

命題 5.2(König の定理と Dilworth の定理は互いに導ける)✓

  1. 二部グラフ GG(二部分割 (A,B)(A,B)、nn 頂点)に対し、V(G)V(G) 上の半順序を「a<b  ⟺  a∈A, b∈B, ab∈E(G)a<b\iff a\in A,\ b\in B,\ ab\in E(G)」で定めると、鎖分割の最小個数は n−ν(G)n-\nu(G)、幅は n−τ(G)n-\tau(G) である。したがって、この半順序集合に対する Dilworth の定理の主張は ν(G)=τ(G)\nu(G)=\tau(G) と同値である。
  2. nn 元の有限半順序集合 P={p1,…,pn}P=\{p_1,\dots,p_n\} に対し、頂点 a1,…,an,b1,…,bna_1,\dots,a_n,b_1,\dots,b_n をもち「aibja_ib_j が辺   ⟺  pi<pj\iff p_i<p_j」である二部グラフ GPG_P を作る。このとき PP は n−ν(GP)n-\nu(G_P) 個の鎖に分割でき、大きさ n−τ(GP)n-\tau(G_P) 以上の反鎖をもつ。したがって、ν(GP)=τ(GP)\nu(G_P)=\tau(G_P) から PP に対する Dilworth の定理が従う。
証明(命題 5.2)

1. 定めた関係は、x<y<zx<y<z となる 3 元がない(yy は BB と AA の両方に属することになる)ので推移律を自明に満たし、半順序です。鎖は 1 元か、隣接する 2 元 {a,b}\{a,b\} です。鎖分割で 2 元の鎖の全体はマッチングをなし、逆にマッチング MM は「MM の辺と、非飽和な頂点 1 つずつ」という n−∣M∣n-|M| 個の鎖への分割を与えます。よって鎖分割の最小個数は n−ν(G)n-\nu(G) です。相異なる 2 元が比較可能であることは隣接することと同じなので、反鎖は独立集合で、幅は α(G)=n−τ(G)\alpha(G)=n-\tau(G) です(定理 5.1)。「鎖分割の最小個数 == 幅」は n−ν=n−τn-\nu=n-\tau となります。

2. 鎖分割. GPG_P の最大マッチング MM を取り、aibj∈Ma_ib_j\in M のとき pi→pjp_i\to p_j と矢印を引きます。aia_i は MM の辺を高々 1 本もつので各元から出る矢印は高々 1 本、bjb_j についても同様に各元に入る矢印は高々 1 本です。矢印 pi→pjp_i\to p_j は pi<pjp_i<p_j を意味するので、矢印をたどって元に戻ることはありません。矢印を辺と見たグラフが閉路をもつとすると、閉路の各頂点で 2 本の辺の一方が入る矢印、他方が出る矢印でなければならず、矢印をたどって一周できてしまうので、このグラフは森です。辺は ∣M∣=ν(GP)|M|=\nu(G_P) 本なので、連結成分は n−ν(GP)n-\nu(G_P) 個です(補題 2.2[グラフと行列式])。各成分は最大次数 2 以下の木、すなわち道(補題 3.2)で、矢印の向きに pi1<pi2<⋯p_{i_1}<p_{i_2}<\cdots と並ぶ鎖です。これで PP が n−ν(GP)n-\nu(G_P) 個の鎖に分割されました。

反鎖. GPG_P の最小頂点被覆 KK を取り、Q={pi:ai∉K かつ bi∉K}Q=\{p_i: a_i\notin K\text{ かつ }b_i\notin K\} とします。KK の各頂点が除外する添字は 1 つなので ∣Q∣≥n−∣K∣=n−τ(GP)|Q|\ge n-|K|=n-\tau(G_P) です。pi,pj∈Qp_i,p_j\in Q で pi<pjp_i<p_j とすると、辺 aibja_ib_j の両端がどちらも KK に入らず、KK が頂点被覆であることに反します。よって QQ は反鎖です。

Dilworth の定理. 鎖と反鎖は高々 1 元でしか交わらないので、どの鎖分割の鎖の個数も、どの反鎖の大きさ以上です。ν(GP)=τ(GP)\nu(G_P)=\tau(G_P) なら、上で作った鎖分割と反鎖は個数と大きさが一致する(n−ν(GP)n-\nu(G_P) 個の鎖と、n−ν(GP)n-\nu(G_P) 元以上の反鎖)ので、鎖分割の最小個数と幅はどちらも n−ν(GP)n-\nu(G_P) に等しくなります。

反鎖への分割についての双対な主張(Mirsky の定理、命題 8.3[半順序集合と Möbius 反転])は、最長の鎖の長さで層に分けるだけで示せます。Dilworth の定理のほうが深いのは、König の定理と同じく「増加道」にあたる組み替えが必要だからです。

定義 6.1(二重確率行列・置換行列)↗

成分がすべて非負の実数で、各行の和と各列の和がすべて 1 である nn 次正方行列を二重確率行列という。{1,…,n}\{1,\dots,n\} の置換 σ\sigma に対し、(i,σ(i))(i,\sigma(i)) 成分が 1 でほかの成分が 0 の行列 PσP_\sigma を置換行列という。

定理 6.2(Birkhoff–von Neumann の定理)✓

nn 次の二重確率行列 AA は、置換行列の凸結合である。すなわち、置換 σ1,…,σr\sigma_1,\dots,\sigma_r と正の実数 λ1,…,λr\lambda_1,\dots,\lambda_r で

A=∑k=1rλkPσk,∑k=1rλk=1A=\sum_{k=1}^r\lambda_kP_{\sigma_k},\qquad\sum_{k=1}^r\lambda_k=1

となるものがある。

証明(定理 6.2)

少し一般にして、次を示します。

主張. 成分が非負で、各行の和と各列の和がすべて同じ値 s≥0s\ge0 である nn 次正方行列 AA は、A=∑kλkPσkA=\sum_k\lambda_kP_{\sigma_k}(λk>0\lambda_k>0、∑kλk=s\sum_k\lambda_k=s)と書ける。

AA の正の成分の個数についての完全帰納法(定理 4.3[証明の技術])で示します。正の成分がなければ A=OA=O、s=0s=0 で、空の和が答えです。

正の成分があるとします。このとき s>0s>0 です。行 1,…,n1,\dots,n を一方の側、列 1,…,n1,\dots,n を他方の側とし、aij>0a_{ij}>0 のとき行 ii と列 jj を結んだ二部グラフ HH を作ります。行の集合 SS を取ると、SS の行の成分の総和は s∣S∣s|S| です。この総和に寄与する正の成分はすべて N(S)N(S) の列にあり、N(S)N(S) の列の成分の総和は s∣N(S)∣s|N(S)| なので、s∣S∣≤s∣N(S)∣s|S|\le s|N(S)|、すなわち ∣N(S)∣≥∣S∣|N(S)|\ge|S| です。定理 4.2 から行をすべて飽和するマッチングがあり、行と列は同数なのでこれは完全マッチングです。言い換えると、置換 σ\sigma で、すべての ii について aiσ(i)>0a_{i\sigma(i)}>0 となるものがあります。

λ=min⁡iaiσ(i)>0\lambda=\min_ia_{i\sigma(i)}>0 とし、A′=A−λPσA'=A-\lambda P_\sigma と置きます。A′A' の成分は非負で、各行・各列の和は s−λ≥0s-\lambda\ge0 です(λ≤aiσ(i)≤s\lambda\le a_{i\sigma(i)}\le s)。最小値を達成する成分が 0 になるので、A′A' の正の成分は AA より少なくなります。帰納法の仮定から A′=∑kλkPσkA'=\sum_k\lambda_kP_{\sigma_k}、∑kλk=s−λ\sum_k\lambda_k=s-\lambda と書け、A=λPσ+∑kλkPσkA=\lambda P_\sigma+\sum_k\lambda_kP_{\sigma_k} が求める表示です。

定理は s=1s=1 の場合です。

例 6.3(分解の計算と、行列式の展開項との対応)

A=14(220112112)A=\frac14\begin{pmatrix}2&2&0\\1&1&2\\1&1&2\end{pmatrix}

は二重確率行列です。証明の手順を実行します。置換を (σ(1),σ(2),σ(3))(\sigma(1),\sigma(2),\sigma(3)) で表します。σ=(1,2,3)\sigma=(1,2,3) は a11,a22,a33>0a_{11},a_{22},a_{33}>0 を満たし、最小値は 1/41/4 です。引くと 14(120102111)\frac14\begin{pmatrix}1&2&0\\1&0&2\\1&1&1\end{pmatrix} が残ります。次に σ=(2,3,1)\sigma=(2,3,1) を係数 1/41/4 で引くと 14(110101011)\frac14\begin{pmatrix}1&1&0\\1&0&1\\0&1&1\end{pmatrix}、さらに σ=(1,3,2)\sigma=(1,3,2) を係数 1/41/4 で引くと 14(010100001)=14P(2,1,3)\frac14\begin{pmatrix}0&1&0\\1&0&0\\0&0&1\end{pmatrix}=\frac14P_{(2,1,3)} が残ります。したがって

A=14(P(1,2,3)+P(2,3,1)+P(1,3,2)+P(2,1,3))A=\tfrac14\bigl(P_{(1,2,3)}+P_{(2,3,1)}+P_{(1,3,2)}+P_{(2,1,3)}\bigr)

です。

証明に現れた二部グラフ HH の完全マッチングは、「すべての ii で aiσ(i)≠0a_{i\sigma(i)}\ne0 となる置換 σ\sigma」、つまり行列式 det⁡A=∑σsgn⁡(σ)∏iaiσ(i)\det A=\sum_\sigma\operatorname{sgn}(\sigma)\prod_ia_{i\sigma(i)} の 0 でない展開項と 1 対 1 に対応します。第 1 行で余因子展開(定理 5.2[行列式とその性質])することは、行 1 の相手の列を選んで残りの 2×22\times2 の問題に帰着することにあたります。この例では 0 でない項はちょうど上の 4 つの置換で、4A4A について各項の絶対値は 44、符号は順に +,+,−,−+,+,-,- なので det⁡(4A)=0\det(4A)=0 です(第 2 行と第 3 行が等しいことと合っています)。完全マッチングがあっても、符号の相殺で行列式は 0 になりえます。符号を付けない和(パーマネント)は 1616 で、完全マッチングの「重み付きの個数」です。平面的グラフでは符号をうまく付けて行列式で完全マッチングを数えられます(Kasteleyn の定理、定理 4.6[グラフと行列式])。

二部グラフでないグラフでは、補題 4.1 の議論が壊れます。奇閉路があると、同じ頂点に MM の辺で届く交互道と MM でない辺で届く交互道の両方がありえて、「AA 側・BB 側」の区別ができないからです。ここからは、交互道を追う代わりに、完全マッチングをもたないグラフに辺を足せるだけ足したらどんな形になるかを調べます。

定義 7.1(奇成分)↗

頂点数が奇数の連結成分を奇成分といい、グラフ HH の奇成分の個数を o(H)o(H) と書く。G−vG-v がどの頂点 vv についても完全マッチングをもつグラフ GG を因子臨界という。

S⊆V(G)S\subseteq V(G) を除いたとき、G−SG-S の奇成分 CC の頂点を CC の中だけで完全にマッチングすることはできません。少なくとも 1 頂点は SS の頂点を相手にする必要があります。したがって、完全マッチングがあるなら o(G−S)≤∣S∣o(G-S)\le|S| でなければなりません。Tutte の定理は、これが唯一の障害だと主張します。

定理 7.2(Tutte の 1-因子定理)✓

グラフ GG が完全マッチングをもつためには、

o(G−S)≤∣S∣(すべての S⊆V(G))o(G-S)\le|S|\qquad(\text{すべての }S\subseteq V(G))

が成り立つこと(Tutte の条件)が必要十分である。

証明の方針は、完全マッチングをもたない反例があるなら、辺を足せるだけ足した極大な反例を作り、その形が完全グラフの寄せ集めになることを示して、完全マッチングを実際に組み立てて矛盾させる、というものです。手順 3 の x,y,z,wx,y,z,w は、「完全グラフでない」と仮定した成分から、辺を 1 本足すだけで完全マッチングが現れる 2 か所を取り出すための頂点です。

証明(定理 7.2)

必要性. MM を完全マッチング、S⊆V(G)S\subseteq V(G) とします。G−SG-S の奇成分 CC の頂点がすべて CC の中の相手をもつとすると ∣V(C)∣|V(C)| が偶数になるので、CC には SS の頂点を相手とする頂点があります。その相手を φ(C)∈S\varphi(C)\in S とすると、MM はマッチングなので φ\varphi は単射で、o(G−S)≤∣S∣o(G-S)\le|S| です。

十分性. GG が Tutte の条件を満たすのに完全マッチングをもたないとして、矛盾を導きます。

手順 0: nn は偶数. S=∅S=\varnothing とすると o(G)≤0o(G)\le0 なので、GG のどの成分も頂点数が偶数で、n=∣V(G)∣n=|V(G)| は偶数です。

手順 1: 辺を足しても Tutte の条件は保たれる. G′=G+eG'=G+e とし、S⊆V(G)S\subseteq V(G) を取ります。G′−SG'-S の各連結成分は、G−SG-S の連結成分 1 つか、2 つの合併です。G′−SG'-S の奇成分は、その中に G−SG-S の奇成分を少なくとも 1 つ(奇数個)含みます。よって o(G′−S)≤o(G−S)≤∣S∣o(G'-S)\le o(G-S)\le|S| です。

手順 2: 辺極大な反例を取る. nn は偶数なので KnK_n は完全マッチングをもちます。GG に辺を足していくと、いつか完全マッチングをもつようになります。そこで、GG を含む同じ頂点集合上のグラフ G∗G^* で、完全マッチングをもたず、どの非隣接な 2 頂点の間に辺を足しても完全マッチングをもつようになるものが取れます。手順 1 から G∗G^* も Tutte の条件を満たします。

手順 3: G∗G^* の構造. 他のすべての頂点と隣接する頂点の集合を UU とします。G∗−UG^*-U のどの連結成分も完全グラフであることを示します。

そうでないとすると、ある成分に隣接しない 2 頂点があります。それらを結ぶ成分内の最短の道の最初の 3 頂点を x,y,zx,y,z とすると、xy,yz∈E(G∗)xy,yz\in E(G^*)、xz∉E(G∗)xz\notin E(G^*) です(xzxz が辺なら道を短くできます)。y∉Uy\notin U なので、yw∉E(G∗)yw\notin E(G^*) となる頂点 w≠yw\ne y があります(w≠x,zw\ne x,z です)。G∗G^* の極大性から、G∗+xzG^*+xz は完全マッチング M1M_1 を、G∗+ywG^*+yw は完全マッチング M2M_2 をもちます。G∗G^* 自身は完全マッチングをもたないので、xz∈M1xz\in M_1、yw∈M2yw\in M_2 です。また xz∉M2xz\notin M_2、yw∉M1yw\notin M_1 です。

F=M1△M2F=M_1\triangle M_2 とします。各頂点は M1M_1 の辺と M2M_2 の辺をちょうど 1 本ずつもち、それらが同じ辺なら FF での次数は 0、違えば 2 です。補題 3.2 から、FF の辺をもつ成分は閉路で、その上で M1M_1 の辺と M2M_2 の辺が交互に並びます(とくに長さは偶数)。xzxz と ywyw はどちらも FF に属します。

場合 A: xzxz と ywyw が FF の異なる閉路に乗る. ywyw の乗る閉路を CC とします。CC の上では M1M_1 の辺を、CC の外では M2M_2 の辺を選ぶと、これは完全マッチングです(CC の頂点は CC の上の M1M_1 の辺で、CC の外の頂点は CC の外の M2M_2 の辺で、ちょうど 1 回ずつ覆われます)。CC の上の M1M_1 の辺に xzxz はなく(xzxz は別の閉路の上)、CC の外の M2M_2 の辺に ywyw はないので、これは G∗G^* の完全マッチングとなり、矛盾です。

場合 B: xzxz と ywyw が同じ閉路 CC に乗る. CC を yy から、辺 ywyw でないほうの辺を通って進み、

y=c0, c1, c2, …, cL=wy=c_0,\ c_1,\ c_2,\ \dots,\ c_L=w

と頂点を並べます(最後に辺 wywy で戻ります)。yw∈M2yw\in M_2 なので、辺 cici+1c_ic_{i+1} は ii が偶数のとき M1M_1、奇数のとき M2M_2 に属します。辺 xzxz はこの列の隣り合う 2 頂点を結びます。xz=cjcj+1xz=c_jc_{j+1} とし、a=cja=c_j、b=cj+1b=c_{j+1} と置きます({a,b}={x,z}\{a,b\}=\{x,z\})。xz∈M1xz\in M_1 なので jj は偶数で、y≠x,zy\ne x,z から j≥2j\ge2 です。

次の辺の集合 MM を考えます。

  • c1c2, c3c4, …, cj−1cjc_1c_2,\ c_3c_4,\ \dots,\ c_{j-1}c_j(M2M_2 の辺。c1,…,cjc_1,\dots,c_j を覆う)、
  • 辺 yb=c0cj+1yb=c_0c_{j+1}(b∈{x,z}b\in\{x,z\} は yy と隣接するので G∗G^* の辺)、
  • cj+2cj+3, …, cL−1cLc_{j+2}c_{j+3},\ \dots,\ c_{L-1}c_L(M1M_1 の辺。LL は奇数なので cj+2,…,cLc_{j+2},\dots,c_L をちょうど覆う)、
  • CC の外では M2M_2 の辺。

LL が奇数であることは、CC の長さ L+1L+1 が偶数であることから分かります。MM は全頂点をちょうど 1 回ずつ覆う完全マッチングです。MM は xz=cjcj+1xz=c_jc_{j+1} も yw=cLc0yw=c_Lc_0 も含まないので、G∗G^* の完全マッチングです。これは矛盾です。

以上から、G∗−UG^*-U の連結成分はすべて完全グラフです。

手順 4: 完全マッチングを作る. G∗G^* は Tutte の条件を満たすので o(G∗−U)≤∣U∣o(G^*-U)\le|U| です。G∗−UG^*-U の各奇成分から 1 頂点ずつ選び、UU の相異なる頂点と結びます(UU の頂点は全頂点と隣接し、奇成分は ∣U∣|U| 個以下なので可能です)。各成分の残りの頂点は偶数個で、成分は完全グラフなので、成分の中で 2 つずつ組にできます。最後に、UU のまだ相手のいない頂点が残ります。nn は偶数で、ここまでに相手の決まった頂点は偶数個なので、残りは偶数個です。UU の頂点は互いに隣接するので、2 つずつ組にできます。これで G∗G^* の完全マッチングができ、G∗G^* の選び方に反します。

系 7.3(Petersen の定理)✓

橋をもたない 3-正則グラフは、完全マッチングをもつ。

証明(系 7.3)

Tutte の条件を確かめます。S⊆V(G)S\subseteq V(G) とし、CC を G−SG-S の奇成分とします。CC と SS を結ぶ辺の本数を e(C,S)e(C,S) とします。CC は G−SG-S の連結成分なので、CC の頂点に接続する辺は、CC の中の辺か、SS への辺です。握手補題(補題 2.2[道・閉路・木])と同じ数え方で、CC の頂点の次数の和は

3∣V(C)∣=2∣E(C)∣+e(C,S)3|V(C)|=2|E(C)|+e(C,S)

です。∣V(C)∣|V(C)| は奇数なので、e(C,S)e(C,S) は奇数です。e(C,S)=1e(C,S)=1 だとすると、その 1 本の辺を除けば CC の頂点から CC の外へ出る辺がなくなるので、この辺の両端は異なる連結成分に属し、この辺は橋です。GG は橋をもたないので、e(C,S)≥3e(C,S)\ge3 です。

一方、SS の頂点に接続する辺は全部で 3∣S∣3|S| 本以下です。奇成分ごとに SS への辺が 3 本以上あり、異なる成分への辺は異なるので、

3 o(G−S)≤∑Ce(C,S)≤3∣S∣3\,o(G-S)\le\sum_C e(C,S)\le3|S|

となり、o(G−S)≤∣S∣o(G-S)\le|S| です。定理 7.2 から GG は完全マッチングをもちます。

例 7.4(「橋をもたない」を外すと成り立たない)

頂点 cc を 3 つの頂点 a1,a2,a3a_1,a_2,a_3 と結びます。各 aia_i に 4 頂点 pi,qi,ri,sip_i,q_i,r_i,s_i を用意し、辺 aipi, aiqi, piri, pisi, qiri, qisi, risia_ip_i,\ a_iq_i,\ p_ir_i,\ p_is_i,\ q_ir_i,\ q_is_i,\ r_is_i を引きます。次数は cc が 3、aia_i が c,pi,qic,p_i,q_i の 3、pip_i と qiq_i が ai,ri,sia_i,r_i,s_i の 3、rir_i と sis_i が pi,qip_i,q_i と互いの 3 で、3-正則な 16 頂点のグラフです。S={c}S=\{c\} とすると、G−SG-S は 5 頂点の成分 3 つからなり、o(G−S)=3>1=∣S∣o(G-S)=3>1=|S| です。定理 7.2 から完全マッチングはありません。3 本の辺 caica_i はどれも橋です。なお、第 1 章の Petersen グラフは橋のない 3-正則グラフなので完全マッチングをもちます(たとえば 5 本のスポーク)。

Tutte の定理は、完全マッチングがないときに最大マッチングがどれだけ小さくなるかまで教えてくれます。

定理 7.5(Tutte–Berge の公式)✓

nn 頂点のグラフ GG について

ν(G)=min⁡S⊆V(G)n+∣S∣−o(G−S)2\nu(G)=\min_{S\subseteq V(G)}\frac{n+|S|-o(G-S)}{2}

が成り立つ。

証明(定理 7.5)

d=max⁡S⊆V(G)(o(G−S)−∣S∣)d=\max_{S\subseteq V(G)}\bigl(o(G-S)-|S|\bigr) と置きます。S=∅S=\varnothing が取れるので d≥0d\ge0 です。示すべき式は ν(G)=(n−d)/2\nu(G)=(n-d)/2 です。

ν≤(n−d)/2\nu\le(n-d)/2. MM をマッチング、S⊆V(G)S\subseteq V(G) とします。G−SG-S の奇成分のうち、頂点がすべて MM で飽和されているものは、定理 7.2 の必要性の証明と同じ理由で、SS の頂点を相手とする頂点を含みます。そのような成分は ∣S∣|S| 個以下です。残りの少なくとも o(G−S)−∣S∣o(G-S)-|S| 個の奇成分は非飽和な頂点を含みます。SS を動かすと、非飽和な頂点は dd 個以上で、2∣M∣≤n−d2|M|\le n-d です。

偶奇. どの SS についても、n=∣S∣+∑C∣V(C)∣n=|S|+\sum_C|V(C)|(CC は G−SG-S の成分)で、∣V(C)∣|V(C)| が奇数の成分が o(G−S)o(G-S) 個なので、n≡∣S∣+o(G−S)(mod2)n\equiv|S|+o(G-S)\pmod2、すなわち o(G−S)−∣S∣≡n(mod2)o(G-S)-|S|\equiv n\pmod2 です。とくに d≡n(mod2)d\equiv n\pmod2 です。

ν≥(n−d)/2\nu\ge(n-d)/2. GG に dd 個の新しい頂点の集合 DD を足し、DD の各頂点を他のすべての頂点(V(G)V(G) の頂点と DD の他の頂点)と結んだグラフを G+G^+ とします。G+G^+ が Tutte の条件を満たすことを示します。S′⊆V(G+)S'\subseteq V(G^+) とします。

  • D⊆S′D\subseteq S' のとき: S=S′∖DS=S'\setminus D と置くと G+−S′=G−SG^+-S'=G-S で、o(G−S)≤∣S∣+d=∣S′∣o(G-S)\le|S|+d=|S'| です。
  • D⊈S′D\not\subseteq S' のとき: S′S' に入らない DD の頂点は残りの全頂点と隣接するので、G+−S′G^+-S' は連結で、o(G+−S′)≤1o(G^+-S')\le1 です。S′≠∅S'\ne\varnothing なら o(G+−S′)≤1≤∣S′∣o(G^+-S')\le1\le|S'| です。S′=∅S'=\varnothing なら、G+G^+ の頂点数 n+dn+d は偶数なので o(G+)=0o(G^+)=0 です。

定理 7.2 から G+G^+ は完全マッチング M+M^+ をもちます。DD の頂点に接続する M+M^+ の辺を除くと、GG のマッチングで、非飽和な頂点が dd 個以下のものが残ります。その辺の数は (n−d)/2(n-d)/2 以上です。

注意 7.6

最小値を達成する SS をうまく選ぶと、G−SG-S の奇成分がすべて因子臨界で、偶成分が完全マッチングをもつようにできます(Gallai–Edmonds の構造定理)。また、一般のグラフの最大マッチングを多項式時間で求める Edmonds のアルゴリズムは、交互道の探索で出会った奇閉路を 1 点に縮約することで、§4 の議論を奇閉路のあるグラフに延長します。この章ではどちらも使いません。詳しくは参考文献の Lovász–Plummer を見てください。

8. 安定マッチング:Gale–Shapley の定理

Section titled “8. 安定マッチング:Gale–Shapley の定理”

最後に、頂点が相手に選好順位をもつ場合を考えます。大きさではなく「不満をもつ組がない」ことを求める点が、これまでと違います。

定義 8.1(安定マッチング)↗

∣A∣=∣B∣=n|A|=|B|=n とし、AA の各元は BB の元全体に、BB の各元は AA の元全体に、同順位のない順位(選好)を付けているとする。AA と BB の間の完全マッチング MM に対し、MM で組になっていない a∈Aa\in A、b∈Bb\in B が、「aa は MM での相手より bb を好み、bb も MM での相手より aa を好む」を満たすとき、(a,b)(a,b) をブロッキング対という。ブロッキング対をもたない完全マッチングを安定マッチングという。

Gale–Shapley の手続き(AA が提案する版)は次のとおりです。最初はだれも組になっていません。各ラウンドで、相手のいない a∈Aa\in A はそれぞれ、まだ自分を断っていない BB の元のうち最も好む相手に提案します。各 b∈Bb\in B は、そのラウンドに受けた提案と、いま保留している相手のうち、最も好む 1 人を保留し、残りを断ります。相手のいない aa がいなくなったら終了し、保留の組をそのままマッチングにします。

定理 8.2(Gale–Shapley の定理)✓

どんな選好に対しても、Gale–Shapley の手続きは高々 n2n^2 回の提案で終了し、安定マッチング M∗M^* を出力する。さらに M∗M^* は提案側に最適である。すなわち、どの a∈Aa\in A についても、M∗M^* での相手は、あらゆる安定マッチングでの aa の相手のうち aa が最も好む相手である。

証明の方針は、手続きが終わること、完全マッチングになること、安定であること、提案側に最適であることの順に確かめます。最後の部分は、「実現可能な相手に断られる」最初の出来事を考え、それがブロッキング対を生んで矛盾することを使います。

証明(定理 8.2)

手続きの定め方から、次の 2 つが成り立ちます。(i) aa は好む順に提案し、同じ相手に 2 回提案しない。(ii) bb は一度提案を受けると、それ以後ずっとだれかを保留していて、保留する相手は bb にとってよくなる一方である。

終了. (i) から、提案は全部で n2n^2 回以下です。相手のいない aa がいる限り、次に述べるように aa には提案先が残っているので、各ラウンドで少なくとも 1 回の提案が行われ、手続きは終了します。

完全マッチングになる. ある aa が BB の全員に断られたとします。bb が aa を断るのは、aa より好む相手を保留するときなので、(ii) からその時点以後 bb はだれかを保留しています。すると BB の nn 人全員が、aa 以外の相異なる AA の元を保留していることになりますが、aa 以外の AA の元は n−1n-1 人しかいません。矛盾です。よって、相手のいない aa には必ず提案先が残っており、終了時には AA の全員が保留されています。保留は 1 対 1 なので、完全マッチング M∗M^* が得られます。

安定である. aa が M∗M^* での相手より bb を好むとします。(i) から aa は bb に提案して断られています。断ったとき bb は aa より好む相手を保留していて、(ii) から M∗M^* での bb の相手は aa より好ましい相手です。よって (a,b)(a,b) はブロッキング対ではありません。

提案側に最適である. ある安定マッチングで aa と組になる bb を、aa にとって実現可能な相手と呼びます。手続きの中で、どの aa も実現可能な相手から断られることはないことを示します。

そうでないとし、実現可能な相手から断られる最初の出来事を考えます。aa が bb に断られ、aa と bb を組にする安定マッチング M′M' があるとします。断ったとき、bb は aa より好む a′a' を保留しました。a′a' はこの時点までに実現可能な相手から断られていません(最初の出来事だからです)。a′a' は好む順に提案するので、a′a' が bb より好む相手はすべて a′a' を断っており、したがって a′a' にとって実現可能ではありません。M′M' での a′a' の相手 b′b' は a′a' にとって実現可能で、b′≠bb'\ne b(M′M' で bb の相手は aa)なので、a′a' は b′b' より bb を好みます。まとめると、M′M' で組になっていない a′a' と bb について、a′a' は M′M' での相手 b′b' より bb を好み、bb は M′M' での相手 aa より a′a' を好みます。(a′,b)(a',b) は M′M' のブロッキング対で、M′M' が安定であることに反します。

よって、aa が M∗M^* での相手より好む bb は、すべて aa を断っているので実現可能ではありません。M∗M^* は安定なので、M∗M^* での aa の相手は実現可能です。これが、実現可能な相手のうち最も好ましいものです。

例 8.3(3 対 3 の選好表で実行する)

選好を次のように定めます(左ほど好む)。

選好選好
a1a_1b1,b2,b3b_1,b_2,b_3b1b_1a3,a2,a1a_3,a_2,a_1
a2a_2b1,b3,b2b_1,b_3,b_2b2b_2a1,a2,a3a_1,a_2,a_3
a3a_3b2,b1,b3b_2,b_1,b_3b3b_3a1,a3,a2a_1,a_3,a_2
  • ラウンド 1: a1→b1a_1\to b_1、a2→b1a_2\to b_1、a3→b2a_3\to b_2。b1b_1 は a2a_2 を保留して a1a_1 を断り、b2b_2 は a3a_3 を保留します。
  • ラウンド 2: a1→b2a_1\to b_2。b2b_2 は a3a_3 より a1a_1 を好むので、a1a_1 を保留して a3a_3 を断ります。
  • ラウンド 3: a3→b1a_3\to b_1。b1b_1 は a2a_2 より a3a_3 を好むので、a3a_3 を保留して a2a_2 を断ります。
  • ラウンド 4: a2→b3a_2\to b_3。b3b_3 は a2a_2 を保留します。全員に相手ができたので終了です。

出力は M∗={a1b2, a2b3, a3b1}M^*=\{a_1b_2,\ a_2b_3,\ a_3b_1\} です。安定性を確かめます。a1a_1 が相手より好むのは b1b_1 ですが、b1b_1 の相手 a3a_3 は b1b_1 の第 1 希望です。a2a_2 が相手より好むのも b1b_1 で、同じ理由でブロッキング対になりません。a3a_3 が相手より好むのは b2b_2 ですが、b2b_2 の相手 a1a_1 は b2b_2 の第 1 希望です。BB 側が提案する版を実行しても同じマッチングが得られます(b1→a3b_1\to a_3、b2→a1b_2\to a_1、b3→a1b_3\to a_1 から始まり、b3b_3 が a1a_1、a3a_3 に断られて a2a_2 に落ち着きます)。提案側最適なマッチングが両側で一致するので、この選好では安定マッチングはただ 1 つです(演習 9.4 を参照してください)。

演習 9.1易

木は完全マッチングを高々 1 つしかもたないことを示せ。

解答

木 TT が相異なる完全マッチング M1,M2M_1,M_2 をもつとします。F=M1△M2≠∅F=M_1\triangle M_2\ne\varnothing です。各頂点は M1M_1 と M2M_2 の辺を 1 本ずつもつので、FF の辺に接続する頂点は、FF の辺をちょうど 2 本もちます。FF の辺とその端点からなる TT の部分グラフは最小次数 2 なので、命題 3.1[道・閉路・木] から閉路を含みます。これは TT が閉路を含まないことに反します。

演習 9.2標準

頂点 ss と 3 つの三角形 T1,T2,T3T_1,T_2,T_3(合わせて 9 頂点)を用意し、ss を各三角形の 1 頂点 tit_i と結んだ 10 頂点のグラフ GG を考える。Tutte の条件を破る SS を見つけ、ν(G)\nu(G) を求めよ。

解答

S={s}S=\{s\} とすると、G−SG-S は 3 つの三角形で、o(G−S)=3>1=∣S∣o(G-S)=3>1=|S| です。定理 7.2 から完全マッチングはありません。定理 7.5 で S={s}S=\{s\} を取ると ν(G)≤(10+1−3)/2=4\nu(G)\le(10+1-3)/2=4 です。一方、辺 st1st_1、T1T_1 の残り 2 頂点を結ぶ辺、T2T_2 の辺 1 本、T3T_3 の辺 1 本は大きさ 4 のマッチングです。よって ν(G)=4\nu(G)=4 です。

演習 9.3標準

辺が mm 本、最大次数が Δ≥1\Delta\ge1 の二部グラフは、大きさ m/Δm/\Delta 以上のマッチングをもつことを示せ。また、二部グラフでないと成り立たない例を挙げよ。

解答

KK を頂点被覆とします。1 つの頂点が覆う辺は Δ\Delta 本以下なので、m≤Δ∣K∣m\le\Delta|K|、すなわち τ≥m/Δ\tau\ge m/\Delta です。二部グラフでは 定理 4.9 から ν=τ≥m/Δ\nu=\tau\ge m/\Delta です。

三角形 K3K_3 は m=3m=3、Δ=2\Delta=2 で m/Δ=3/2m/\Delta=3/2 ですが、ν=1\nu=1 です。

演習 9.4難

AA が提案する Gale–Shapley の手続きの出力 M∗M^* では、どの b∈Bb\in B の相手も、あらゆる安定マッチングでの bb の相手のうち bb にとって最も好ましくない相手であることを示せ。これを使って、AA が提案する版と BB が提案する版の出力が一致するなら、安定マッチングはただ 1 つであることを示せ。

解答

M∗M^* での bb の相手を aa とします。ある安定マッチング M′M' で、bb の相手 a′a' が bb にとって aa より好ましくないとします(a′≠aa'\ne a)。M′M' での aa の相手を b′b' とすると b′≠bb'\ne b です。定理 8.2 から、bb は aa にとって実現可能な相手のうち最良なので、aa は b′b' より bb を好みます。bb は a′a' より aa を好みます。よって (a,b)(a,b) は M′M' のブロッキング対で、M′M' の安定性に反します。

後半を示します。BB が提案する版の出力を M∗∗M^{**} とします。定理 8.2 を AA と BB を入れ替えて使うと、M∗∗M^{**} では各 bb が安定マッチングの中で最良の相手を得ます。前半から、M∗M^* では各 bb が最悪の相手を得ます。M∗=M∗∗M^*=M^{**} なら、各 bb にとって最良の相手と最悪の相手が一致するので、どの安定マッチングでも bb の相手は同じです。したがって安定マッチングは 1 つしかありません。

  • L. Lovász, M. D. Plummer, Matching Theory, North-Holland, 1986 — 二部グラフのマッチング、Tutte の定理、Gallai–Edmonds の構造定理。
  • R. Diestel, Graph Theory, Graduate Texts in Mathematics 173, Springer — 第 2 章(マッチング)。
  • J. A. Bondy, U. S. R. Murty, Graph Theory, Graduate Texts in Mathematics 244, Springer, 2008 — マッチングの章。
  • P. Hall, “On representatives of subsets”, J. London Math. Soc. 10 (1935), 26–30.
  • W. T. Tutte, “The factorization of linear graphs”, J. London Math. Soc. 22 (1947), 107–111.
  • D. Gale, L. S. Shapley, “College admissions and the stability of marriage”, Amer. Math. Monthly 69 (1962), 9–15.

このテーマの 100 本ノック(50 問)

執筆: Claude Code(Opus 5.5)、Claude Code(Sonnet 5.5)・監査 2 回(Claude Code)・最終 2026-10-12

この記事の誤りを報告する ・運営: 夢現技研合同会社 ・料金 ・利用条件 ・特定商取引法に基づく表記

© 2026 夢現技研合同会社 ・コード例は MIT ライセンスです。