卒業研究 木分解ヒューリスティック アルゴリズムの性能評価実験 ~アルゴリズムの改良の考察と そのプログラム作成~ 4年:山下 由展
目次 □ 木分解の定義について □ 木分解を生成する ヒューリスティックアルゴリズムの紹介 □ 卒業研究について
木分解の定義 木T Xp=V(G)の ある部分集合 X1 1 Xp p G=(V,E):連結な単純グラフ (T,X):T・・木、X={Xi⊆V(G)[i∈V(T)]} 木T Xp=V(G)の ある部分集合 X1 1 Xp p ※pはTの頂点の番号(ここでは1≦p≦|V(G)|)
木分解の定義 (1)∪i∈V(T)Xi=V(G) 頂点集合{1,2,3,4,5,6,7} 1 2 1,2,4 3 4 7 4,6,7 ⇒TとX={Xi⊆V(G):i∈V(T)}が次の条件(1)(2)(3)を満たす。 (1)∪i∈V(T)Xi=V(G) 頂点集合{1,2,3,4,5,6,7} 1 2 1,2,4 1 5 2 3 4 7 4,6,7 3,4,6,7 1,3,4 4 3 4,5,6 5 6 3,4,5 2,5 (T,X) G
木分解の定義 (2)∀v,w∈V(G)[(v,w)∈E(G)⇒∃i∈V(T)[v,w∈Xi]] 1 2 1,2 ,4 3 4 7 4 ,6, (T,X)がGの木分解 ⇒TとX={Xi⊆V(G):i∈V(T)}が次の条件(1)(2)(3)を満たす。 (2)∀v,w∈V(G)[(v,w)∈E(G)⇒∃i∈V(T)[v,w∈Xi]] 1 2 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 G (T,X)
木分解の定義 1 2 1,2,4 3 4 7 1,3,4 4,6,7 4,5,6 3,4,5 5 6 G (T,X) (T,X)がGの木分解 ⇒TとX={Xi⊆V(G):i∈V(T)}が次の条件(1)(2)(3)を満たす。 (3)∀i,j,k∈V(T)[jがTにおけるiからkへの道上にある ⇒Xi∩Xk⊆Xj 1 2 1 1,2,4 5 2 3 4 7 1,3,4 4,6,7 4 3 4,5,6 3,4,5 5 6 G (T,X)
木分解の定義 1,2,4 4,6,7 1,3,4 幅=2 4,5,6 3,4,5 幅=maxi∈I|Xi|-1(ここではtwD(G)で表す) 木幅=min{twD(G)} D 1,2,4 4,6,7 1,3,4 幅=2 4,5,6 3,4,5
グラフから木分解をつくってなにか役にたつの? グラフの木幅を定数で押さえることができる ⇒最大独立集合問題やハミルトンサイクル問題など のNP困難問題を多項式時間でとくことができる。
目次 □ 木分解の定義について □ 木分解を生成する ヒューリスティックアルゴリズムの紹介 □ 卒業研究について
s-t separating set t s 例) グラフG=(V,E)の頂点sから頂点tへのどんな道も 集合S(⊆V∖{s、t})の頂点を通る時、この集合S をs-t separating setという。 例) Minimum separating vertex set =mini{|s-t separating set|} (s,t)∉E(G) t S s
木分解を生成するヒューリスティックアルゴリズム(Aire M.C.A Koster等の論文に載っているもの) 操作 このアルゴリズムの概要 G0 Gi V(G)={v1,v2,…,vn} ≠クリーク G0' Gi' 0 v1、v2、…、vn 木分解 i j グラフG ・・ ・・・ |Xi|最大 すべての Gi(i∈V(T))がクリークになるまで |Xj|最大
木分解を生成するヒューリスティックアルゴリズム(Aire M.C.A Koster等の論文に載っているもの) G=(V、E) はグラフで、 (T,X)はGの木分解 である(ここで、 T=(I,F)はノードI と辺Fの木。 そして、X={Xi:i∈I} はVの部分集合族 G=(V、E) |i|=1 かつ X1=Vの 木分解 をつくる 木分解を つくる操作をする ∃i∈I: Gi≠クリーク 目標の 木分解 完成 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の 木分解の作成途中 egh
木分解を生成するヒューリスティックアルゴリズム(Aire M.C.A Koster等の論文に載っているもの) G=(V、E) はグラフで、 (T,X)はGの木分解 である(ここで、 T=(I,F)はノードI と辺Fの木。 そして、X={Xi:i∈I} はVの部分集合族 G=(V、E) |i|=1 かつ X1=Vの 木分解 をつくる 木分解を つくる操作をする ∃i∈I: Gi≠クリーク 目標の 木分解 完成 no yes
木分解を生成する ヒューリスティクアルゴリズム 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
目次 □ 木分解の定義について □ 木分解を生成する ヒューリスティックアルゴリズムの紹介 □ 卒業研究について
卒業研究内容 辺の数 最大 Gi [Vi/S] はグラフ i ・・・ Xi はその 頂点集合 ・・・ ・・・ ・・・ Xk、k∈N(i) Minimum Separating Vertex set (ここではSとする) 辺の数は すべて同じとは 限らない。 Minimum separating Vertex setで誘導される Giの誘導部分グラフ
卒業研究内容 i i0 無駄にクリークに ならないように 努める Xi0 Xi Gi [Vi/S] Xi1 Xi2 Xim ・・・ ・・・ E[Gi[minimum separating vertex set]] 最大 E[Gi[Vi/S]]最小 |V[Gi[Vi/S]]|同じ
実演Java
関連データ 論文のものの 方が幅が小さい 卒研のものの 方が幅が小さい 同じ 標本数 頂点数 50 10 0 2 48 50 4 9 50 37 1 100 0 0 1 1 OS CPU PentiumⅢ プロセッサ WindowsXP 使用した計算機 PentiumⅣ プロセッサ Redhat
Fin