4. Matching 松山 4.0 • マッチングとはグラフGで全ての v V (G ) に対し て G (v) S 1 をみたすような枝集合 S E (G ) • つまり、全ての点に接する赤線が一本か零本 ○ × • また、全てのvで (v) S 1 のとき完全マッチン G グという • この章では(完全)二部グラフでの最大重みを求める 直接アルゴリズムを扱う • 二部グラフでない一般的なグラフでのマッチ ングを求めるアルゴリズム • 一般的なグラフでのマッチングの特徴ベクト ルのconvex hullの不等式記述 • その最小重みマッチングへの適用 4.1 Augmenting Paths and Matroids Definitions • S: Gのマッチング • P: Gのpath or cycle • PがSについてalternating(交互)とは – Pの要素がpath, cycleにそってSの要素と E (G ) \ S の 要素と交互になっていること 赤線: P 緑線: S ←PはSについてalternating Definitions • 頂点 v V (G ) がexposedとは G (v) S 0 • not exposed = covered • alternating pathがaugmenting(増大)とはpathの 両端がSによってexposedであるということ exposed 水色線: alternating path 両端(左上,左下)がexposedなので このpathはaugmenting covered Berge’s Theorem • SがGの最大マッチング ⇔ Sに対してGが augmenting pathを持たない • Proof(→, 対偶を示す) – – – – PをSに対するaugmenting pathとする S’ = SΔPとする S’は|S’| > |S|となるGのマッチング つまりSは最大マッチングではない augmenting path ・・・ S S’ • Proof(←, 対偶を示す) – SがGの最大マッチングでないとする – S’を|S’| > |S|となるGのマッチングとする – C = S’ΔSとすると、G.Cの最大次数は2 補足)F ⊆ E(G) に対し,グラフ G.F を,節点集合 V(G.F) := V(G), 枝集合 E(G.F) := F のグラフとする どの接点vでも S S’ – G.Cはいくつかのコンポーネントに分かれ、それら一つ一 つがalternating pathもしくはcycleになっています – |S’| > |S|なのでいくつかの部品はS’からの枝を多く含み ます。それがaugmenting pathになります。 G.C alternating cycleなので 赤と緑の線の数は一緒 cycle ・・・ これが求めたいaugmenting pathになります S S’ G.C Theorem (Matching Matroid) • Gを任意のグラフとし、W⊂V(G)とする • MをE(M) := Wで定義(グラフGのいくつかの 頂点集合) • I(M) := {X⊂W : GはXをカバーするマッチン グを持つ(あるマッチングにおいて全ての頂 点がcovered)} → I(M)はマトロイドになる 例 Graph G v3 v1 v6 v2 v5 v4 W = {v1, v2, v3, v5, v6} とする E(M) = W = {v1, v2, v3, v5, v6} I(M) = {(v1), (v2), (v3), (v5), (v6), (v1, v2), (v1, v3), ....} (v1, v3, v6)はI(M)に含まれない I1. I ( M ) I2. X Y I ( M ) X I ( M ) I3. X , Y I ( M ), Y X X e I (M ) となる e Y \ X が存在 • Proof – – – – – – 条件I1, I2は明らか I3についてここで示す X∈I(M), Y∈I(M), |X| < |Y|を考える Sx, SyをX, Yをカバーするマッチングとする SxはY \ X の要素を全てカバーしないか一つ以上カバー ある点vをカバーすれば、 →X+vはSxによってカバー →X+v∈I(M)となるv∈ Y \ X が存在 • 続き – SxはY \ X を一つもカバーしない(仮定)とする – C := SxΔSyを考える – Berge’s Theoremの証明の時のようにG.Cは部品として alternating path, or cycleを持つ。 – 次数が2の頂点はXに含まれるときに限りYに含まれると いう特徴を持つ(仮定より) Sx Sy X∧¬Yは○ Y∧¬Xは×(SxはY∧¬Xを含まない) X∧Yは○ ¬X∧¬Yは○ – ゆえにG.Cのalternating cycleに含まれるXの点の数は 少なくともYの点の数以上|X in cycle| ≧ |Y in cycle| ・・・ • 続き – alternating pathの内部の点も同様の事がいえる ・・ ここ – 以上を踏まえると、|Y| > |X|より、いくつかの alternating pathで両端の点がYであるものの方 が多いpathが存在 • 今まで数えてきた点のみカウントすると|x| ≧|y| • Sx Δ Syで打ち消しあったところ(Sx and Sy)の点に関 しては次数2の点と同じことが言える Sx∧Sy • その他の点はpathの両端のみ – マッチングSxを、そのパスに関するところ以外は そのまま、パスの部分に関してはSx→Syと変更 すると、I3を満たすことができる (次ページで図解) 両端の点のうち、X<Yであるpath ・・ ・・ Y Y\X ・・ ・・ Y Y\X 両端の点がYであるものの方が多いpath であることをふまえるとこれはXではない ・・ そもそも両端の点がYであるものの方が多いpath でない 4.2 The Matching Polytope 特徴ベクトル • あるグラフGの枝の数がnであるとする • それぞれの枝をe1~enとする • グラフGにおいてS⊂E(G)をベクトルで表記 – x(S)とする • x(S) = (xe1(S), xe2(S), ..., xen(S)) • xei(S) = 1(Sにeiがある) or 0(Sにeiがない) e1 e3 e5 e2 e4 xe1 1 xe 2 0 x 0 e3 xe 4 0 x e5 1 Characterization • マッチングの特徴ベクトルをpolytopeのextreme pointsとして定式化 – (0, 0, ..., 0)も含む • 全てのマッチングに対してベクトルを取ってpolytope を構成 イメージ polytope matching 用語 • M(G):Gのマッチングの集合 • PM(G):conv(M(G)の特徴ベクトル集合) Matching-Polytope Theorem • Gをループを含まないグラフとする • Gのマッチング特徴ベクトルのconvex hullは以下の 解集合で表される • Xeとは、convex hull内のベクトルxの枝eに対する 要素 (i ) (ii ) xe 0, e E (G ) 1, v V (G ) x e (iii ) e G (v) eE ( G[W ]) xe W 1 2 , W V (G) with W 3 odd. • Proof – M(G)をGのマッチングの集合とする – Gはループを含まないので全ての一本の枝の特徴ベクト ルは空集合の特徴ベクトル(0, 0, ..., 0)とあわせて、 |E(G)|+1個のaffinely independentな点集合を構成する ループ – つまりグラフGから枝を一本だけ取ってきたものはマッチ ング その集合はベクトルで表すと (0, 0, ..., 0), (1, 0, ..., 0), ... , (0, 0, ..., 1) – ゆえにpolytope PM(G)はfull dimensional(n次元空間にn 次元多面体があり、facetはn-1次元) 例) 3次元 G e1 e1 e2 e2 これらは全てマッチング e3 e3 e1 e1 マッチング特徴ベクトル(e1, e2, e3) e2 e2 e3 他のマッチングもあるかもしれないけど、 今言いたいのは、 「少なくとも、三次元に三次元多面体がある」 e3 (0, 0, 1) (0, 1, 0) (0, 0, 0) (1, 0, 0) – 示すべき目的はPM(G)の「全てのfacetが(i),(ii),(iii)の不等 式によって記述されること」 (e) xe ・・・(*) eE ( G ) – 上式をPM(G)のfacetを描く式とする。もしマッチングSが (e) x ( S ) eE ( G ) e を満たすならばSは式(*)を「tightに満たす」という Image (*)の表す(n-1次元)平面 これらのマッチングは(*)をtight マッチングベクトルがfacet上 n次元多面体 場合分け • 必ずこのPolytopeはfacetの組で表される • 一つfacetを取ってきたときにその条件で場合 分け • Case 1 – facet (*)の係数α(e)があるeで負の時 • Case 2 – facet (*)を満たす全てのマッチングで必要な共通 頂点がある時 • Case 3 – それ以外 Example 1 G 1 0 M1 e1 M2 e2 polytope (0, 1) facet 0 (1, 0) この場合、facetは-e1≦0, -e2≦0, e1+e2≦1 黒線のfacetはCase 1に相当 赤線はCase 2に相当(共通頂点は左下の点) 0 1 facetの式 (e) x eE ( G ) e • Case 1 : facet(*)の係数がいくつかのeで負の時 – そのようなeにおいて、S – eは(*)を超えてしまう S tight (*) S-e Sはmatchingより、S – eもmatching α(e) < 0より (*)の値はS→S - eで増大 Σ~(S)=β → Σ~(S – e)>β より、S – eがマッチングにもかかわらずpolytope から飛び出る – よって(*)をtightに満たすマッチングSはどれもeを含まな い – ゆえに、(*)をtightに満たす全てのマッチングSでxe(S)= 0 (マッチングのe成分が0) – つまりこのfacetはxe(S) = 0 で表される(α(e) < 0 なe) – PM(G)はfull dimensionalであり、(i)はPM(G)にとって有効で あるので、(*)は(i)の正の定数倍でなくてはならない(facet 有効であるとは、PM(G)に属する全ての点が の一意性, 0.4参照) 不等式を満たすということ – ちなみに二つ以上負になることはない • Case 2 : (*)をtightに満たす全てのマッチングで共通 して必要な頂点を含むとき – そのとき(*)にtightな全てのマッチングSに対して x (S ) 1 e e G (v) – なぜなら、(*)をtightなマッチングベクトルで、↑でいうところ の共通頂点に繋がる枝のベクトル成分を足したら1 e1 e2 e3 e4 e5 x e1(s) = 0 x e2(s) = 0 x e3(s) = 0 x e4(s) = 1 x e5(s) = 0 マッチングなので一本だけ赤 真ん中の点が上記の共通頂点 – x(S)は(ii)を等式として満たす – PM(G)はfull dimensionalかつ、(ii)はPM(G)にとって有効で あるので、(*)は(ii)の正の定数倍でなくてはならない(解集 合が一致) • Case 3 : それ以外 1. 全てのe∈E(G)でα(e)≧0 2. 全てのv∈V(G)で、vがexposedである、(*)をtightに満た すマッチングが存在 – G+を次のように定義 E (G ) : {e E (G) : (e) 0} V (G ) : {v V (G) : v is an endpoint of some e E (G )} – Case 3をいくつかのClaimを順に示しながら解析 • Claim 1 : G+は連結している – G+が空でなく、互いに連結しないG1, G2で出来ているとす る、i = 1, 2で if e E (Gi ) (e) i (e) : 0 if e E (G) \ E (Gi ) – – – – とするとそのとき、全てのeでα(e) = α1(e) + α2(e)がいえる i = 1, 2でSiを を最大にするマッチングとする i i (e) xe ( S ) i β をその最適値とする eE ( G ) Si⊂E(Gi)と仮定すると はP M(G)で有効(i = 1, i i (e) xe 2) eE ( G ) – さらに、(*)は二つの不等式の和→有効な二つの不等式の 和がfacetになるのはありえない、仮定に矛盾 – よって、G+は連結 • Claim 2 : Sが(*)をtightに満たすとする時、S は最高でもV(G+)でexposedな点は一つ – (*)をtightに満たすSの中で二つ以上exposedな ものがあるとします – 二つ以上exposedな点のある全てのマッチングと そのexposedな点の間で、距離が最小(G+におい て)な頂点u, vを取ってきます – まず、u-v間は距離1ではない(次ページ図参照) • • • • • 1であるとして、その枝をeとする Sは(*)をtight つまり境界線上(Σ~ = β) S+eはα(e) > 0よりΣ~>β となる S+eはマッチング 上二つよりS+eは境界線を飛び出すのでおかしい v (exposed) S u (exposed) u, vはSでexposed S→S’としてこの線を 増やすことが出来る tight (*) S+e – ゆえに、u-v間の最短パスの間にはu, vと異なる w u v 頂点wが存在 ・・ ・・・ – exposedな点同士の中でu-vが距離最短であっ たので、wはexposedではない – S’をwがexposedな(*)をtightなマッチングとする • Case 3仮定2よりそのようなS’は存在 – SΔS’を考えるとwを一つの端としたalternating path Qを含む(図参照) ・・・ S S w ・・・ u v u v ・・・ S’ u ・・・ v SΔS’ w u 左と同様に考えてここにSΔS’取った時に alternating path ここに長さ1以上の alternating path β= β= • SとS’は(*)をtightなので、 (e) x (e) x 2 SQ ( S \ Q) ( S 'Q), S ' Q ( S '\Q) ( S Q) • より、 (e) (e) 2 eS eSQ e eS ' e eS 'Q • SΔQ, S’ΔQはマッチングより、facetの内側なので ( e) , (e ) eSQ eS 'Q ( e) • よって e SQ • よってSΔQは(*)をtight • しかし、SΔQはwをexposed 少なくともuかvが一つ exposed • 最初の、距離最小に矛盾 ・・・ S S w w ・・・ u v u v ・・・ Q Q w w ・・・ u v u v ・・・ 最低でもuとwがSΔQではexposed • Claim 3 全てのv∈V(G+)で、G+からvを除いた グラフには完全マッチングが存在 – Case 3の仮定2より(*)をtightなマッチングのうちv がexposedなマッチングが(どのvでも)存在する – そのようなマッチングSをS⊂E(G+)になるように選 ぶ(E(G+)にない枝を削ることにより) S v S G+ v v – Claim 2よりSには、vのそばにexposedなG+の頂 点は存在しない(元のSは(*)をtightだが、枝を 削ったため、Sがtightかどうかはわからない。しか し少なくともG+の範囲ではClaim 2を満たす。ここ で、Sはvをexposed→G+の範囲内でexposedな 頂点はもう存在しない) – ゆえにSは完全マッチングをG+からvを消すことで 得ることが出来る(G+の範囲ではvのみが exposedなので) • Claim 4 W := V(G+)としたとき、(*)をtightする 全てのマッチングはG[W]の枝をちょうど(|W| - 1) / 2本含む – Sを(*)をtightするマッチングとする – Claim 3のようにして、SはE(G[W])に含まれると 仮定できる – Claim 2より、Sは最高でもWの要素を一つまでし かexposedしない – SはG[W]に少なくとも(|W| - 1) / 2本の枝を持つ – Claim 3より、|W|は奇数 – よって|S| ≦ (|W| - 1) / 2 – よって|S| = (|W| - 1) / 2 まとめると • Claim 1 G+は連結 • Claim 2 Sが(*)をtightなら、exposedな点は 一つまで • Claim 3 全てのv∈V(G+)で、G+からvを除いた グラフには完全マッチングが存在 • Claim 4 W:= V(G+)とするとき、(*)を満たす全 てのマッチングはちょうど(|W| - 1)/2本の G[W]の枝を持つ 結論 • x(S)は(iii)を等式として満足 • PM(G)はfull dimensionalかつ(iii)はPM(G)に とって有効であるので、(*)は(iii)の定数倍 • 全てのfacetは(i), (ii), (iii)の等号成立時のど れかの定数倍 • よってconvex hullは(i), (ii), (iii)の解集合 (iii ) eE ( G[W ]) xe W 1 2 , W V (G) with W 3 odd . 4.3 Duality and a MaximumCardinality Matching Algorithm Definitions • グラフGのodd-set coverとは次の集合を指す W ({W1 ,W2 ,,Wk };{v1 , v2 ,, vr }) – – – – ここで、Wi, vjは以下の条件を満たすとする vj∈V(G), Wi⊂V(G) |Wi| ≧3, odd Gの枝は全て片端にvjを持つか、両端に同じWiに含まれる 点を持つ 片方だけvj • odd-set Wのcapacityとは k Wi 1 i 1 2 r どちらもWiに含まれる Example v1 v2 v3 v4 v5 W = {{v3, v4, v5}}; {v1, v2}とすると capacity = 2 + (3 - 1) / 2 = 3 odd-set coverって何? • このodd-set coverの考えはPM(G)の不等式記述と 線形計画の双対性に刺激されることで登場 • Gの最大マッチングは不等式(i)~(iii)を満たす eE (G ) xe の最大値を求める問題と一致 W 1 • この線形計画 min yv W 2 vV ( G ) W V ( G ) : の双対問題は→ W 3, odd subject to : yv1 yv 2 W W V ( G ) : e W W 3, odd 1, e {v1 , v2 } E (G ); yv 0, v V (G ); W 0, W V (G ) : W 3, odd. odd-set coverって何? • odd-set coverの特徴ベクトルはこの双対線 形計画の実行可能解 • また、問題の解の目的値(最小にしたい式)は そのcoverのcapacity • ゆえにodd-set coverのcapacityの下限は マッチング濃度の上限 • 実際、次の結果が論証される Matching Duality Theorem • ループを含まないグラフGの最大マッチング はGのodd-set coverの最小capacityと同じ • 証明はEdmonds’s Maximum-Cardinality Matching Algorithm(後述)より従う • Edomondsのアルゴリズムは次の結果 (Shrinking Lemma)に基づく Shrinking Lemma • • • • Gを無向グラフ、SをGのマッチングとする Cを|C| = 2m + 1(mは正の整数)のサイクルとする |S∩C| = m で、 S \ C はCとvertex-disjointとする Cを縮小して一つの点とみなして出来たグラフをG’と する • S’ := S \ C がG’の最大マッチングとなる⇔SがGの最 大マッチングになる A set of paths between two vertices is called vertex-disjoint if they share no vertices. Example S’ S cycle Shrink S’が最大マッチング⇔Sが最大マッチング この場合は違う • Proof(→の対偶を証明) – SがGの最大マッチングでないとする – PをSに関するaugmenting pathとする – もしPがどのCの頂点にもくっついていないならP はS’に関するaugmenting pathでもある cycle shrinking augmenting path (両端がexposedな alternating path) – PがCとvertex-disjointでないとすると、少なくとも Pの一つの端点(vとする)がC上にはない – Cからうまく頂点rを選ぶとv-r間がaugmenting path – wをvからたどって最初にCにぶつかる点とする – subpath P’(vからwまでのパス)はS’(shrink済の マッチング)に関してaugmenting – このようにS’はG’の最大マッチングではない S vertex disjoint なのでSではない exposed exposed cycle • Proof(←の対偶を示す) – 逆に、S’がG’の最大マッチングでないとする – T’をG’のマッチングとして、|T’| > |S’|とする – Cを元に戻してGを復元 – そのとき、T’はGのマッチング(最高でもCの点は 一つしか含まないような) – Cについている2m本の枝のうちm本(一つ飛ばし で)をマッチングに追加(後の図で説明) – |T| = |T’| + m > |S’| + m = |S|より、SはGの最大 マッチングでない – 証明終 例に挙げると(オレンジ線はT(Sではない)です) cycle マッチングの順番が 違うことに注意 cycle alternating forest • augmenting pathを見つけるため、 alternating forestという考え方を使う • サイクルがなければ探索で見つければよい • GのマッチングSに関するalternating forestと は、以下のようなsubgraph Hのことである 1. E(H) は森 2. Hのそれぞれの部品はちょうど一つの exposed な頂点(rootと呼ぶ)を持ち、 exposedな頂点は全てHの部品のroot 3. Hの頂点はrootからの距離に依存してodd もしくはevenと呼ばれ、それぞれのodd頂 点の次数は2でどちらか片方の枝はSに含 まれる 注. 次数とは、頂点に接続する枝の本数 • 分かりにくいので次ページの図を参照 • • • • 次の図はHの部品の例 赤色の枝はマッチングの枝 部品は一つのrootから成る Hにないマッチングの枝はHとは頂点を共有 しない • また、Hに現れない全ての頂点はcovered Even Odd Edmonds’s Maximum-Cardinality Matching Algorithm • SkをGの濃度kのマッチングとする(k=0でもよい) 0. (Seed) 森Hに種を撒く.グラフ内のexposedな頂点 を全てとってきてrootとする.G→G’, Sk→S’とする. 次にStep1~3を繰り返し可能な限り適用していく 1. (Grow) もし枝eがe∈ E (G ' ) \ E ( H )でevenな端点 x∈V(H)と、V(H)に含まれない端点yを持つとし、そ のような枝が存在するならば、yはあるf∈ S ' \ E ( H ) の端点.さらに、fのもう一つの端点zはV(H)にはな い.Hを次のように再定義 E(H) ← E(H) + e + f V(H) ← V(H) + y + z 2. (Augment)もし、両方の端点がevenで、その端点 同士はHの異なる部品であるような枝e∈ E (G ' ) \ が E(H ) あれば、E(H) + eはそれぞれのrootからrootへeを 含んだパスPができます. そのパスPはS’に対し augmentingです. S’ΔPを新たなS’として、G’のマッ チング濃度を上げます.繰り返しshrinkされたcycle をunshrinkします.もともとのグラフGをShrinking Lemmaを使い復元させ、マッチングSk+1を作ります. そしてStep 0に戻ります. 3. (Shrink)もし、両方の端点がevenで、Hの同じ部品 ) の中にその端点を持つような枝e∈ E (G ' ) \ E ( Hが存 在する時、Pをeのどちらか一方の端点からrootへ のパスとし、S’ΔPを新たなS’とする(S’の濃度は変 わらない).そして、E(H) + eにあるcycleをshrinkす る. 4. (Optimality) もし、Step 1~3が適用できなく なったらSkはGの最大マッチング • 例をみるとわかりやすい Example 実際にアルゴリズムを適用 次のグラフを考える(マッチングは赤線) 14 4 5 8 9 11 1 2 3 10 12 6 7 exposedな点は1, 11, 13, 14 13 • まずはStep 0で、種まきをします 1 11 13 14 • まずはStep 1を繰り返し適用し、alternating forestを作る 1 11 13 2 12 4 5 6 7 8 9 3 10 5, 7は連結してます 点線で表現 Growでalternating treeを作る 14 • 頂点5と7がevenかつ、同じ森部品の中で連 結している • ゆえにStep 3を適用 • 1, 2, 3, 4, 5の順のパスに属するマッチングを 交換 14 4 5 8 11 1 2 3 10 12 6 (Shrink) Pをどちらか一方の端点からrootへのパスとし、 S’ΔPを新たなS’とする(S’の濃度は変わらない). そして、E(H) + eにあるcycleをshrinkする. 7 13 9 • 3, 4, 5, 6, 7, 3のサイクルをshrinkします 14 8 11 1 2 3, 4, 5, 6, 7 10 12 13 9 • またalternating forestを作ります 2 1 8 9 12 10 3, 4, 5, 6, 7 11 13 14 • (3, 4, 5, 6, 7)と10がevenで連結 • またそれらは、森の中の異なる部品にある • ゆえにStep 2を適用し、augmenting pathを 得る((3, 4, 5, 6, 7), 10, 12, 11) • augmentationを行う 14 8 9 11 1 2 3, 4, 5, 6, 7 10 12 13 (Augment) rootからrootへeを含んだパスPは S’に対しaugmentingなのでaugmentation. 繰り返しshrinkされたcycleをunshrink もともとのグラフGをShrinking Lemmaを使い 復元してStep 0に戻ります. • Shrinking Lemmaを適用し、unshrinkを行う と、もとより濃度の濃いマッチングが得られる • 頂点10は4と6どっちにマッチングを持って いっても良い • 結果、完全マッチングが得られる 14 4 5 8 11 1 2 3 10 12 6 7 13 9 • またSeedを行い、Growで森を生成 2 1 8 9 13 14 Step 1~3のどれも適用できないのでStep 4に進み、 最大マッチングの濃度は6と分かる Odd-set coverのcapacityも6で、次のOdd-set coverが得られる W : ({{4, 5, 6, 7, 10, 11, 12}}; {2, 3, 8}) . Fitness and efficiency of Edmonds’s Cardinality Matching Algorithm • EdmondのアルゴリズムはO(|V(G)|4)で終わる • Proof – まず、augmentation(増大)の回数は最高でも|V(G)| / 2回(マッチングなので) – grow stepの回数は最高でも|V(G)| / 2回(森がいく つ枝を持てるのかを考えよう!) – shrink stepの回数は最高でも|V(G)| / 2回(shrinkし たときの頂点の消える個数を考えよう!最小の cycleの大きさは3) – (grow + shrink) * augmentがステップ数 – ゆえに、このStep 1~3の繰り返し時間はO|V(G)|2 – とても単純なデータ構造を用いて、それぞれのStep をO|V(G)|2時間で簡単に実行可能(詳細略) – よって、計O(|V(G)|4)で実行可能 Lemma (Maximum-cardinality matching in a shrunken graph) • Edmondのアルゴリズムの結論として、S’ (matching of shrunken graph)はG’ (shrunken graph)の最大マッチング • Proof – – – – – – – – – – – HをG’にアルゴリズムを適用後の森とする EをHのevenな頂点集合とする OをHのoddな頂点集合とする UをHにはないG’の頂点集合とする Hのroot以外の頂点は全てcoveredである さらに、全てのrootでない頂点はS‘ ∩ E(H)の要素に使わ れている ゆえに、HとUの間にはもうマッチングの数を増やす余地は ない(アルゴリズムが終わっているのでStep 2を適用でき ない) しかしながら、全てのUの要素はS’によりcovered ゆえにS‘ ∩ E(G'[U])はG’[U]の完全マッチング そして、|S‘ ∩ E(G'[U])| = |U| / 2 さらにHのalternating structure により、|S’ ∩ E(H)| = |O| – もし、|U| > 2ならばv ∈ Uを選び、W := ({U - v}; O + v) – WはG’のodd-set coverなので 1. Hの枝は全てOに触れている 2. G‘[U]の全ての枝は両端がU-vに含まれており、vに接して いる 3. E(H) ∪ E(G'[U])にない唯一の枝は一つの端点Oに持つ。 (なぜなら、そうでなければgrow, shrink, augmentができ るので) – もし代わりに、|U| = 2とすると、odd-set coverはW := (Φ ; O + v) – U = Φ ならW := (Φ ; O) – どの場合もWのcapacityと濃度がどちらも|O|+|U|/2であ ることは簡単にチェックできる。 Theorem (Correctness of Edmond’s Cardinality Matching Algorithm) • Edmondのアルゴリズムの結論として、Skは Gの最大マッチング • 前述のLemmaとShrinking Lemmaより
© Copyright 2024 ExpyDoc