1 / 26

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

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

Download Presentation

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

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. C11: 大量データ処理のための領域効率の良いアルゴリズム 定兼 邦彦 小野 廣隆 山下 雅史 (九大) 2007年5月15日

  2. 研究の目的 • 大量データを効率的に処理するためのアルゴリズムとデータ構造の開発 • アプローチ • データおよびデータ構造の圧縮 • 局所情報のみを用いた探索 • 確率アルゴリズム

  3. これまでの成果 • グラフ探索アルゴリズム (論文4) • ランダムウォーク • Right-Hand-on-the-Wall walk • Forest search • 無線ネットワークでのオンラインbroadcast • 簡潔データ構造 (論文11) • 透過的データ圧縮法 • 順序木の超簡潔データ構造 • 圧縮接尾辞配列・接尾辞木 • 実用的rank/selectデータ構造 • 分散アルゴリズムでの故障検知器 • センサーネットワークでの省電力データ収集

  4. 1 3 2 1 1 2 2 3 3 2 3 1 問題 • 入力: nノード連結グラフ G • 出力: Gの枝ラベル • 各枝は2つのラベルを持つ (両端に1つずつ) • 各ノード vの周りのラベルは [1,deg(v)] の異なる整数 • “Right-Hand-on-the-Wall” walk が存在

  5. Right-Hand-on-the-Wall Walk • エージェントがあるノードの1ラベル枝から出発 • 点vに枝 i から着いたら,枝 i+1 から出る(無記憶) • エージェントは全点を訪れる 1 3 2 1 1 2 2 3 3 2 3 1

  6. 結果 • どんなグラフにも Right-Hand-on-the-Wall Walk が存在 • walkの長さは高々 10n • 参考 • グラフに木を定義してその上を探索するならwalkの長さは 4nだが,エージェントは3つの状態が必要

  7. Forest Search • 仮定 • グラフ全体は記憶できない • ノードを訪れるとそのノードの隣接点がわかる • グラフには情報を書けない • ノードは異なる ID を持っている • 解きたい問題 • 点 uを出発し vに着くまでのstep数を減らす • 全点を訪れるまでのstep数を減らす • 全点を少ないメモリで重複無く列挙 • P2Pに有効(?)

  8. Forest Search • 逆探索の拡張 • グラフに森を定義する • 1つの木の中は逆探索 • それぞれの木を1点に縮約したグラフでDFS • 必要メモリは木の数に比例 • ステップ数 O(|V|+|E|・h) (h: 木の中で最大の深さ) • スケールフリーネットワークの探索に適している

  9. 傾き: -γ スケールフリーネットワーク • 次数の分布がベキ則に従う : P(d)~d –γ • 生成モデルのひとつ:BAモデル [Barabasi and Albert 99 ] • Growth: 単位ステップあたり1点とそこから出る辺をm本追加 • Preferential attachment: 追加する辺の一端は既存の頂点へ その次数に比例した確率で決定する 頂点数 次数d

  10. 仮想的な森 ネットワークの構造の 部分グラフ(spanning forest)が仮想的な森になる forest search は 仮想的な木の構造に 従って,ネットワークを 探索する

  11. 各頂点 uにはちょうどひとつの親 π(u) が存在し,deg(π(u)) > deg(u) or ID(π(u)) < ID(u) (π(u)≠u) deg(π(u)) = deg(u) (π(u) =u) 仮想的な木を作る • 親の選び方 : 単純ルール • Nk(u) : 頂点uからの距離が高々k(>=0)である頂点の集合 • N1(u)から最も次数の高い頂点を頂点uの親π(u)に選ぶ • 2つ以上あればその中で最もIDの小さい頂点 局所情報だけで 任意の頂点の親と子を一意に決められるため,木構造を記憶しておく必要がない

  12. 仮想的な木を作る (追加ルール) • 親の選び方 : 追加ルール • 目的:仮想木を統合して木の数を減らしたい • 単純ルールで仮想木の根になる頂点uに対して,π(u)を選び直す • N2(u)で最も次数の高い頂点をπ(u)に選ぶ (2つ以上あればその中でIDが最小の頂点) π(u) u u π(u) 追加ルール 単純ルール

  13. 追加ルールによって作られるグラフの性質 • 定理:追加ルールによって定義されるグラフFは次の性質を満たす 1.単純ルールにおける木の根uが異なる木に属する頂点と隣接していたなら,追加ルールにおいてuは木の根ではない 2.Fには長さ2以上のサイクルは存在しない u π(u)

  14. 計算機実験 • 探索手法 • forest search • β-random walk (比較対象) • ネットワーク • 頂点数 n, 辺数 2n • ネットワーク生成モデル • ERモデル  : ランダムグラフ [ Erdos and Renyi ] • WSモデル : スモールワールドネットワーク[ Watts and Strogatz ] • BAモデル  : スケールフリーネットワーク • 全 n(n-1)/2 個の起点・目標頂点対に対して探索を実行し平均を取る • それぞれ20個のネットワークに対する平均を取る

  15. 実験結果 : ステップ数 (n = 500) • random walk に対する性能向上の割合 • 最も高いモデル :BA • 最も低いモデル :WS ※β-random walk はβ=0.5の結果

  16. 実験結果 : 仮想的な森に関する量(単純ルール) 木の数 最大の木のサイズ BA • BAモデル : 最大の木のサイズが大きく,木の数は少ない • WSモデル : 最大の木のサイズが小さく,木の数は多い WS ER ER BA WS

  17. 実験結果 : 仮想的な森に関する量(追加ルール) 木の数 最大の木のサイズ • BAモデル :木の数は劇的に減少90%以上の頂点が最大の木に含まれる 

  18. ・BAモデル ・n=~500 実験結果 : cover time β-random walk • ネットワークの全頂点を訪れるときのステップ数 記憶有りβ-random walk forest search(単純ルール) forest search (追加ルール)

  19. 簡潔データ構造(Succinct Data Structures) • 簡潔データ構造=データの簡潔表現+簡潔索引 • 簡潔データ構造の例 • 木,グラフ • 文字列 • 順列,関数

  20. 簡潔表現 • サイズが情報理論的下限に(ほぼ)一致する表現 • 入力が L通りのとき,情報理論的下限は log L bits • 例1: 集合 S {1,2,...,n} のサイズの下限 • log 2n = n bits • 例2: n頂点の順序木 • 例3: n文字の文字列 • n log  bits (: アルファベットサイズ)

  21. 簡潔索引 • 決められた操作を実現するためのデータ構造 • サイズ: o(log L) bits • 従来の表現と(ほぼ)同じ操作時間 • 計算モデル: word RAM • ポインタサイズ w bits (2w 個のメモリセル) • w ビットの四則演算が定数時間 • 連続する w ビットのメモリの読み書きが定数時間 • 前述の例では w = log n = log log L

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

  23. 新しい順序木の表現 • BPとDFUDSでの基本演算は全て定数時間 • サイズは木のある種のエントロピーに圧縮 • 最悪 2n+o(n) ビット 定義: 木次数エントロピー • ni: 次数 iのノード数 例: 全2分木 (全内部ノードが丁度2つの子を持つ) • BP, DFUDS: 2nビット • 本研究: nビット

  24. サイズの下限 • 次数 iのノード数が niである順序木の数は • より,このエントロピーは木の次数を固定した場合の情報理論的下限と一致 [Rote 96]

  25. 透過的データ圧縮法 • 任意箇所を瞬時に復元 (log nビットを定数時間) • word RAMモデルでは最適  ⇒データは圧縮されていないとみなせる • 圧縮率は従来通り (全ての k 0 に対して同時に成立)

  26. 今年度の予定 • Forest SearchとUSTCONNアルゴリズムの関係 • V. Trifonov. An O(log n log log n) space algorithm for undirected st-connectivity, STOC 05. • 簡潔データ構造の応用 • 頻出アイテム集合 • (Web)グラフの符号化

More Related