260 likes | 369 Views
C11: 大量データ処理のための領域効率の良いアルゴリズム. 定兼 邦彦 小野 廣隆 山下 雅史 ( 九大 ) 2007 年 5 月 15 日. 研究の目的. 大量データを効率的に処理するための アルゴリズムとデータ構造の開発 アプローチ データおよびデータ構造の圧縮 局所情報のみを用いた探索 確率アルゴリズム. これまでの成果. グラフ探索アルゴリズム ( 論文 4) ランダムウォーク Right-Hand-on-the-Wall walk Forest search 無線ネットワークでのオンライン broadcast
E N D
C11: 大量データ処理のための領域効率の良いアルゴリズム 定兼 邦彦 小野 廣隆 山下 雅史 (九大) 2007年5月15日
研究の目的 • 大量データを効率的に処理するためのアルゴリズムとデータ構造の開発 • アプローチ • データおよびデータ構造の圧縮 • 局所情報のみを用いた探索 • 確率アルゴリズム
これまでの成果 • グラフ探索アルゴリズム (論文4) • ランダムウォーク • Right-Hand-on-the-Wall walk • Forest search • 無線ネットワークでのオンラインbroadcast • 簡潔データ構造 (論文11) • 透過的データ圧縮法 • 順序木の超簡潔データ構造 • 圧縮接尾辞配列・接尾辞木 • 実用的rank/selectデータ構造 • 分散アルゴリズムでの故障検知器 • センサーネットワークでの省電力データ収集
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 が存在
Right-Hand-on-the-Wall Walk • エージェントがあるノードの1ラベル枝から出発 • 点vに枝 i から着いたら,枝 i+1 から出る(無記憶) • エージェントは全点を訪れる 1 3 2 1 1 2 2 3 3 2 3 1
結果 • どんなグラフにも Right-Hand-on-the-Wall Walk が存在 • walkの長さは高々 10n • 参考 • グラフに木を定義してその上を探索するならwalkの長さは 4nだが,エージェントは3つの状態が必要
Forest Search • 仮定 • グラフ全体は記憶できない • ノードを訪れるとそのノードの隣接点がわかる • グラフには情報を書けない • ノードは異なる ID を持っている • 解きたい問題 • 点 uを出発し vに着くまでのstep数を減らす • 全点を訪れるまでのstep数を減らす • 全点を少ないメモリで重複無く列挙 • P2Pに有効(?)
Forest Search • 逆探索の拡張 • グラフに森を定義する • 1つの木の中は逆探索 • それぞれの木を1点に縮約したグラフでDFS • 必要メモリは木の数に比例 • ステップ数 O(|V|+|E|・h) (h: 木の中で最大の深さ) • スケールフリーネットワークの探索に適している
傾き: -γ スケールフリーネットワーク • 次数の分布がベキ則に従う : P(d)~d –γ • 生成モデルのひとつ:BAモデル [Barabasi and Albert 99 ] • Growth: 単位ステップあたり1点とそこから出る辺をm本追加 • Preferential attachment: 追加する辺の一端は既存の頂点へ その次数に比例した確率で決定する 頂点数 次数d
仮想的な森 ネットワークの構造の 部分グラフ(spanning forest)が仮想的な森になる forest search は 仮想的な木の構造に 従って,ネットワークを 探索する
各頂点 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の小さい頂点 局所情報だけで 任意の頂点の親と子を一意に決められるため,木構造を記憶しておく必要がない
仮想的な木を作る (追加ルール) • 親の選び方 : 追加ルール • 目的:仮想木を統合して木の数を減らしたい • 単純ルールで仮想木の根になる頂点uに対して,π(u)を選び直す • N2(u)で最も次数の高い頂点をπ(u)に選ぶ (2つ以上あればその中でIDが最小の頂点) π(u) u u π(u) 追加ルール 単純ルール
追加ルールによって作られるグラフの性質 • 定理:追加ルールによって定義されるグラフFは次の性質を満たす 1.単純ルールにおける木の根uが異なる木に属する頂点と隣接していたなら,追加ルールにおいてuは木の根ではない 2.Fには長さ2以上のサイクルは存在しない u π(u)
計算機実験 • 探索手法 • forest search • β-random walk (比較対象) • ネットワーク • 頂点数 n, 辺数 2n • ネットワーク生成モデル • ERモデル : ランダムグラフ [ Erdos and Renyi ] • WSモデル : スモールワールドネットワーク[ Watts and Strogatz ] • BAモデル : スケールフリーネットワーク • 全 n(n-1)/2 個の起点・目標頂点対に対して探索を実行し平均を取る • それぞれ20個のネットワークに対する平均を取る
実験結果 : ステップ数 (n = 500) • random walk に対する性能向上の割合 • 最も高いモデル :BA • 最も低いモデル :WS ※β-random walk はβ=0.5の結果
実験結果 : 仮想的な森に関する量(単純ルール) 木の数 最大の木のサイズ BA • BAモデル : 最大の木のサイズが大きく,木の数は少ない • WSモデル : 最大の木のサイズが小さく,木の数は多い WS ER ER BA WS
実験結果 : 仮想的な森に関する量(追加ルール) 木の数 最大の木のサイズ • BAモデル :木の数は劇的に減少90%以上の頂点が最大の木に含まれる
・BAモデル ・n=~500 実験結果 : cover time β-random walk • ネットワークの全頂点を訪れるときのステップ数 記憶有りβ-random walk forest search(単純ルール) forest search (追加ルール)
簡潔データ構造(Succinct Data Structures) • 簡潔データ構造=データの簡潔表現+簡潔索引 • 簡潔データ構造の例 • 木,グラフ • 文字列 • 順列,関数
簡潔表現 • サイズが情報理論的下限に(ほぼ)一致する表現 • 入力が L通りのとき,情報理論的下限は log L bits • 例1: 集合 S {1,2,...,n} のサイズの下限 • log 2n = n bits • 例2: n頂点の順序木 • 例3: n文字の文字列 • n log bits (: アルファベットサイズ)
簡潔索引 • 決められた操作を実現するためのデータ構造 • サイズ: o(log L) bits • 従来の表現と(ほぼ)同じ操作時間 • 計算モデル: word RAM • ポインタサイズ w bits (2w 個のメモリセル) • w ビットの四則演算が定数時間 • 連続する w ビットのメモリの読み書きが定数時間 • 前述の例では w = log n = log log L
簡潔データ構造の例 超簡潔 (ultra-succinct) データ構造 • サイズがデータのある種のエントロピーと一致 • 問い合わせ計算量が変わらない
新しい順序木の表現 • BPとDFUDSでの基本演算は全て定数時間 • サイズは木のある種のエントロピーに圧縮 • 最悪 2n+o(n) ビット 定義: 木次数エントロピー • ni: 次数 iのノード数 例: 全2分木 (全内部ノードが丁度2つの子を持つ) • BP, DFUDS: 2nビット • 本研究: nビット
サイズの下限 • 次数 iのノード数が niである順序木の数は • より,このエントロピーは木の次数を固定した場合の情報理論的下限と一致 [Rote 96]
透過的データ圧縮法 • 任意箇所を瞬時に復元 (log nビットを定数時間) • word RAMモデルでは最適 ⇒データは圧縮されていないとみなせる • 圧縮率は従来通り (全ての k 0 に対して同時に成立)
今年度の予定 • Forest SearchとUSTCONNアルゴリズムの関係 • V. Trifonov. An O(log n log log n) space algorithm for undirected st-connectivity, STOC 05. • 簡潔データ構造の応用 • 頻出アイテム集合 • (Web)グラフの符号化