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