26
C11: 大大大大大大大大大大大大大大大大大 大大大大大大大 大大 大大 大大 大大 大大 大大 ( 大大 ) 2007 大 5 大 15 大

C11: 大量データ処理のための領域効率の良いアルゴリズム

Embed Size (px)

DESCRIPTION

C11: 大量データ処理のための領域効率の良いアルゴリズム. 定兼 邦彦 小野 廣隆 山下 雅史 ( 九大 ) 2007 年 5 月 15 日. 研究の目的. 大量データを効率的に処理するための アルゴリズムとデータ構造の開発 アプローチ データおよびデータ構造の圧縮 局所情報のみを用いた探索 確率アルゴリズム. これまでの成果. グラフ探索アルゴリズム ( 論文 4) ランダムウォーク Right-Hand-on-the-Wall walk Forest search 無線ネットワークでのオンライン broadcast - PowerPoint PPT Presentation

Citation preview

Page 1: C11:  大量データ処理のための領域効率の良いアルゴリズム

C11: 大量データ処理のための領域効率の良いアルゴリズム

定兼 邦彦 小野 廣隆 山下 雅史 ( 九大 )

2007 年 5 月 15 日

Page 2: C11:  大量データ処理のための領域効率の良いアルゴリズム

2

研究の目的• 大量データを効率的に処理するための

アルゴリズムとデータ構造の開発• アプローチ

– データおよびデータ構造の圧縮– 局所情報のみを用いた探索– 確率アルゴリズム

Page 3: C11:  大量データ処理のための領域効率の良いアルゴリズム

3

これまでの成果• グラフ探索アルゴリズム ( 論文 4)

– ランダムウォーク– Right-Hand-on-the-Wall walk

– Forest search

– 無線ネットワークでのオンライン broadcast

• 簡潔データ構造 ( 論文 11)– 透過的データ圧縮法– 順序木の超簡潔データ構造– 圧縮接尾辞配列・接尾辞木– 実用的 rank/select データ構造

• 分散アルゴリズムでの故障検知器• センサーネットワークでの省電力データ収集

Page 4: C11:  大量データ処理のための領域効率の良いアルゴリズム

4

問題

• 入力 : n ノード連結グラフ G

• 出力 : G の枝ラベル1. 各枝は 2 つのラベルを持つ ( 両端に 1 つずつ )

2. 各ノード v の周りのラベルは [1,deg(v)] の異なる整数

3. “Right-Hand-on-the-Wall” walk が存在

1

2 31

32 12

3

1

23

Page 5: C11:  大量データ処理のための領域効率の良いアルゴリズム

5

Right-Hand-on-the-Wall Walk

• エージェントがあるノードの 1 ラベル枝から出発

• 点 v に枝 i から着いたら,枝 i+1 から出る ( 無記憶 )

• エージェントは全点を訪れる 2 31

32 11 2

3

1

23

Page 6: C11:  大量データ処理のための領域効率の良いアルゴリズム

6

結果• どんなグラフにも Right-Hand-on-the-Wall

Walk が存在• walk の長さは高々 10n

• 参考– グラフに木を定義してその上を探索するなら

walk の長さは 4n だが,エージェントは 3 つの状態が必要

Page 7: C11:  大量データ処理のための領域効率の良いアルゴリズム

7

Forest Search

• 仮定– グラフ全体は記憶できない– ノードを訪れるとそのノードの隣接点がわかる– グラフには情報を書けない– ノードは異なる ID を持っている

• 解きたい問題– 点 u を出発し v に着くまでの step 数を減らす– 全点を訪れるまでの step 数を減らす– 全点を少ないメモリで重複無く列挙– P2P に有効 (?)

Page 8: C11:  大量データ処理のための領域効率の良いアルゴリズム

8

Forest Search

• 逆探索の拡張– グラフに森を定義する– 1 つの木の中は逆探索– それぞれの木を 1 点に縮約したグラフで DFS– 必要メモリは木の数に比例– ステップ数 O(|V|+|E| ・ h) ( h: 木の中で最大の深さ)

• スケールフリーネットワークの探索に適している

Page 9: C11:  大量データ処理のための領域効率の良いアルゴリズム

9

スケールフリーネットワーク• 次数の分布がベキ則に従う :  P(d) ~ d –γ

• 生成モデルのひとつ: BA モデル [Barabasi and Albert 99 ] – Growth: 単位ステップあたり1点とそこから出る辺を m 本追加– Preferential attachment:

追加する辺の一端は既存の頂点へ その次数に比例した確率で決定する                

次数 d

傾き: - γ頂点数

Page 10: C11:  大量データ処理のための領域効率の良いアルゴリズム

10

仮想的な森

ネットワークの構造の部分グラフ( spanning

forest )が仮想的な森になる

forest search  は仮想的な木の構造に従って,ネットワークを探索する

Page 11: C11:  大量データ処理のための領域効率の良いアルゴリズム

11

仮想的な木を作る• 親の選び方  :  単純ルール

– Nk(u) : 頂点 u からの距離が高々 k(>=0) である頂点の集合– N 1 (u) から最も次数の高い頂点を頂点 u の親 π(u) に選ぶ– 2つ以上あればその中で最も ID の小さい頂点

   局所情報だけで 任意の頂点の親と子を一意に

決められるため,木構造を記憶しておく必要がない

各頂点 u にはちょうどひとつの親 π(u) が存在し,

deg(π(u)) > deg(u) or ID(π(u)) < ID(u) (π(u)≠u)

deg(π(u)) = deg(u) (π(u) =u)

Page 12: C11:  大量データ処理のための領域効率の良いアルゴリズム

12

仮想的な木を作る (追加ルール)• 親の選び方  :  追加ルール

– 目的:仮想木を統合して木の数を減らしたい– 単純ルールで仮想木の根になる頂点 u に対して, π(u)

を選び直す– N 2 (u) で最も次数の高い頂点を π(u) に選ぶ ( 2つ以上

あればその中で ID が最小の頂点 )

   単純ルール 追加ルール

u uπ(u)

π(u)

Page 13: C11:  大量データ処理のための領域効率の良いアルゴリズム

13

追加ルールによって作られるグラフの性質

• 定理:追加ルールによって定義されるグラフ F は次の性質を満たす1.単純ルールにおける木の根 u が異なる木に属する頂

点と隣接していたなら,追加ルールにおいて u は木の根ではない

2. F には長さ2以上のサイクルは存在しないu

π(u)

Page 14: C11:  大量データ処理のための領域効率の良いアルゴリズム

14

計算機実験• 探索手法

– forest search– β-random walk   ( 比較対象 )

• ネットワーク– 頂点数 n , 辺数 2n– ネットワーク生成モデル

• ER モデル  : ランダムグラフ [ Erdos and Renyi ]

• WS モデル : スモールワールドネットワーク              [ Watts and Strogatz ]

• BA モデル  : スケールフリーネットワーク– 全 n(n-1)/2 個の起点・目標頂点対に対して探索を実行し平均を

取る– それぞれ 20 個のネットワークに対する平均を取る

Page 15: C11:  大量データ処理のための領域効率の良いアルゴリズム

15

実験結果 : ステップ数 ( n = 500 )

• random walk に対する性能向上の割合– 最も高いモデル :   BA – 最も低いモデル :   WS

探索手法 ER WS BA

平均

forest search 627 962 516

β-random walk 902 1380 1031

最大

forest search 4025 5121 2259

β-random walk 4886 3947 3173※β-random walk は β=0.5 の結果

Page 16: C11:  大量データ処理のための領域効率の良いアルゴリズム

16

実験結果 : 仮想的な森に関する量(単純ルール)

• BA モデル : 最大の木のサイズが大きく,木の数は少ない• WS モデル : 最大の木のサイズが小さく,木の数は多い

木の数 最大の木のサイズ

ER

WS

ER

WS

BA

BA

Page 17: C11:  大量データ処理のための領域効率の良いアルゴリズム

17

実験結果 : 仮想的な森に関する量(追加ルール)

• BA モデル :木の数は劇的に減少90 %以上の頂点が最大の木に含まれる 

木の数 最大の木のサイズ

Page 18: C11:  大量データ処理のための領域効率の良いアルゴリズム

18

実験結果 : cover time• ネットワークの全頂点を訪れるときのステップ

・ BA モデル・ n=~500

β-random walk

記憶有り β-random walk

forest search (単純ルール)

forest search ( 追加ルール )

Page 19: C11:  大量データ処理のための領域効率の良いアルゴリズム

20

簡潔データ構造 (Succinct Data Structures)

• 簡潔データ構造=データの簡潔表現+簡潔索引• 簡潔データ構造の例

– 木,グラフ– 文字列– 順列,関数

Page 20: C11:  大量データ処理のための領域効率の良いアルゴリズム

21

簡潔表現• サイズが情報理論的下限に (ほぼ )一致する表現• 入力が L 通りのとき,情報理論的下限は log L

bits• 例 1: 集合 S {1,2,...,n} のサイズの下限

– log 2n = n bits

• 例 2: n 頂点の順序木

• 例 3: n 文字の文字列– n log bits (: アルファベットサイズ )

bits log21

12

12

1log nn

n

n

n

Page 21: C11:  大量データ処理のための領域効率の良いアルゴリズム

22

簡潔索引

• 決められた操作を実現するためのデータ構造• サイズ : o(log L) bits

• 従来の表現と ( ほぼ ) 同じ操作時間• 計算モデル : word RAM

– ポインタサイズ w bits (2w 個のメモリセル )– w ビットの四則演算が定数時間– 連続する w ビットのメモリの読み書きが定数時

間– 前述の例では w = log n = log log L

Page 22: C11:  大量データ処理のための領域効率の良いアルゴリズム

23

簡潔データ構造の例文字列 S

(n 文字 )

順序集合S {1,2,...,n}

順序木(n ノー

ド )

情報理論的下限 n log n 2no(n)

簡潔データ構造 (n+o(n)) log [GV00]

n+o(n)[J89][M96]

2n+o(n)[MR97]超簡潔データ

構造nHk(S)+o(n log )

[GGV03]

nH0(S)+o(n)

[RRR02]

nH*+o(n)

[ 本研究 ]

超簡潔 (ultra-succinct) データ構造• サイズがデータのある種のエントロピーと一致• 問い合わせ計算量が変わらない

Page 23: C11:  大量データ処理のための領域効率の良いアルゴリズム

24

新しい順序木の表現• BP と DFUDS での基本演算は全て定数時間• サイズは木のある種のエントロピーに圧縮

– 最悪 2n+o(n) ビット

定義 : 木次数エントロピー– ni: 次数 i のノード数

例 : 全 2 分木 ( 全内部ノードが丁度 2 つの子を持つ )– BP, DFUDS: 2n ビット– 本研究 : n ビット

i i

i

n

n

n

nTH log*

Page 24: C11:  大量データ処理のための領域効率の良いアルゴリズム

25

サイズの下限

• 次数 i のノード数が ni である順序木の数は

• より,このエントロピーは木の次数を固定した場合の情報理論的下限と一致

110

1

nnnn

n

nL

TnHL *log

[Rote 96]

Page 25: C11:  大量データ処理のための領域効率の良いアルゴリズム

26

透過的データ圧縮法

• 任意箇所を瞬時に復元 (log n ビットを定数時間 )– word RAM モデルでは最適 ⇒データは圧縮されていないとみなせる

• 圧縮率は従来通り bits

log

logloglog)1(O

n

nknnH k

( 全ての k 0 に対して同時に成立 )

Page 26: C11:  大量データ処理のための領域効率の良いアルゴリズム

27

今年度の予定• Forest Search と USTCONN アルゴリズムの

関係– V. Trifonov. An O(log n log log n) space algorithm f

or undirected st-connectivity, STOC 05.

• 簡潔データ構造の応用– 頻出アイテム集合– (Web) グラフの符号化