卒業研究 Treedecompositionを生成するヒューリスティックアルゴリズムの幅に関する評価実験 4年:山下 由展
目次 Tree decompositionの定義について Tree decompositionを生成するヒューリスティックアルゴリズムの紹介 卒業研究について
Tree decompositionの定義 グラフG=(V,E)に対して、木TとV(G)のある部分 集合族X={Xi|i∈V(T)}の対(T,X)を考える。 木T Xp=V(G)の ある部分集合 X1 1 Xp p ※pはTの頂点の番号(ここでは1≦p≦|V(G)|)
Tree decompositionの定義 グラフG=(V,E)に対して、木TとV(G)のある部分 集合族X={Xi|i∈V(T)}の対(T,X)を考える。 V(G)={a,b,c,d,e,f}だとすると 1 (T,X) f (T,X) 1 3 2 b,c,d,e a,b a,b 3 e,f d 4 c 2 5 c,d (T,X)は2nm通りある e,f n=|V(G)| mは木の頂点数 d,e,f
Tree decompositionの定義 グラフGに対して、木TとV(G)のある部分集合族 X={Xi|i∈V(T)}の対(T,X)が以下の3つの条件を満 たすとき、(T,X)をGのTree decompositionという。 (1)∪i∈V(T)Xi=V(G) 頂点集合{1,2,3,4,5,6,7} G). 1 2 1,2,4 (T,X) 1 5 2 3 4 7 1,3,4 4,6,7 4 3 4,5,6 3,4,5 5 6
Tree decompositionの定義 グラフGに対して、木TとV(G)のある部分集合族 X={Xi|i∈V(T)}の対(T,X)が以下の3つの条件を満 たすとき、(T,X)をGのTree decompositionという。 (2)∀v,w∈V(G)[(v,w)∈E(G)⇒∃i∈V(T)[v,w∈Xi]] G). 1 2 (T,X) 1,2 ,4 1 5 2 3 4 7 4 ,6, 7 1,3 ,4 4 3 4,5,6 3,4,5 5 6
Tree decompositionの定義 グラフGに対して、木TとV(G)のある部分集合族 X={Xi|i∈V(T)}の対(T,X)が以下の3つの条件を満 たすとき、(T,X)をGのTree decompositionという。 (3)∀i,j,k∈V(T)[jがTにおけるiからkへの道上にある ⇒Xi∩Xk⊆Xj G). 1 2 1 1,2,4 (T,X) 5 2 3 4 7 1,3,4 4,6,7 4 3 4,5,6 3,4,5 5 6
Tree decompositionの定義 幅=maxi∈I|Xi|-1 木幅=グラフGからつくられるTree decompositionがもつ 幅のなかで一番小さい値 1,2,4 4,6,7 1,3,4 幅=2 4,5,6 3,4,5
目次 Tree decompositionの定義について Tree decompositionを生成するヒューリスティックアルゴリズムの紹介 卒業研究について
s-t separating set t s 例) グラフG=(V,E)の頂点sから頂点tへのどんな道も 集合S(⊆V∖{s、t})の頂点を通る時、この集合S をs-t separating setという。 例) t S s
Minimum separating vertex setの定義 合わせでst-separating setをすべて求めた時、 その中で位数が最小のものを minimum separating vertex setと呼ぶ。 t s t t s
Tree decompositionを生成するヒューリスティックアルゴリズム(Aire M.C.A Koster等の論文に載っているもの) G=(V、E) はグラフで、 (T,X)はGのTree Decomposition である(ここで、 T=(I,F)はノードI と辺Fの木。 そして、X={Xi:i∈I} はVの部分集合族 V(G)={v1、v2、…、vn} G=(V、E) (T,X) v1、v2、…、vn |i|=1 かつ X1=Vの Tree decomposition をつくる 頂点を分割して幅の小さい Tree decompositionを つくる Tree decompositionを つくる操作をする ∃i∈I: Gi≠クリーク 目標の Tree decomposition 完成 no yes
準備 ここで、Gi=(Vi、Ei)を次で定める。 Vi=Xi、Ei=E(G[Xi])∪E(∪k∈N(i)C(Xi∩Xk)) d i b f に隣接する頂点の集合 ここで、Gi=(Vi、Ei)を次で定める。 Vi=Xi、Ei=E(G[Xi])∪E(∪k∈N(i)C(Xi∩Xk)) Cはクリーク d i b f k G3 G). j h d a e c g 1 2 3 5 abd acd cde def ・・・ e c ↑ 4 Gの Tree decompositionの作成途中 egh
Tree decompositionを生成するヒューリスティックアルゴリズム(Aire M.C.A Koster等の論文に載っているもの) G=(V、E) はグラフで、 (T,X)はGのTree Decomposition である(ここで、 T=(I,F)はノードI と辺Fの木。 そして、X={Xi:i∈I} はVの部分集合族 G=(V、E) |i|=1 かつ X1=Vの Tree decomposition をつくる Tree decompositionを つくる操作をする ∃i∈I: Gi≠クリーク 目標の Tree decomposition 完成 no yes
Tree decompositionを生成する ヒューリスティクアルゴリズム Minimum separating vertex set S はグラフ Xi1 S Yi1 i0 i Xi0 Xi はその 頂点集合 Xi0 = S Gi Gi[Vi/S] Yim-1 Xim-1 i1 i2 im Xi1 Xi2 Xim Yi2 ・・・ ・・・ S ・・・ Xi2 Yim Xk、k∈N(i) S Xim Gi[Vi/S]はm個の 連結成分に分割された とする。 S
グラフからTree decompositionをつくってなにか役にたつの? グラフのTreewidthを定数で押さえることができる場 合、最大独立集合問題やハミルトンサイクル問題など のNP困難問題を多項式時間でとくことができる。
実演Java
目次 Tree decompositionの定義について Tree decompositionを生成するヒューリスティックアルゴリズムの紹介 卒業研究について
卒業研究内容 Minimum separating vertex set S はグラフ i Xi はその 頂点集合 Gi[Vi/S] Gi 何ペアかの頂点ペアを ランダムに選び、その頂点 ペアのst separating vertex setの 中で位数最小のもの はグラフ i Xi はその 頂点集合 Gi[Vi/S] Gi ・・・ ・・・ ・・・ Xk、k∈N(i) Sは何ペアかの頂点ペアの 中で位数最小の minimum st separating vertex set 頂点ペアを何ペアか選択する時 Giの頂点数の1割、2割、3,4,5, 6,7、8、9,10割の場合の10通り試している。 それぞれについて、できた Tree decompositionの 幅を評価する
現在の状況 この過程を3回繰り返す 200個の Tree decompositionの 幅の平均値を それぞれ求める 頂点数10、20 のグラフそれぞれ200個 Tree decompositionを作る際、 Minimum separating vertex setを用いた アルゴリズム, 頂点数の1割をランダムに選び、その頂点ペアの st separating setの位数の最小のものを 採用したアルゴリズム、 頂点数の2割の・・・、頂点数の3割の・・・、・・・ 、頂点数の10割の・・・。
現在の状況 幅 1割ペア 10割ペア 4.6 4.5 4.4 頂点数10のグラフ 200個をそれぞれの方法で Tree decompositionに変えて、 その幅の平均を求める操作を それぞれ3回ずつ行った時の 幅の平均値の分布 幅 4.5 minimum sepaの幅 4.4 1割ペア 10割ペア
現在の状況 幅 1割ペア 10割ペア 12 11.9 11.8 11.7 頂点数20のグラフ 200個をそれぞれの方法で Tree decompositionに変えて、 その幅の平均を求める操作を それぞれ3回ずつ行った時の 幅の平均値の分布 幅 11.9 11.8 minimum sepaの幅 11.7 1割ペア 10割ペア
これからの課題 グラフの頂点数と生成数を増やしていったり、ランダム に生成したグラフだけではなく、ある特定の種類のグ ラフにたいしても同様のことをやってみるなど、いろい ろな場合を試してみる。
Fin