超グラフ中に含まれる 非巡回部分超グラフの 効率良い列挙
◯和佐 州洋1, 有村 博紀1,宇野 毅明2,平田 耕一3
1. 北海道大学 大学院情報科学研究科 2. 国立情報学研究所
3. 九州工業大学大学院 情報工学研究院
超大規模超グラフの存在
•
関係データベースのスキーマ•
購買バスケットデータ•
文献データの共著関係興味深い部分構造が欲しい
背景
問題: 非巡回な部分超グラフの列挙
与えられた超グラフHに含まれる,
連結かつ非巡回な部分超グラフを列挙せよ.
e
5e
1e
6e
3e
4e
21
3 6
4 5
10
7 8
9 2
入力超グラフH Hの連結かつ非巡回な
部分超グラフすべて
列挙
超グラフ
超グラフ H = (V, E)
•
頂点集合V = {1, ... , n}•
超辺集合E = {e1, ... ,em}超グラフのサイズ ||H||:
• Eの全超辺の頂点数の和
部分超グラフS
• Eの部分集合である超辺集
合S Eをいう.• Sが誘導する超部分グラフ
を表す.入力超グラフ H = (V, E)
e
5e
1e
6e
3e
4e
21
3 6
4 5
10
7 8
9
2
超グラフ
超グラフ H = (V, E)
•
頂点集合V = {1, ... , n}•
超辺集合E = {e1, ... ,em}超グラフのサイズ ||H||:
• Eの全超辺の頂点数の和
部分超グラフS
• Eの部分集合である超辺集
合S Eをいう.• Sが誘導する超部分グラフ
を表す.入力超グラフ H = (V, E)
e
5e
1e
6e
3e
4e
21
3 6
4 5
10
7 8
9
S 2
超グラフの連結性
超辺eとfが隣接
•
eとfが空でない交わりe f を持つ.超辺eとfが連結
•
eからfへ長さ0以上の隣接 した超辺列が存在する.超辺集合Sが連結
•
すべての2つの超辺が互い に連結していること.e
5e
1e
6e
3e
4e
21
3 6
4 5
10
7 8
9 2
入力超グラフ
H = (V, E)
超グラフの巡回性
ベルジュ閉路
•
系列π=(e1, v1, ..., ek, vk)•
e1, ..., ekは互いに異なる超辺•
v1, ..., vkは互いに異なる頂点•
各i = 1, ..., kについて,頂点viはeiとei+1に共通に含まれる.
ただし,ek+1 = e1とする.
超辺集合Sがベルジュ非巡回
• Sが長さ2以上のベルジュ閉路
を含まないこと.e
5e
1e
6e
3e
4e
21
3 6
4 5
10
7 8
9 2
入力超グラフ
H = (V, E)
ベルジュ閉路の例
e
5e
1e
21
3 6
5
8
9 2
e
5e
610 8
9 2
長さ3の閉路
長さ2の閉路
定義よりこれも閉路!!
(注意: 超グラフの他の巡回のクラスでは
e
5e
1e
6e
3e
4e
21
3 6
4 5
10
7 8
9 2
入力超グラフ
H = (V, E)
超グラフの非巡回性の階層
様々な非巡回超グラフのクラスが定義されている.
一般から特殊へ.
•
α-非巡回(一番広いクラス)•
β-非巡回•
γ-非巡回•
ベルジュ非巡回(一番狭いクラス)問題: 非巡回な部分超グラフの列挙
e
5e
1e
6e
3e
4e
21
3 6
4 5
10
7 8
9 2
超グラフH Hの連結かつ非巡回な 部分超グラフすべて 列挙
与えられた超グラフH=(V, E)含まれる,
連結かつ非巡回な部分超グラフ
(超辺の集合)Sを列挙せよ.
列挙アルゴリズムの計算量
12
Computational Complexity of Data Mining Algorithms
12
! Output-polynomial (OUT-POLY)
" Total time = poly(N, M)
! polynomial-time enumeration, or amortized polynomial-delay
(POLY-ENUM)
" Amotized delay is poly(Input), or
" Total time = M·poly(N)
! polynomial-delay (POLY-DELAY)
" Maximum of delay is poly(Input)
Complexity of enumeration algorithms
" Idea: Measure the computation time per solution
+ polynomial-space (POLY-SPACE)
Output size M
Delay D
Input
Input size N
Total Time T Algorithm
Outputs
Time
研究目的
連結かつベルジュ非巡回な部分超グラフ の列挙問題を考察する.
多項式遅延・多項式領域の効率のよい
列挙アルゴリズムを与える.
主結果
与えられた入力超グラフに対して,その連結かつベル ジュ非巡回なすべての部分超グラフを列挙する多項式 遅延・多項式領域アルゴリズムを与えた.
詳細
•
逆探索手法 [AF93]•
ベルジュ最大還元系列(本稿で導入)•
家系木上のバックトラックアルゴリズム.[AF93] Avis, D. and Fukuda, K.: Reverse search for enumeration. DAM, 65:21‒46, 1993.
関連研究
1つの極大ベルジュ非巡回部分超グラフの多項式時間アルゴリズム
•
Lovász, L: Matroid matching and some applications. J. Comb. Theory, Series B 28(2), 208-236, 1980.極大α-非巡回部分超グラフの多項式遅延列挙アルゴリズム
•
Daigo, T., and Hirata, K.: On generating all maximal acyclicsubhypergraphs with polynomial delay. In Proc. SOFSEM 2009, LNCS 5404, 181-192, 2009.
グラフ中のk-部分木のO(k)遅延列挙アルゴリズム
•
Ferreira, R. , Grossi, R. , and Rizzi, R.: Output-sensitive listing ofbounded-size trees in undirected graphs. In Proc. ESAʼ11, LNCS 6942, 275‒286, 2011.
木中のk-部分木のO(1)遅延列挙アルゴリズム
•
Wasa, K., Uno, T., Arimura, H.: Constant time enumeration of bounded- size subtrees in trees and its application. In Proc. COCOONʼ12, LNCS 7434, 2012.関連研究
1つの極大ベルジュ非巡回部分超グラフの多項式時間アルゴリズム
•
Lovász, L: Matroid matching and some applications. J. Comb. Theory, Series B 28(2), 208-236, 1980.極大α-非巡回部分超グラフの多項式遅延列挙アルゴリズム
•
Daigo, T., and Hirata, K.: On generating all maximal acyclicsubhypergraphs with polynomial delay. In Proc. SOFSEM 2009, LNCS 5404, 181-192, 2009.
グラフ中のk-部分木のO(k)遅延列挙アルゴリズム
•
Ferreira, R. , Grossi, R. , and Rizzi, R.: Output-sensitive listing ofbounded-size trees in undirected graphs. In Proc. ESAʼ11, LNCS 6942, 275‒286, 2011.
木中のk-部分木のO(1)遅延列挙アルゴリズム
•
Wasa, K., Uno, T., Arimura, H.: Constant time enumeration of bounded- size subtrees in trees and its application. In Proc. COCOONʼ12, LNCS 7434, 2012.本研究の貢献:
ベルジュ非巡回部分超グラフの 多項式遅延・多項式領域列挙
アルゴリズムを初めて与えた.
アルゴリズム
復習:逆探索法
{ 1, 2, 3, 4 }
の部分集合を列挙例:
・親は最大の要素を除いた部分集合
・子は部分集合中の最大要素より 大きい要素を加えた部分集合
・根は空集合!
{1} {2}
{3} {4}
{1, 2} {1, 3} {1, 4} {2, 3} {2, 4} {3, 4}
{1, 2, 3, 4} {1, 2, 3}
{1, 2, 4}
{2, 3, 4} {1, 3, 4}
[AF93]: Avis, Fukuda, Reverse Search for Enumeration, Discrete Applied Mathematics, 1993.
逆探索法[AF93]は,オブジェクトを列挙するための手法である.
オブジェクトとオブジェクトの間に親を定義する.
親を持たないオブジェクトを根とする.
根から家系木を探索し,解を列挙する.
アルゴリズムの概要
家系木上を探索することで,非巡回部分超グラフを列挙する.
入力超グラフ H = (V, E)
e
5e
1e
6e
3e
4e
21
3 6
4 5
10
7 8
9
2
定義:超辺集合Sの葉
超辺eで,Sからそれを取り除いて得られる 部分集合S-{e}と,e自身の共有する頂点が ただひとつであるような超辺
葉 葉
e
6葉
e
3e
4e
21
3 6
4 5
10
7 8
9
ベルジュ還元系列
与えられた部分超グラフSから出発し,葉を 1つずつ取り除いて空集合を得る.
定理2:Sが連結かつ非巡回
Sは空集合で終わるベルジュ 還元系列を持つ.
S
空集合
除去
除去 除去
除去 除去
定理2の証明のアイディア
補題6:Sが連結かつ非巡回ならば,
葉eが少なくとも1つ存在する.
葉eが存在する
連結かつ非巡回 連結かつ巡回
葉eが存在しない
e
6e
4e
21
3 6
4 5
10 8
9 e
5e
1e
21
3 5 6
8
9
2
ベルジュ還元系列
基本アイディア:空集合からスタートし,ベルジュ 還元系列を逆向きにたどって,超辺を追加し,連結 かつ非巡回な超辺集合Sを列挙する.
問題点:与えられたSに対して,ベルジュ 還元系列が複数存在する!!
S
空集合
除去
除去 除去
除去 除去
解決方法
Sの最大還元系列:途中の各超辺集合で,最大の
葉を取り除くように制限して得られた系列.性質:Sに対して,最大還元系列は一意.
列挙では,最大還元系列をたどればよい.
S
空集合
除去
除去 除去
除去 除去
家系木
入力超グラフH中の連結かつ非巡回 な超辺集合すべてを頂点として含む 根付き木F(H)
根は空集合.
逆向き辺:超辺集合 S = R-{e} が 超辺集合Rの親であるのは,Rの 超辺eがRの最大の葉であるとき
定理3:家系木F(H)は,連結
かつ非巡回である(定理2よ
り).
列挙アルゴリズム
家系木上をバックトラックし,
すべての連結かつ非巡回な超辺集合 を列挙する.
根から出発する.
現在の親(サイズ k の超辺集合)
Sに,新しい超辺eを追加して,
子(サイズk+1の超辺集合)
R = S
{e} を生成する.生成された子は,連結かつ非巡回で あることが保証されている
(定理1).
主結果
定理4:
入力超グラフH=(V,E)に含まれる,すべての連結か つベルジュ非巡回な部分超グラフSを,O(||E ||)領 域を用いて,解1つあたり O(||E ||+m|| S N( S )||) 時間で出力する.
ベルジュ非巡回部分超グラフの多項式遅延・多項 式領域の列挙アルゴリズムが得られた!!
nは頂点数で,mは超辺数,||E|| はHのサイズ.S N(S)は
Sとそれに接する全超辺集合で,||S N(S)|| = O(||E||).
高速化:改良版アルゴリズム
定理5:
入力超グラフH=(V,E)に含まれる,すべての連結か つベルジュ非巡回な部分超グラフSを,O(||E ||)前 処理時間とO(||E||)領域を用いて,解1つあたり
O((|f| + |N(f)|)log m) = O((n + m)log m)時間
で出力する.ここに,N( S )は S のすべての超辺の 隣接超辺全体の集合を表す.
nは頂点数,mは超辺数,||E|| はHのサイズ.
fは繰り返しで,Sに新しく追加された超辺
まとめ
連結かつ非巡回な部分超グラフの列挙問題を考察した
•
超グラフには様々な非巡回性の定義があるが,ここでは,特に ベルジュ非巡回性を考察した.多項式遅延・多項式領域の効率のよい列挙アルゴリズム
を与えた.
今後の課題
・α-, β-, γ-非巡回超グラフのクラスへの拡張.
・異なる部分超グラフの定義への拡張(超辺から頂点を除去).
・最適な遅延時間のアルゴリズム
・実装と実験
ご清聴ありがとうございました.
Alternative Output法の簡単な説明
出力する順序
0 -> 2- > 3 -> 4 -> 5 -> 1 -> 7 ->
8 -> 9 -> 11 -> 10 -> 12 -> 6 -> ...
出力の間隔が定数になる.
家系木上で,奇数深さでは行きがけ順,偶数深さでは帰りがけ順で,
解を出力する.
1
2
3 4 5
6 7 8
9
10 11
12 13
0
14
極大なベルジュ非巡回1つ求める
O(|V| + |E|)時間
非巡回部分超グラフ列挙問題
与えられた超グラフH=(V, E)含まれる,
連結かつ非巡回な部分超グラフ
(超辺の集合)Sを列挙せよ.
Hの連結かつ非巡回な 部分超グラフすべて 入力超グラフH
e
5e
1e
6e
3e
4e
21
3 6
4 5
10
7 8
9
2
関連研究
1つの極大ベルジュ非巡回部分超グラフの多項式時間アルゴリズム
•
Lovász, L: J. Comb. Theory, Series B 28(2), 208-236, 1980.1つの極大α非巡回部分超グラフの多項式時間アルゴリズム
•
Hirata, K., Kuwabara, M., and Harao, M.: On finding acyclicsubhypergraphs. Fundamentals of Computation Theory, 491―503, 2005.
グラフ中のk-部分木のO(k)遅延列挙アルゴリズム
•
Ferreira, R. , Grossi, R. , and Rizzi, R.: Output-sensitive listing ofbounded-size trees in undirected graphs. In Proc. ESAʼ11, LNCS 6942, 275‒286, 2011.
木中のk-部分木のO(1)遅延列挙アルゴリズム
•
Wasa, K., Uno, T., Arimura, H.: Constant time enumeration of bounded- size subtrees in trees and its application. In Proc. COCOONʼ12, LNCS 7434, 2012.ベルジュ非巡回部分超グラフ
の多項式遅延・多項式領域列
挙アルゴリズムはまだ知られ
ていない!
連結かつ非巡回な部分超グラフ
非巡回 = ベルジュ閉路を持たない
e5 e1
e6
e3 e4
e2
v1
v6 v3
v2
v4
v5
v10
v7
v8
v9
入力超グラフ
家系木を探索する
親の定義に基づいて,家系木を構築する.
→ 家系木の根から深さ優先探索して,列挙する.
MaxBorder(S)の決め方
葉と境界頂点を順序付辞書で管理する.
•
挿入と削除にO(log(m))時間新しく追加する超辺だけに着目して,それに 隣接する超辺との交点数計算する.
2
8 6 4
9
1 7
5
時間計算量の考察
葉と境界頂点を順序付辞書で管理する.
•
挿入と削除にO(τ(m))時間係るものを仮定.新たに超辺fを追加した時,境界超辺集合B(S {f})と 最大の葉を再計算する.
•
B(S {f})の再計算は,fに隣接するものだけでよい.-
fに隣接する超辺をN(f)とする.•
最大の葉はfになる.超辺―頂点行列
e
1e
ne
2e
1効率良いMaxBorderの管理
境界超辺と最大の葉でMaxBorderを管理する.
•
Sの境界超辺集合B(S)を順序付辞書で管理する.B(S)
小 大
最大の葉はdとeの間
d c
…MaxBorderに含まれる超辺
e f g h i
効率良いMaxBorderの管理
境界超辺と最大の葉でMaxBorderを管理する.
•
Sの境界超辺集合B(S)を順序付辞書で管理する.B(S)
小 大
最大の葉はeとgの間
B(S {f}) c d e f h i
fをSに追加
大 小
…MaxBorderに含まれる超辺
e f g h d
c i
g
時間計算量の考察
新たに超辺fを追加した時,境界超辺集合B(S {f})と 最大の葉を再計算する.
e3
e1
e6
e5
e4 e2 v1
v6
v3
v2
v4 v5
v10
v7 v8
v9
1
1
0
0
0
e3
e1
e6
e5
e4 e2 v1
v6
v3
v2
v4 v5
v10
v7 v8
v9
2 1
1 1
e3
e1
e6
e5
e2 v1
v6
v3
v2
v4 v5
v10
v7 v8
v9
2
2
0 0
e2を追加
e3を追加
S S {e2}
S {e3}
交点数
時間計算量の考察
新たに超辺fを追加した時,境界超辺集合B(S {f})と 最大の葉を再計算する.
e3
e1
e6
e5
e4 e2 v1
v6
v3
v2
v4 v5
v10
v7 v8
v9
1
1
0
0
0
e3
e1
e6
e5
e4 e2 v1
v6
v3
v2
v4 v5
v10
v7 v8
v9
2 1
1 1
e3
e1
e6
e5
e2 v1
v6
v3
v2
v4 v5
v10
v7 v8
v9
2
2
0 0
e2を追加
e3を追加
時間計算量の考察
新たに超辺fを追加した時,境界超辺集合B(S {f})と 最大の葉を再計算する.
•
B(S {f})の再計算は,fに隣接するものだけでよい.-
fに含まれる各頂点xについて,xを含む超辺をみて高 点数を数える.今までの交点数に,新しく計算した高 点数を足し合わせる.•
時間計算量はO((|f|+|N(f)|)τ(|E|))時間-
fに含まれている頂点それぞれ1度,隣接する超辺を 高々2度見ればよい.-
τ(|E|)は順序付辞書の挿入と削除にかかる時間単純に更新する
更新する際,一からMaxBorderを更新する とO(||E||)時間かかる.
•
Sと隣接する超辺をすべて見るため.e
8を追加
よく観察すると,e8
に隣接する超辺のみ変化している.
e
9e
1e
2e
7e
4e
5e
3e
8e
10e
6e
11e
12e
9e
1e
2e
7e
4e
5e
3e
8e
10e
6e
11e
12高速化:問題点
更新する際,一からMaxBorderを更新する とO(||E||)時間かかる.
•
Sと隣接する超辺をすべて見るため.e
8を追加 e
9e
15e
2e
7e
4e
5e
3e
8e
10e
6e
11e
12e
1e
14e
9e
15e
2e
7e
4e
5e
3e
8e
10e
6e
11e
12e
1e
14高速化:解決方法
境界超辺の集合B(S)を順序付辞書で管理
•
B(S)に追加・削除するのは,Sに追加した超辺fの隣接超辺交点数の更新は追加する超辺fの隣接超辺g N(f) 時間計算量はO((|f|+|N(f)|)τ(m))時間
順序付辞書の更新に係る計算量
e
9e
15e
2e
7e
4e
5e
3e
8e
10e
6e
11e
12e
1e
14 B(S)e
1e
7e
8e
9 e10 e14第88回 人工知能基本問題研究会, 沖縄県石垣市, 2013/01/24, 25
高速化
境界超辺の集合B(S)を順序付辞書で管理
•
B(S)に追加・削除するのは,Sに追加した超辺fの隣接超辺交点数の更新は追加する超辺fの隣接超辺g 時間計算量はO((|f|+|N(f)|)τ(m))時間
48
e
9e
15e
2e
7e
4e
5e
3e
8e
10e
6e
11e
12e
1e
14e
1e
7e
8e
9 e10 e14e
9 e14e
1e
7 e12e
8をSに追加
-
gの交点数=今までのgの交点数 + fとgの交点数順序付辞書の更新に係る計算量
B(S)
B(S {e8})