ラベル付き区間グラフを列挙する bdd とその応用
DESCRIPTION
ラベル付き区間グラフを列挙する BDD とその応用. ○斎藤 寿樹( ERATO ・ BDD/ZDD 普及協会 ) 湊 真一(北海道大学, ERATO ・ BDD/ZDD 普及協会 会長 兼務). 夏の LA シンポジウム 2010 年 7 月 20 日. 区間グラフ. 区間表現を持つグラフクラス 区間の集合 各区間は頂点と対応 2つの区間に重なりがある ⇔ 対応する頂点間に辺がある. 多くのアルゴリズムが存在. 提案されたアルゴリズムが実装上高速か?. 計算機実験. 偏りのないデータを入力したい. 入力. 出力. 一様ランダムにデータを生成. - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: ラベル付き区間グラフを列挙する BDD とその応用](https://reader035.vdocuments.site/reader035/viewer/2022062410/56815a5d550346895dc7916f/html5/thumbnails/1.jpg)
ラベル付き区間グラフを列挙する BDD とその応用
○ 斎藤 寿樹( ERATO ・ BDD/ZDD 普及協会) 湊 真一(北海道大学, ERATO ・ BDD/ZDD 普及協会 会長 兼務)
夏の LA シンポジウム2010 年 7 月 20 日
![Page 2: ラベル付き区間グラフを列挙する BDD とその応用](https://reader035.vdocuments.site/reader035/viewer/2022062410/56815a5d550346895dc7916f/html5/thumbnails/2.jpg)
区間グラフ•区間表現を持つグラフクラス
▫区間の集合▫各区間は頂点と対応▫2つの区間に重なりがある
⇔ 対応する頂点間に辺がある
多くのアルゴリズムが存在
![Page 3: ラベル付き区間グラフを列挙する BDD とその応用](https://reader035.vdocuments.site/reader035/viewer/2022062410/56815a5d550346895dc7916f/html5/thumbnails/3.jpg)
提案されたアルゴリズムが実装上高速か?
計算機実験
出力
偏りのないデータを入力したい
入力
区間グラフ
一様ランダムにデータを生成
![Page 4: ラベル付き区間グラフを列挙する BDD とその応用](https://reader035.vdocuments.site/reader035/viewer/2022062410/56815a5d550346895dc7916f/html5/thumbnails/4.jpg)
単純な区間グラフのランダム生成法• 区間を n 個ランダムに生成
▫区間 [0, 1] におさまるような,区間を n 個ランダムに生成
本発表: BDD を使って,連結なラベル付き 区間グラフを一様ランダムに生成
区間グラフは一様に出力されていない密なグラフが生成されやすい
0 1
![Page 5: ラベル付き区間グラフを列挙する BDD とその応用](https://reader035.vdocuments.site/reader035/viewer/2022062410/56815a5d550346895dc7916f/html5/thumbnails/5.jpg)
BDD (Binary Decision Diagram)•論理関数をグラフで表現
x1 x2 x3 F
0 0 0 1
0 0 1 0
0 1 0 1
0 1 1 0
1 0 0 1
1 0 1 0
1 1 0 1
1 1 1 1
x1
x2
x3
x2
x3 x3 x3
1 0 1 0 1 0 1 1
x1
x3
x2
10
BDDを用いると・列挙・数え上げ・ランダム生成・ etc.
![Page 6: ラベル付き区間グラフを列挙する BDD とその応用](https://reader035.vdocuments.site/reader035/viewer/2022062410/56815a5d550346895dc7916f/html5/thumbnails/6.jpg)
n頂点のすべての区間グラフを表現するBDD•論理変数 ei, j を用意 (1≦i<j≦n)
•論理関数 F
1 3
2
5
4
区間グラフ
F(1,1,1,0,0,1,0,1,1,1) = 1
1 3
2
5
4
区間グラフではない
F(1,1,0,0,0,1,0,1,1,1) = 0
0
1, jie
辺 (i, j) を使う辺 (i, j) を使わない
0
1),,,( ,13,12,1 nneeeF 区間グラフ
区間グラフではない
![Page 7: ラベル付き区間グラフを列挙する BDD とその応用](https://reader035.vdocuments.site/reader035/viewer/2022062410/56815a5d550346895dc7916f/html5/thumbnails/7.jpg)
n頂点のすべての区間グラフを表現するBDD•論理関数 F の BDD
▫例: n=5 e1,2
e1,3
e1,4
e4,5
・・・
10
0 1
1010
![Page 8: ラベル付き区間グラフを列挙する BDD とその応用](https://reader035.vdocuments.site/reader035/viewer/2022062410/56815a5d550346895dc7916f/html5/thumbnails/8.jpg)
BDD を用いた区間グラフのランダム生成• ランダム生成アルゴリズム (Knuth, the art of computer programming, vol. 4.1)
1. 解の数を数える BDD をボトムアップに探索
2. 変数に {0, 1} を割り当てる トップダウンに割り当て “ 偏った”コインフリップ
解の数の割合
541
238 303
167136136102
9869696769676735
0 1
n 頂点の区間グラフをランダム生成できる
![Page 9: ラベル付き区間グラフを列挙する BDD とその応用](https://reader035.vdocuments.site/reader035/viewer/2022062410/56815a5d550346895dc7916f/html5/thumbnails/9.jpg)
構築した BDD の応用•n 頂点の区間グラフのランダム生成
▫辺の数や次数を制限したものもランダム生成できる
∧
5 頂点のすべての区間グラフを表現するBDD
0 1
辺の数が 6 以下のすべてのグラフを表現するBDD
01
頂点数が 5 で,辺の数が 6 以下のすべての区間グラフを表現するBDD
0 1
![Page 10: ラベル付き区間グラフを列挙する BDD とその応用](https://reader035.vdocuments.site/reader035/viewer/2022062410/56815a5d550346895dc7916f/html5/thumbnails/10.jpg)
構築した BDD の応用•n 頂点の区間グラフのランダム生成
▫辺の数や次数を制限したものもランダム生成できる•区間サンドイッチ問題 (NP- 完全問題 ) が BDD サ
イズの線形時間で解ける
![Page 11: ラベル付き区間グラフを列挙する BDD とその応用](https://reader035.vdocuments.site/reader035/viewer/2022062410/56815a5d550346895dc7916f/html5/thumbnails/11.jpg)
区間グラフの BDD の構築手法• 区間グラフを列挙
▫効率のよい列挙アルゴリズム [ 清見 , 来嶋 , 宇野 , 2006]▫ グラフの数は指数個
1 3
2
5
4
出力したグラフ
e1,2
10
e1,3
e1,4
e1,5
e4,5
・・・
∨
構築中の BDD
0 1
時間がかかる!
![Page 12: ラベル付き区間グラフを列挙する BDD とその応用](https://reader035.vdocuments.site/reader035/viewer/2022062410/56815a5d550346895dc7916f/html5/thumbnails/12.jpg)
区間グラフの BDD の構築手法• 区間グラフを列挙
▫効率のよい列挙アルゴリズム [ 清見 , 来嶋 , 宇野 , 2006]
• 論理関数 Fを論理式で表現▫論理変数のみを用いて,区間グラフの認識を行う
区間グラフの認識アルゴリズムは複雑最も単純なアルゴリズム: LexBFS を用いたアルゴリズム
(Corneil, et. al., SODA, ’98)
簡単にはできない
![Page 13: ラベル付き区間グラフを列挙する BDD とその応用](https://reader035.vdocuments.site/reader035/viewer/2022062410/56815a5d550346895dc7916f/html5/thumbnails/13.jpg)
計算機実験•区間グラフを列挙して, BDD を構築•計算機環境
▫CPU Quad-Core 3.1GHz
▫Memory 528GB
▫プログラミング言語 C
▫BDD パッケージ BemⅡ
頂点数 区間グラフの数
BDD のノード数
計算時間 (sec)
3 4 4 0.08
4 35 18 0.11
5 541 114 0.60
6 13062 1259 9.56
7 444767 17194 50
8 19912657 246630 3158
9 11121041222 3938791 269971
約 3 日強
約 2800倍
![Page 14: ラベル付き区間グラフを列挙する BDD とその応用](https://reader035.vdocuments.site/reader035/viewer/2022062410/56815a5d550346895dc7916f/html5/thumbnails/14.jpg)
頂点数 7 辺の数 m以下( x軸)・区間グラフの数・ BDD のサイズ
計算機実験
![Page 15: ラベル付き区間グラフを列挙する BDD とその応用](https://reader035.vdocuments.site/reader035/viewer/2022062410/56815a5d550346895dc7916f/html5/thumbnails/15.jpg)
計算機実験
BDD サイズの変化 (n=8)
ノード数:650712
( 約 12 Mbyte)
![Page 16: ラベル付き区間グラフを列挙する BDD とその応用](https://reader035.vdocuments.site/reader035/viewer/2022062410/56815a5d550346895dc7916f/html5/thumbnails/16.jpg)
今後の課題•区間グラフを表現する BDD について
▫区間グラフを列挙せずに構築可能か? 区間グラフの認識を論理変数のみで行えるか? n-1 頂点の BDD を使って, n 頂点の BDD が作れない
か? 区間を論理変数で表現する?
▫非連結な区間グラフの BDD•BDD を構築しないで、区間グラフのランダム生成
▫解の数を数える手法の考案•ラベルなしグラフのランダム生成
▫どのように BDD の表現するか?
![Page 17: ラベル付き区間グラフを列挙する BDD とその応用](https://reader035.vdocuments.site/reader035/viewer/2022062410/56815a5d550346895dc7916f/html5/thumbnails/17.jpg)
辺の数m
辺の数 m以下の区間グラフ数
BDDのノード数
辺の数 mの区間グラフ数
BDDのノード数
6 15967 1718 15967 1718
7 48202 5015 32235 4614
8 98497 8959 50295 7536
9 169302 12393 70805 9257
10 246372 15733 77070 10832
11 314643 17840 68271 10684
12 365848 18764 51205 8859
13 403018 18991 37170 6807
14 425908 18753 22890 4945
15 437283 18302 11375 3192
16 442155 17726 4872 1807
17 444045 17434 1890 899
18 444640 17316 595 431
19 444745 17225 105 141
20 444766 17201 21 40
21 444767 17194 1 21
頂点数 7辺の数を制限したときのグラフの数と BDD のサイズ
![Page 18: ラベル付き区間グラフを列挙する BDD とその応用](https://reader035.vdocuments.site/reader035/viewer/2022062410/56815a5d550346895dc7916f/html5/thumbnails/18.jpg)
計算機実験
次数 d すべての頂点の次数が d以下のすべての区間グラフの数
BDDのノード数
6 444767 17194
5 334740 16757
4 151410 11892
3 40320 5494
2 2520 1350
頂点数 7 次数を制限・グラフの数・ BDD のサイズ
![Page 19: ラベル付き区間グラフを列挙する BDD とその応用](https://reader035.vdocuments.site/reader035/viewer/2022062410/56815a5d550346895dc7916f/html5/thumbnails/19.jpg)