Upgrade to Pro — share decks privately, control downloads, hide ads and more …

マトロイドの世界

Avatar for terapoon terapoon
September 26, 2020

 マトロイドの世界

Combinatorial Optimization (Korte) 復習会 セミナー資料

誤植訂正済version

Avatar for terapoon

terapoon

September 26, 2020
Tweet

More Decks by terapoon

Other Decks in Science

Transcript

  1. 導入 (1/7) (問題1) 最小全域木問題 グラフ = (, ) と辺のコスト関数 :

    ⟶ ℝ が与えられた時に、全頂点を通るような 木(全域木, spanning tree)で含まれる辺のコストの総和が最小のものを求める問題 最小全域木(minimum spanning tree) 3 5 4 4 2 1 3 5 4 4 2 5 1 5 5
  2. 導入 (4/7) (問題1) 最小全域木問題 クラスカル法もプリム法も最小のものを順番に選んでいく → 貪欲法(greedy algorithm) 貪欲に選んで正しく最小全域木(minimum spanning

    tree)が求まる。 貪欲に選ぶとは… 候補を全て確認することなく目的に向かって真っ直ぐ突き進むイメージ 8
  3. 導入 (5/7) (問題2) 最短路問題 グラフ = (, ) と辺のコスト関数 :

    ⟶ ℝ と2点, が与えられた時に、sからtへの 最短路(コスト最小のパス)を求める問題 s t s t 3 6 4 -5 2 1 3 6 4 -5 2 3 1 3 最短路(minimum length path) 9
  4. マトロイド(matroid)とは (1/3) u 元々は線形独立性を抽象的に特徴付ける試み u matroid = matrix + oid

    u まずは準備。多くの組み合わせ最適化問題は以下のようにかける。 Input: 集合系(set system) , ℱ , コスト関数(cost) : ℱ ⟶ ℝ Task: max !⊆# を求める (ただし、 ≔ ∑$∈! ()である。) 12
  5. マトロイド(matroid)とは (3/3) u 独立系(independence system)がマトロイド(matroid)であるとは、 (M1) ∅ ∈ ℱ (M2)

    ⊆ ∈ ℱ ⟹ ∈ ℱ に加えて以下も満たすこと。 (M3) , ∈ ℱ, > ⟹ ∃ ∈ \Y . . ∪ {} ∈ ℱ (マトロイドの例) = , , ℱ = {∅, a , b , {a, b}} a b c 14
  6. マトロイドの例 (1/4) vector matroid (最も基本的なマトロイド) : ある体上の行列 このとき、 ≔ {の行ベクトル}

    ℱ ≔ { ⊆ |内の行ベクトルが線型独立( )} と定めると(, ℱ)はマトロイド(matroid)となる。 (証明) (M1) 明らか。 (M2) 線型独立なベクトルの集合の部分集合も線型独立。 (M3) 行列のランクの数までは線型独立な行ベクトルが選べるので明らか。∎ マトロイドの公理 (再掲) (M1) ∅ ∈ ℱ (M2) ⊆ ∈ ℱ ⟹ ∈ ℱ (M3) , ∈ ℱ, > ⟹ ∃ ∈ \Y . . ∪ {} ∈ ℱ 15
  7. マトロイドの例 (2/4) graphic matroid (cycle matroid, グラフに関するマトロイド) 無向グラフ = ((),

    ())に対し、 : = ℱ ≔ { ⊆ |( , )は森()} と定めると(, ℱ)はマトロイド(matroid)となる。 (証明) (M1) 明らか。 (M2) 森(forest)の部分グラフは森(forest)。 (M3) (V(G), Y)はspanning tree (全域木)ではないので、閉路を作らずまだ辺を 追加できる。∎ マトロイドの公理 (再掲) (M1) ∅ ∈ ℱ (M2) ⊆ ∈ ℱ ⟹ ∈ ℱ (M3) , ∈ ℱ, > ⟹ ∃ ∈ \Y . . ∪ {} ∈ ℱ 16
  8. マトロイドの例 (3/4) uniform matroid (シンプルなマトロイド) ∈ ℤ& とする。 このとき、 :

    ある有限集合 ℱ ≔ { ⊆ ||| ≤ } と定めると(, ℱ)はマトロイド(matroid)となる。 (証明) (M1) 明らか。 (M2) 明らか。 (M3) 明らか。∎ マトロイドの公理 (再掲) (M1) ∅ ∈ ℱ (M2) ⊆ ∈ ℱ ⟹ ∈ ℱ (M3) , ∈ ℱ, > ⟹ ∃ ∈ \Y . . ∪ {} ∈ ℱ 17
  9. マトロイドの例 (4/4) 無向グラフ = ((), ())に対し、 ⊆ ()を独立集合(stable set)とする。 (※

    独立集合とは、辺を通じて互いに隣接していない頂点集合のこと) ' ∈ ℤ& ( ∈ )と定める。 このとき、 ≔ ℱ ≔ { ⊆ ||( | ≤ ' ∈ } と定めると、(, ℱ)はマトロイド(matroid)となる。 (証明) 省略する。∎ マトロイドの公理 (再掲) (M1) ∅ ∈ ℱ (M2) ⊆ ∈ ℱ ⟹ ∈ ℱ (M3) , ∈ ℱ, > ⟹ ∃ ∈ \Y . . ∪ {} ∈ ℱ a b = , , ) = 1, * = 0 = 1,2,3,4,5,6,7 ℱ = {∅, 1 , 2 , 3 , 4 , 5 , 1,4 , 2,4 , 3,4 , 1,5 , 2,5 , 3,5 , 4,5 , 1,4,5 , 2,4,5 , {3,4,5}} 1 2 3 4 5 6 7 18
  10. 独立公理(independece axiom) (2/2) u (M3)は(M3’), (M3’’)のいずれとも等価 (交換可能) (M3) , ∈

    ℱ, > ⟹ ∃ ∈ \Y . . ∪ {} ∈ ℱ (M3’) , ∈ ℱ, = + 1 ⟹ ∃ ∈ \Y . . ∪ {} ∈ ℱ (M3’’) ∀ ⊆ . = ℎ ℎ u 他の公理を眺め、公理の等価性を確認する。 u 基公理 (base axiom) u ランク公理 (rank axiom) u 閉包公理 (closure axiom) u サーキット公理 (circuit axiom) 21 (M3) <=> (M3’), (M3’) => (M3’’)はすぐにわかる。 (M3’’) => (M3)の証明 , ∈ ℱ, > ||とする。 このとき(M3’’)よりは ∪ の基ではない。 よって、ある ∈ ∪ \Y = \Yが存在して ∪ {} ∈ ℱとなる。∎
  11. 準備 (2/3) (Exercise 1) ≔ , , ℱ ≔ {∅,

    , , , , } という独立系(independence system)について以下の問いの答えよ。 1. 独立(independent)な要素を全て答えよ。 2. 従属(dependent)な要素を全て答えよ。 3. 基(base)を全て答えよ。 4. サーキット(circuit)を全て答えよ。 5. X={b,c}とする。Xのランク(rank)と閉包(closure)を答えよ。 23
  12. 準備 (3/3) (Exercise 1の答え) 1. ∅, , , , ,

    2. , , , , , , = E 3. , , {} 4. , , , 5. = 1, = , = 24
  13. 基公理(base axiom) (1/3) ※ 極大な独立(independent)な要素を基(base)という。 ℬ ⊆ 2#とする。 このとき、ℬがあるマトロイド ,

    ℱ の基(base)の集合であることと以下が同値 (B1) ℬ ≠ ∅ (B2) ∀+ , , ∈ ℬ. ∀ ∈ + \, . ∃ ∈ , \+ . . + \{} ∪ {} ∈ ℬ (B1), (B2)はマトロイドの公理とみなせる。これが基公理(base axiom)である。 25
  14. 基公理(base axiom) (2/3) ℬ ⊆ 2#とする。 このとき、ℬがあるマトロイド , ℱ の基(base)の集合であることと以下が同値

    (B1) ℬ ≠ ∅ (B2) ∀+ , , ∈ ℬ. ∀ ∈ + \, . ∃ ∈ , \+ . . + \{} ∪ {} ∈ ℬ (=>の証明) (B1) 明らか。 (B2) + , , と ∈ + \, に対して、(M2)より+ \{}は独立。 , > |+ \{}|なので(M3)より∃ ∈ , \(+ \{}) = , \+ . . (+ \{}) ∪ {} ∈ ℱ (M3’’)を考えると (+ \{}) ∪ {} ∈ ℬが言える。∎ 26 (M2) ⊆ ∈ ℱ ⟹ ∈ ℱ (M3) , ∈ ℱ, > ⟹ ∃ ∈ \Y . . ∪ {} ∈ ℱ (M3’’) ∀ ⊆ . ℎ ℎ
  15. 基公理(base axiom) (3/3) ℬ ⊆ 2!とする。 このとき、ℬがあるマトロイド , ℱ の基(base)の集合であることと以下が同値

    (B1) ℬ ≠ ∅ (B2) ∀" , # ∈ ℬ. ∀ ∈ " \# . ∃ ∈ # \" . . " \{} ∪ {} ∈ ℬ (<=の証明) ℬが(B1), (B2)を満たすとする。 このとき、ℱ ≔ { ⊆ |∃ ∈ ℬ . . ⊆ }とおくと、(, ℱ)はマトロイドになる。 (M1) 明らか。 (M2) 基の集合はℱの定義より明らかにℬに含まれる。 基でない ∈ ℬがあるとすると、∃$ ∈ ℱ. ∃$ ∈ ℬ . . ⊊ ′ ⊆ ′ ところが、\B$ = ∅となって(B2)に矛盾する。 (M3) , ∈ ℱ, X > |Y|とし、 ⊆ " ∈ ℬ, ⊆ # ∈ ℬとなる" , # を|" ∩ # |が最大になるように取る。 背理法で|" ∩ # |の最大性に矛盾させる (以下略) ∎ 27 (M1) ∅ ∈ ℱ (M2) ⊆ ∈ ℱ ⟹ ∈ ℱ (M3) , ∈ ℱ, > ⟹ ∃ ∈ \Y . . ∪ {} ∈ ℱ
  16. ランク公理 (rank axiom) (1/4) ※ ≔ max ⊆ , ∈

    ℱ}をXのランク(rank)という。 があるマトロイド , ℱ のランク関数(rank function)であることと以下が同値 ∀, ⊆ に対し、 (R1) () ≤ || (R2) ⊆ ⟹ ≤ (R3) ∪ + ∩ ≤ + () 劣モジュラ性(submodularity) (R1), (R2), (R3)はマトロイドの公理とみなせる。これがランク公理(rank axiom) である。 28
  17. ランク公理 (rank axiom) (2/4) があるマトロイド , ℱ のランク関数(rank function)であることと以下が同値 ∀,

    ⊆ に対し、 (R1) () ≤ || (R2) ⊆ ⟹ ≤ (R3) ∪ + ∩ ≤ + () 劣モジュラ性(submodularity) (=>の証明) (R1) 明らか。 (R2) 明らか。 (R3) ∩ の基をとする。 (M3)に基づいて1つずつ要素を追加することにより、 の基 ⊔ と ∪ の基( ⊔ ) ⊔ を作る。 このとき、 ⊔ はの独立な部分集合である。 以上より、 + ≥ ⊔ + ⊔ = + + + = ⊔ ⊔ + = ∪ + ∩ ∎ 29
  18. ランク公理 (rank axiom) (3/4) があるマトロイド , ℱ のランク関数(rank function)であることと以下が同値 ∀,

    ⊆ に対し、 (R1) () ≤ || (R2) ⊆ ⟹ ≤ (R3) ∪ + ∩ ≤ + () 劣モジュラ性(submodularity) (<=の証明) が(R1), (R2), (R3)を満たすとする。 このとき、ℱ ≔ { ⊆ | = ||}とおくと、(, ℱ)はマトロイドになる。 (M1) (R1)より明らか。 (M2), (M3)については省略。∎ 30
  19. ランク公理 (rank axiom) (4/4) ランク公理 ∀, ⊆ に対し、 (R1) ()

    ≤ || (R2) ⊆ ⟹ ≤ (R3) ∪ + ∩ ≤ + () 劣モジュラ性(submodularity) は、以下に言い換えが可能。(証明略) ∀ ⊆ , ∀, ∈ に対し、 (R1’) ∅ = 0 (R2’) ≤ ∪ ≤ + 1 (R3’) ∪ = ∪ = ⟹ ∪ , = () 31
  20. 閉包公理 (closure axiom) (1/2) ※ ≔ ∈ ⋃ = ()}をXの閉包(closure)という。

    があるマトロイド , ℱ の閉包関数(closure function)であることと以下が同値 ∀ ⊆ , ∀, ∈ に対し、 (S1) ⊆ () (S2) ⊆ ⟹ ⊆ (S3) = ( ) (S4) ∉ () ∧ ∈ ( ∪ {}) ⟹ ∈ ( ∪ {}) (S1), (S2), (S3), (S4)はマトロイドの公理とみなせる。これが閉包公理(closure axiom) である。 32
  21. 閉包公理 (closure axiom) (2/2) があるマトロイド , ℱ の閉包関数(closure function)であることと以下が同値 ∀

    ⊆ , ∀, ∈ に対し、 (S1) ⊆ () (S2) ⊆ ⟹ ⊆ (S3) = ( ) (S4) ∉ () ∧ ∈ ( ∪ {}) ⟹ ∈ ( ∪ {}) 証明は少し複雑なので本を参照。ここでは省略。 ℱ ≔ { ⊆ |∀ ∈ . ∉ \ }とおく。 33
  22. サーキット公理 (circuit axiom) (1/2) ※ 極小な従属(dependent)な要素をサーキット(circuit)という。 ⊆ 2#とする。 このとき、があるマトロイド ,

    ℱ のサーキット(circuit)の集合であることと以下が同値 (C1) ∅ ∉ (C2) ∀+ , , ∈ . + ⊆ , ⟹ + = , (C3) ∀+ , , ∈ + ≠ , . ∀ ∈ + ∩ , . ∃C ∈ . . C ⊆ (+ ⋃, )\{} (C1), (C2), (C3)はマトロイドの公理とみなせる。これがサーキット公理(circuit axiom)で ある。 34
  23. サーキット公理 (circuit axiom) (2/2) サーキット公理 (C1) ∅ ∉ (C2) ∀!

    , " ∈ . ! ⊆ " ⟹ ! = " (C3) ∀! , " ∈ ! ≠ " . ∀ ∈ ! ∩ " . ∃# ∈ . . # ⊆ (! ⋃" )\{} の(C3)は以下(C3’), (C3’’)と交換可能。 (C3’) ∀! , " ∈ . ∀ ∈ ! ∩ " . ∀ ∈ ! \". ∃# ∈ . . ∈ # ⊆ (! ⋃" )\{} (C3’’) ∀ ∈ ℱ. ∀ ∈ . ∪ . 証明は少し複雑なので本を参照。ここでは省略。 ℱ ≔ { ⊆ |∄ ∈ . . ⊆ }とおく。 35
  24. 双対な独立系(dual independence system) (1/6) u 独立系(, ℱ)に対し、その双対(dual)(, ℱ∗)は ℱ∗ ≔

    ⊆ ∃ , ℱ . . ∩ = ∅} と定められる。 (Exercise 2) ≔ , , ℱ ≔ {∅, , , , , } という独立系(independence system)の双対な独立系を求めよ。 37
  25. 双対な独立系(dual independence system) (2/6) (Exercise 2の答え) ≔ , , ℱ

    ≔ {∅, , , , , } のbaseは , , {}。 ℱ∗ ≔ ⊆ ∃ , ℱ . . ∩ = ∅} より、この二つのbaseそれぞれと交わりを持たない要素を全て挙げれば良い。 {, }と交わりを持たないのは、∅, c {}と交わりを持たないのは、∅, , , , よって、ℱ∗ = ∅, , , , {, } = ℱと求まる。 ※一般に ℱ, ℱ∗は等しくならない。 38
  26. 双対な独立系(dual independence system) (3/6) u 双対なので、2回適用すれば元に戻る。つまり , ℱ = (,

    ℱ∗∗) となることを示していく。 [Lemma A] が , ℱ の ⟹ \が , ℱ∗ の (証明) まず、ℱ∗の定義より ∀ ∈ ℱ∗. ∃ , ℱ . . ⊆ \ これより、 ∀ , ℱ . \ ∈ ℱ∗ が言える。あとは極大性を言えば良い。背理法で示す。 ∃ ∈ . . \(\{}) ∈ ℱ∗ とすると、 ∃ , ℱ . . ⊆ \{} となる。ところが、これは ∪ {} ⊆ ∈ ℱ ⟶ ∪ {} ∈ ℱ を意味し、Cの極大性に矛盾。∎ 39
  27. 双対な独立系(dual independence system) (4/6) u 双対なので、2回適用すれば元に戻る。つまり , ℱ = (,

    ℱ∗∗) となることを示していく。 [Lemma B] , ℱ∗ も独立系 (証明) (M1) どんなbase に対しても ∩ ∅ = ∅より∅ ∈ ℱ∗ (M2) ⊆ ∈ ℱ∗より定義から ∃ , ℱ . . ∩ = ∅ であり、 ∩ = ∅ ⟶ ∈ ℱ∗∎ 40
  28. 双対な独立系(dual independence system) (5/6) u 双対なので、2回適用すれば元に戻る。つまり , ℱ = (,

    ℱ∗∗) となることを示していく。 [Lemma A] が , ℱ の ⟹ \が , ℱ∗ の [Lemma B] , ℱ∗ も独立系 ↓ [*] が , ℱ の ⟺ \が , ℱ∗ の が言える。 41
  29. 双対な独立系(dual independence system) (6/6) u 双対なので、2回適用すれば元に戻る。つまり , ℱ = (,

    ℱ∗∗) となることを示していく。 (証明) ∈ ℱ∗∗ ⟺ ∃ ∗ , ℱ∗ . . ∩ ∗ = ∅ [*] が , ℱ の ⟺ \が , ℱ∗ の より ∃ ∗ , ℱ∗ . . ∩ ∗ = ∅ ⟺ ∃ , ℱ . . ∩ \B = ∅ が言える。 ∈ ℱ ⟹ ∃ , ℱ . . ∩ \B = ∅ は明らか。逆は、 ∩ \B = ∅ ⟶ ⊆ ∈ ℱ となるので従う。∎ 42
  30. マトロイドの双対性(duality) (1/3) Theorem 13.15 1. (, ℱ)がマトロイド (matroid)⟺ , ℱ∗

    がマトロイド(matroid) 2. 双対マトロイドのランク関数(rank function)は∗ = + \X − (2の証明) ∗がランク公理を満たすことを確認する。 (R1) ∗ = + \X − ≤ + − = (R2) ⊆ ⊆ とすると、劣モジュラ性(R3)より、 \X + 0 = \Y ∪ \X + ∅ ≤ \Y + \X これより \X − \Y ≤ \X ≤ \X = − || よって、 ∗ − ∗ = + \Y + − + \X + = − − ( \X − (\Y)) ≥ 0 43
  31. マトロイドの双対性(duality) (2/3) Theorem 13.15 1. (, ℱ)がマトロイド (matroid)⟺ , ℱ∗

    がマトロイド(matroid) 2. 双対マトロイドのランク関数(rank function)は∗ = + \X − (2の証明続き) (R3) , ⊆ に対し、 ∗ ∪ + ∗ ∩ = ∪ + (\( ∪ )) − () + ∩ + (( ∩ )) − () = + + \X ∪ \Y + \X ∩ \Y − 2 劣モジュラ性(R3)より、 ≤ + + \X + \Y − 2 = ∗ + ∗ ∎ 44
  32. マトロイドの双対性(duality) (3/3) Theorem 13.15 1. (, ℱ)がマトロイド (matroid)⟺ , ℱ∗

    がマトロイド(matroid) 2. 双対マトロイドのランク関数(rank function)は∗ = + \X − (1の証明) ∗ = || ⟺ ∈ ℱ∗を言えば良い。 ∗ = ⟺ \X = ⟺ max ⊆ \X, ∈ ℱ} = max{ | ⊆ , ∈ ℱ} であり、 max ⊆ \X, ∈ ℱ} = max{ | ⊆ , ∈ ℱ} ⟹ ∃ , ℱ . . ∩ = ∅ は明らか。⟸を示す。≤は明らか。反対を背理法によって示す。 < ||と仮定すると、(M3)より∃ ∈ \Y . . ∪ {} ∈ ℱとなってYの最大性に反する。∎ 45
  33. 双対マトロイドの例 (2/2) [再掲] graphic matroid (cycle matroid, グラフに関するマトロイド) 無向グラフ =

    ((), ())に対し、 : = ℱ ≔ { ⊆ |( , )は森()} と定めると(, ℱ)はマトロイド(matroid)となる。 このとき、平面グラフの平面双対と、cycle matroidの双対が対応する!! ℳ ∗ = (ℳ())∗ 証明はここでは省略。Theorem13.16を参照 47
  34. 貪欲法(greedy algorithm) (1/5) u まずは独立系(independence system)の上で貪欲法(greedy algorithm)を定義しよう。 u 考える問題は以下の二つ 独立系(,

    ℱ)とコスト関数: ⟶ ℝが与えられた時、 1. 最大化問題: ()が最大になる ∈ ℱを求める問題 2. 最小化問題: ()が最小になる基(base)を求める問題 50
  35. 貪欲法(greedy algorithm) (2/5) 最大化問題: ()が最大になる ∈ ℱを求める問題 この問題に対する貪欲法は以下。 BEST-IN-GREEDY ALGORITHM

    Input: 独立系(, ℱ), コスト関数: ⟶ ℝ& , independence oracle ( ⊆ がℱの要素か判定) 1. の要素を ! ≥ " ≥ … ≥ (' ) となるように = {! , " , … , ' }とソート 2. ≔ ∅とする。 3. = 1, . . , に対し順番に ∪ {( } ∈ ℱなら ≔ ∪ {( }と更新していく。 51 independence oracleで判定 ソートにO(nlog n) oracleの計算時間をO(γ)とすると全体で O(nlog n+γn)
  36. 貪欲法(greedy algorithm) (3/5) 最小化問題: ()が最小になる基(base)を求める問題 この問題に対する貪欲法は以下。 WORST-OUT-GREEDY ALGORITHM Input: 独立系(,

    ℱ), コスト関数: ⟶ ℝ& , basis-superset oracle ( ⊆ がℱのbaseを含んでいるかを判定) 1. の要素を ! ≥ " ≥ … ≥ (' ) となるように = {! , " , … , ' }とソート 2. ≔ とする。 3. = 1, . . , に対し順番に\{( }がbaseを含むなら ≔ \{( }と更新していく。 52 Basis-superset oracleで判定 ソートにO(nlog n) oracleの計算時間をO(γ)とすると全体で O(nlog n+γn)
  37. 貪欲法(greedy algorithm) (4/5) (Exercise 3) 独立系 = , , ℱ

    = {∅, , , , , } と、マトロイド = , , ℱ = {∅, a , b , {a, b}} において = 2, = 3, = 4 というコスト関数のもとで - BEST-IN-GREEDY ALGORITHMで最大化問題 - WORST-OUT-GREEDY ALGORITHMで最小化問題 をそれぞれ解き、最適解と比較せよ。 53
  38. 貪欲法(greedy algorithm) (5/5) (Exercise 3の答え) [最大化問題] 双方の最適解: X={a,b}, c(X)=5 独立系での結果:

    X={c}, c(X)=4 → 最適解と一致しない!! マトロイドでの結果: X={a,b}, c(X)=5 → 最適解と一致!! [最小化問題] 独立系の最適解: B={c}, c(B)=4 独立系での結果: B={a,b}, c(B)=5 → 最適解と一致しない!! マトロイドの最適解: B={a,b}, c(B)=5 マトロイドでの結果: B={a,b}, c(B)=5 → 最適解と一致!! 54
  39. Lower rankとランク商(rank quotient) 目標: マトロイド上の貪欲法は最適解を返すことを証明する。 目標を果たそう。まずは準備。 独立系(, ℱ)に対し、 ≔ min

    ⊆ , ∀ ∈ \Y. ∪ {} ∉ ℱ} をXのlower rankと定める。これと、ランク関数(rank function) ≔ max ⊆ , ∈ ℱ} を用いて、ランク商(rank quotient)を , ℱ ≔ min !⊆# () () と定める。 55 - lower rankはXに含まれる最小のbaseの大きさ - rankはXに含まれる最大のbaseの大きさ
  40. マトロイドとランク商(rank quotient) [Proposition 13.7] 独立系(, ℱ)に対し、 (a) (, ℱ) ≤

    1 (b) (, ℱ)がマトロイド(matroid) ⟺ , ℱ = 1 (証明) (a) , ℱ ≔ min !⊆# S(!) T(!) , lower rankはXに含まれる最小のbaseの大きさ, rank はXに含まれる最大のbaseの大きさなので明らか。 (b) (M3’’) ∀ ⊆ . ℎ ℎ と , ℱ = 1が同値 であるので明らか。∎ 56
  41. BEST-IN-GREEDY ALGORITHMの性能 最適解によるコスト: , ℱ, 貪欲法が返す解によるコスト: (, ℱ, ) この時、最大化問題に対するBEST-IN-GREEDY

    ALGORITHMの性能は (, ℱ) ≤ (, ℱ, ) (, ℱ, ) ≤ 1 となる。(Theorem 13.19) ※ 最小化問題に対しては比の有限な上界なし 1 ≤ , ℱ, , ℱ, < ∞ 57 1 2 M>>2 マトロイドの時は左辺1より 貪欲法で最適解が得られる! (cf) maximal stable set of minimum weight
  42. WORST-OUT-GREEDY ALGORITHMの性能 最適解によるコスト: , ℱ, 貪欲法が返す解によるコスト: (, ℱ, ) この時、最小化問題に対するWORST-OUT-GREEDY

    ALGORITHMの性能は 1 ≤ , ℱ, , ℱ, ≤ max !⊆# − ∗() − ∗() となる。(Theorem 13.22) ※ 最大化問題に対しては正の下界なし 0 < , ℱ, , ℱ, ≤ 1 58 マトロイドの時は右辺1より 貪欲法で最適解が得られる! 1 2 M>>2 (cf) minimal vertex cover of maximum weight
  43. BEST-IN-GREEDY ALGORITHMの性能証明 (1/3) [Theorem 13.19] 最大化問題に対するBEST-IN-GREEDY ALGORITHMは、 (, ℱ) ≤

    (, ℱ, ) (, ℱ, ) ≤ 1 を満たす。 (証明) アルゴリズムの返す解をU , 最適解をU とする。 + ≥ , ≥ … ≥ (U )とソートして、V : = + , , , … , V , V : = U ∩ W , V : = U ∩ V と定める。 V ∈ ℱより、|V | ≤ (V ) V はV の基であった(アルゴリズム参照)ので、|V | ≥ (V ) 59 - lower rankはXに含まれる最小のbaseの大きさ - rankはXに含まれる最大のbaseの大きさ
  44. BEST-IN-GREEDY ALGORITHMの性能証明 (2/3) [Theorem 13.19] 最大化問題に対するBEST-IN-GREEDY ALGORITHMは、 (, ℱ) ≤

    (, ℱ, ) (, ℱ, ) ≤ 1 を満たす。 (証明の続き) % = N &"∈(# () ) = N )*" % ( ) − )+" )() ) = N )*" %+" |) |( ) − )," ) + % % ≥ N )*" %+" ) ) − )," + % % ≥ (, ℱ) N )*" %+" ) ) − )," + % % ≥ , ℱ N )*" %+" ) ) − )," + % % = (, ℱ) N )*" % ) − )+" ) = (, ℱ)(% ) 60 U : アルゴリズムの解 U : 最適解 V : = + , , , … , V V : = U ∩ W V : = U ∩ V |V | ≤ (V ) |V | ≥ (V ) , ℱ ≔ min !⊆# () ()
  45. BEST-IN-GREEDY ALGORITHMの性能証明 (3/3) [Theorem 13.19] 最大化問題に対するBEST-IN-GREEDY ALGORITHMは、 (, ℱ) ≤

    (, ℱ, ) (, ℱ, ) ≤ 1 を満たす。 (証明の続き) 不等式は示せた。等号成立を示す。 , ℱ = |! | |" | となるような ⊆ に対し、 ≔ \ 1 ( ∈ ) 0 ∈ \X というコスト関数を与える。! の要素の方が添字が小さくなるようにすると、 , ℱ, = ! , , ℱ, = |" | となって等号が成り立つ例となる。∎ 61 U : アルゴリズムの解 U : 最適解 V : = + , , , … , V V : = U ∩ W V : = U ∩ V |V | ≤ (V ) |V | ≥ (V ) , ℱ ≔ min !⊆# () ()
  46. WORST-OUT-GREEDY ALGORITHMの性能証明 (1/3) [Theorem 13.22] 最小化問題に対するWORST-OUT-GREEDY ALGORITHMは、 1 ≤ ,

    ℱ, , ℱ, ≤ max !⊆# − ∗() − ∗() を満たす。 (証明) 1. V ≤ V − ∗ V 2. V ≥ V − ∗ V が示せれば、BEST-IN-GREEDYのときの証明と同じ変形をすることで不等式が示せ る。(各自確認せよ) 等号成立する例はmaxを達成するXについてBEST-IN-GREEDYのときの証明と同じよ うに作れる。 よって、1,2を順に示す。(双対性を今一度復習してから進むこと。) 62 U : アルゴリズムの解 U : 最適解 V : = + , , , … , V V : = U ∩ W V : = U ∩ V
  47. WORST-OUT-GREEDY ALGORITHMの性能証明 (2/3) [Theorem 13.22] 最小化問題に対するWORST-OUT-GREEDY ALGORITHMは、 1 ≤ ,

    ℱ, , ℱ, ≤ max )⊆+ − ∗() − ∗() を満たす。 ( , ≤ , − ∗ , の証明) ' ⊆ \(, \, )であり、' は(, ℱ)の基(base)である。 これは、(, ℱ)の基' ∩ , \, = ∅を意味する。 つまり、, \, ∈ ℱ∗ということ。 さらに、∀e ∈ , . (, ∪ (\, ))\{}は(, ℱ)の基(base)を含まない(アルゴリズム参照) ので、補集合を考えると ∀e ∈ , . , \, ∪ {}は全ての基と交わる。 つまり、 ∀e ∈ , . (, \, ) ∪ {} ∉ ℱ∗なので , \, は, の基である。 したがって、|, \, | ≥ ∗(, )となり、示せた。 63 ℱ∗ ≔ ⊆ ∃ , ℱ . . ∩ = ∅}
  48. WORST-OUT-GREEDY ALGORITHMの性能証明 (3/3) [Theorem 13.22] 最小化問題に対するWORST-OUT-GREEDY ALGORITHMは、 1 ≤ ,

    ℱ, , ℱ, ≤ max !⊆# − ∗() − ∗() を満たす。 ( V ≥ V − ∗ V の証明) U ⊆ \(V \V )であり、U は(, ℱ)の基(base)である。 これは、(, ℱ)の基U ∩ V \V = ∅を意味する。 つまり、V \V ∈ ℱ∗ということ。 したがって、|V \V | ≤ ∗(V )となり、示せた。∎ 64 ℱ∗ ≔ ⊆ ∃ , ℱ . . ∩ = ∅}
  49. マトロイドと貪欲法 総括 マトロイド上では最大化問題に対するBEST-IN-GREEDY ALGORITHMが最適解を返す ことが示せた。 また、 X = 1 +

    max ∈ − () とすると、 , ℱ, に対する最小化問題 = , ℱ, X に対する最大化問題 となるので、マトロイドの場合はBEST-IN-GREEDY ALGORITHMとWORST-OUT- GREEDY ALGORITHMのどちらを使っても問題はないことに注意。 ここで、一番最初にあげた例に戻ってみる。 65
  50. 最小全域木問題再訪 (問題1) 最小全域木問題 グラフ = (, ) と辺のコスト関数 : ⟶

    ℝ が与えられた時に、全頂点を通るような 木(全域木, spanning tree)で含まれる辺のコストの総和が最小のものを求める問題 最小全域木(minimum spanning tree) 3 5 4 4 2 1 3 5 4 4 2 5 1 5 66
  51. クラスカル法とマトロイド (2/2) (問題1) 最小全域木問題 [クラスカル法] 辺のコストが小さい順に選んでいき閉路や多重辺ができなければ追加していき、 全域木となったら終了する。 ↓ graphic matroid

    ℳ()を考えると、 全域木: ℱの極大な要素(base) であるので、最小全域木問題は、マトロイドℳ()に対する最小化問題 ↓ クラスカル法は、graphic matroidに対するBEST-IN-GREEDY ALGORITHMだった!! 68
  52. プリム法とグリードイド(greedoid) (3/7) u 集合系(set system) (, ℱ)がグリードイド(greedoid)であるとは以下を満たすこと。 (M1) ∅ ∈

    ℱ (M3) , ∈ ℱ, > ⟹ ∃ ∈ \Y . . ∪ {} ∈ ℱ (グリードイドの例) = , , ℱ = {∅, a , {a, b}} 71 a b c
  53. プリム法とグリードイド(greedoid) (4/7) GREEDY ALGORITHM FOR GREEDOID: (BEST-IN-GREEDYに対応) Input: グリードイド(, ℱ),

    モジュラ関数: 2# ⟶ ℝ, oracle ( ⊆ がX ∈ ℱ判定し、()を返す) 1. ≔ ∅ 2. ∈ \Fのうち、 ∪ {} ∈ ℱかつ( ∪ {})が最大になるものを選ぶ。そのような eがない時は終了。 3. ≔ ∪ {}と更新して2に戻る。 72 ※ グリードイド上のモジュラ関数最大化問題は 一般にNP-hard (Proposition 14.8: VCからの帰着) ∪ + ∩ = + ()
  54. プリム法とグリードイド(greedoid) (5/7) GREEDY ALGORITHM FOR GREEDOIDは最適とは限らない。 しかし、以下の条件があれば最適 (証明は本を参照) ↓ [Theorem

    14.7] グリードイド(, ℱ)に対し、以下が同値 1. が最適 2. , ℱ が ℎ を満たす 73 ∀ ∈ ℱ. ∃ ∈ \A . . ∪ {} ∈ ℱ ∧ (\{}) ∪ {} ∈ ℱ (: ℱ, ⊆ , ∈ \B, ∪ {} ∈ ℱ)
  55. プリム法とグリードイド(greedoid) (6/7) (directed, undiredted) branching greedoid (directed, undiredted)グラフ = ((),

    ())に対し、 ∈ ()を一つ選ぶ。 この時、 : = ℱ ≔ { ⊆ | , はを根とする(有向, 無向)木} と定めると(, ℱ)はグリードイド(greedoid)となる。 (証明) (M1) 明らか。 (M3) 明らか。∎ 74
  56. プリム法とグリードイド(greedoid) (7/7) (問題1) 最小全域木問題 [プリム法] ある点からスタートし、すでに追加されている点からなるカット上で辺のコストが最も小さい 辺を追加していき、全域木となったら終了する。 ↓ branching greedoidを考えると、

    全域木: ℱの極大な要素(base) であるので、最小全域木問題は、グリードイドに対する最小化問題とも捉えられる!! ↓ プリム法は、branching greedoidに対する(BEST-IN-)GREEDY ALGORITHMだった!! branching greedoidはstrong exchange propertyを満たす(各自確認されたい)ので最適!! 75 ∀ ∈ ℱ. ∃ ∈ \A . . ∪ {} ∈ ℱ ∧ (\{}) ∪ {} ∈ ℱ (: ℱ, ⊆ , ∈ \B, ∪ {} ∈ ℱ)
  57. 最後に 他にもマトロイドに関する話題として、 1. マトロイドの交叉(intersection), 分割(partition) 2. マトロイドの仲間(greedoid, polymatroid, antimatroid) 3.

    マトロイドと劣モジュラ関数(submodular function)との関係 4. 劣モジュラ関数(submodular function)最小化 5. 対称劣モジュラ関数(symmetric submodular function)最小化 6. 劣モジュラ関数(submodular function)最大化のheuristic などが取り上げられています。興味のある方はぜひ読んでみてください!! 76