IA16 2

26
Introduction to Algorithms Chapter 16.4 マトロイド

Transcript of IA16 2

Page 1: IA16 2

Introduction to Algorithms Chapter 16.4 マトロイド

Page 2: IA16 2

• 集合Sとその部分集合族Iが以下の性質を満たすときマトロイドM = (S,I) という

1. S は有限集合

2. I は空ではなく, (この定義より空集合はIに含まれる)

3. (この性質を exchange-property と呼ぶ)

• SをMの台集合, Iを独立集合族, A∈I を独立集合という

Matroid

B 2 I, A ✓ B ) A 2 I

A 2 I, B 2 I, |A| < |B| )9x 2 B �A,A [ {x} 2 I

Page 3: IA16 2

マトロイドの例• Matroid = Matrix (行列) + oid (っぽいもの)

• 例

• 行列Aの列番号の集合 V = {1,2,3,4,5}を考える

• Vの部分集合Xのうち,   が線形独立であるものを独立集合とする.その全体をIとすれば(S,I)はマトロイド

{aj |j 2 X}

Page 4: IA16 2

• 例

• 独立集合において極大なものを基といい,基全体をBと書く. 上の例だとB = {{1,2,3}, {1,2,5}, {1,3,4}, {1,3,5}, {1,4,5}, {2,3,4}, {2,4,5}, {3,4,5}}

• 基は以下の性質を持つ

1.

2.

• 以上の性質を満たすBからマトロイドを定義することもできる.この場合独立集合は基の部分集合

マトロイドの例

B 6= �

�,�0 2 B, b 2 � � �0 )9 e 2 �0 � �, (� � b) [ {e} 2 B

Page 5: IA16 2

• 例

• 列ベクトルの線形独立性は以下の階数関数でも表現可能

• ρ(X)は以下の性質を持つ

1.

2.

3. (劣モジュラ性)

• ρ(X)からマトロイドを定義することもできる.この場合独立集合族は

マトロイドの例

⇢(X) = rank{aj |j 2 X} (X ✓ V )

0 ⇢(X) kXk

X ✓ Y ) ⇢(X) ⇢(Y )

⇢(X) + ⇢(Y ) � ⇢(X [ Y ) + ⇢(X \ Y )

{I|⇢(I) = |I|}

Page 6: IA16 2

• 例

• さらに,列ベクトルの集合の中で独立でないもの(=従属)に着目することもできる.そのような集合を従属集合といい,極小な従属集合をサーキットと呼ぶ

• 上の行列の例だと,サーキットCは,C = {{1,2,4}, {2,3,5}, {1,3,4,5}}

• サーキットCは以下の性質を持つ

1.

2.

3.

• サーキットからマトロイドを定義することも可能

マトロイドの例

� 62 C

�, �0 2 C, � ✓ �0 ) � = �0

�, �0 2 C, � 6= �0, j 2 � \ �0 )9 �00 2 � ✓ (� [ �0)� {j}

Page 7: IA16 2

グラフ的マトロイド• 無向グラフ G = (V,E) に対し,グラフ的マトロイド を以下のように定義する

• SG はE,つまりグラフの辺

• IG は辺集合の部分集合のうち閉炉を含まないもの全体

MG = (SG, IG)

Page 8: IA16 2

Th 16.5 はマトロイド

• [証]SG = E は明らかに有限集合 (マトロイドの性質1)森の部分集合は森なので,IGは性質2を満たすGA = (V,A) , GB = (V,B) を Gの森だとし,|B| > |A|とする.つまり A,Bは閉路を持たずBの方がAより辺が多い

MG = (SG, IG)

Page 9: IA16 2

Th 16.5 はマトロイド

• [証]森 F = (VF, EF) は |VF| - |EF| の木を持つ なぜなら,Fがt個の木を含み,i番目の木がei個の辺とvi個の頂点を持つとすると,

• 従って,GAは|V| - |A|個,GBは|V| - |B|個の木を含む

MG = (SG, IG)

Page 10: IA16 2

Th 16.5 はマトロイド

• [証]GBはGAより少ない木を持つ=> GB内のある木Tに属する2つの頂点で,GA内では別々の木に属すようなものが必ず存在するTは連結なので,そのGA内で別々の木にある頂点を結ぶ辺 (u,v)が存在.(u,v)をGAに加えても閉路は作らない.よってMGはexchange propertyも満たす

MG = (SG, IG)

Page 11: IA16 2

extension / 極大

• A ∈ I に対し A∪{x}も独立 ( A∪{x} ∈ I) ならをAのextensionと呼ぶグラフ的マトロイドなら集合Aに加えても閉路を作らない辺がextention

• A ∈ I に対し extension が無ければAを極大(maximal)といい,極大な独立集合を基という

Page 12: IA16 2

Th16.6基の要素数は全て等しい

• マトロイドの性質より導かれる

• グラフ的マトロイドの基は最小全域木

A 2 I, B 2 I, |A| < |B| )9x 2 B �A,A [ {x} 2 I

Page 13: IA16 2

重み付きマトロイド• M = (S,I) に対して x ∈ S に 重み w(x) が定義されているとする

• A ∈ I の重み w(A) は,で定義する

• グラフ的マトロイドで w(e) を辺の重みとすればw(A)はAに含まれる辺の合計の重み

w(A) =X

x2A

w(x)

Page 14: IA16 2

マトロイドと貪欲法

• 貪欲法が最適解を与える問題の多くは重み付きマトロイドにおいて最も重い独立集合を探す問題に定式化できる

• マトロイドによる解は最適解を与えるが,多項式時間で解を与えるとは限らない

Page 15: IA16 2

例: 最小全域木を求める• 無向グラフ V = (G,E), 辺の長さ w(e)

• 全ての頂点が連結でかつ辺の合計の長さが最も短くなるような辺の部分集合を見つけたい

• マトロイドで考えると,重み関数をw’(e) = w0 - w(e) (w0 > max w(e)) とすれば極大な独立集合が最適解になる

Page 16: IA16 2

例: 最小全域木を求める• 極大な独立集合Aは|V|-1個の頂点を持つ最小全域木に対応する[証] w’(A) を最大化するAはw(A)を最小化する

Page 17: IA16 2

例: 最小全域木を求める• マトロイドを使った貪欲法による最小全域木を求めるアルゴリズム (M = (S,I))

• n = |S| とする.計算量は,ソートにO(n lg n), 4行目はn回実行され,その集合が独立かどうか判断するので O(f(n))このアルゴリズム全体では O(n lg n + f(n))

Page 18: IA16 2

Lemma 16.7(マトロイドはgreedy-choice propertyを持つ)

• 重み付きマトロイド M = (S,I) のSがその重さで単調減少的にソートされているとするxを{x}が独立であるようなSの最初の要素とする(もしあれば).xが存在するならxを含む最適なSの部分集合Aが存在する

• greedy-choice propertyとはある時点で最適な選択をすれば最適解が得られる性質のこと

Page 19: IA16 2

Lemma 16.7(マトロイドはgreedy-choice propertyを持つ)

• [証]もしそのようなxが存在しなければ,独立集合は空集合のみ.そうでない場合を考えるBをSの最適な部分集合でかつxを含まないもののいずれかとするBのどの要素もw(x)より重みは小さいか同じこのBから以下の手順でxを含む最適集合Aを構成する

Page 20: IA16 2

Lemma 16.7(マトロイドはgreedy-choice propertyを持つ)• [証]まず A = {x} とするxの条件からAは独立 exchange propertyを使って|A| = |B| になるまでAに追加するBの要素を見つけることができる|A| = |B| になったとき,まだAは独立 このとき A = B - {y} ∪ {x} である w(A) = w(B) - w(y) + w(x) ≧ w(B)Bは最適だからAも最適

Page 21: IA16 2

Lemma 16.8• 任意のマトロイドM = (S,I) に対しSの部分集合Aのextensionであるような x ∈ S が存在するならxはφのextensionでもある

• [証]xはAのextensionなので,A ∪ {x} は独立Iの性質より,{x}も独立.したがってxはφのextension

Page 22: IA16 2

Corollary 16.9• 任意のマトロイドM = (S,I) に対しx ∈ S がSの任意の部分集合Aのextentionではないとき,xはφのextentionでもない

• [証]Lemma 16.8 より明らか

• この系は今使う事のできない要素はそれ以降も決して使う事ができないことを示す 従って貪欲法で間違ってφにextentionでない要素を追加することはない

Page 23: IA16 2

Lemma 16.10(マトロイドはoptimal-substructure property

を持つ)• xを貪欲法によって重み付きマトロイド M = (S,I) から選択されたSの最初の要素とするxを含んだ極大の独立集合を見つける問題は, M’ = (S’,I’), S’ = { y ∈ S | {x,y} ∈ I} I’ = { B ⊆ S - {x} | B ∪ {x} ∈ I} M’ の重み関数はMと同じ(ただしS’に制限される) であるマトロイドM’の極大の独立集合を見つける問題に帰着される

• optimal-substructure propertyとは最適解が部分問題の最適解を含む事

Page 24: IA16 2

Lemma 16.10(マトロイドはoptimal-substructure property

を持つ)

• [証]xを含むMの任意の極大独立集合Aに対し,A’ = A - {x} は M’ の独立集合逆に任意のM’の独立集合A’にxを加えた集合 A = A’ ∪ {x} はMの独立集合どちらの場合もw(A) = w(A’) + w(x) なので,Mの中でxを含む最大の重さの集合はM’の中で最大の重さの集合の解になる.逆も同様

Page 25: IA16 2

Th 16.11(マトロイドによる貪欲法の正当性)

• 重み関数をwを持つ重み付きマトロイド M = (S,I) に対し GREEDY(M,w) は最適な部分集合を返す

Page 26: IA16 2

参考

• 室田一雄 : 線形独立性とマトロイド (Advanced Topic), http://www.misojiro.t.u-tokyo.ac.jp/~murota/lect-kisosuri/matroid041214.pdf

• 岩田覚 : マトロイド理論, http://www.ieice-hbkb.org/files/12/12gun_02hen_05.pdf