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