大規模ネットワークに対する 実用的クラスタ発見アルゴリズムの開発

Slides:



Advertisements
Similar presentations
組合せ最適化輪講 2.3 連結性 川原 純. 2.3 連結性 内容 – グラフ上の節点をすべてたどるアルゴリズム 計算機上でのグラフの表現 – 強連結成分を求めるアルゴリズム トポロジカル順序を求める方法も – k- 連結、 k- 辺連結について – 2- 連結グラフの耳分解について.
Advertisements

有限幾何学 第 2 回. 有限幾何学 第 2 回 1. 様々なグラフの例 2. 道と最短経路問題 1. 用語の説明 2. 最短経路問題 3. ダイキストラのアルゴリズム.
2015 年度 有限幾何学 期末試験 次の各問に答えよ.( (1), (2), (3), (4), (5), (7), (8), (10) は答えだけでよい) (1) 有向閉路が存在しない位数 4 のトーナメントを描け. (2) 内点の個数が 10 個の正則 2 分木の葉の個数を求めよ. (3) グラフ.
A Simple Constant Time Enumeration Algorithm for Free Trees 中野 眞一 宇野 毅明 群馬大学 情報学研究所 2003 年 9 月 19 日 アルゴリズム研究会.
模擬国内予選2013 Problem F テトラ姫のパズル 原案:須藤 解答:大友、須藤 解説:須藤.
区間グラフにおける区間表現からMPQ-treeを効率よく構成するアルゴリズム
2009/12/4 グラフ (2) 第10講: 平成21年12月4日 (金) 4限 E252教室 コンピュータアルゴリズム.
XHTML構文検証手法における スクリプト要素の静的解析アルゴリズム
久保幹雄 東京海洋大 宇野 毅明 国立情報学研究所 藤澤 克樹 中央大学 宮本 裕一郎 上智大学
極小集合被覆を列挙する 実用的高速アルゴリズム
ネットワーク理論講義補助資料 Text. 組合せ最適化とアルゴリズム 4.5 節 主・双対法 pp
データ構造と アルゴリズム 第十二回 知能情報学部 知能情報学科 新田直也.
ラベル付き区間グラフを列挙するBDDとその応用
On the Enumeration of Colored Trees
頻出集合列挙アルゴリズムに対する 実用的高速化技術について
An Algorithm for Enumerating Maximal Matchings of a Graph
Approximation of k-Set Cover by Semi-Local Optimization
時空間データからのオブジェクトベース知識発見
    有限幾何学        第12回.
列挙問題 列挙問題の定義 アルゴリズムの速度 バックトラッキング 分割法 逆探索.
リンク構造を考慮したベクトル空間法によるWebグラフ分割手法に関する研究
宇野 毅明 国立情報学研究所 2002年3月 東北大大学院 情報科学研究科ワークショップ
疑似頻出アイテム集合の 多項式遅延列挙アルゴリズム
第11講: 平成18年12月 8日 (金) 4限 E352教室 グラフ (1).
クリークマイニングとその応用 ~ 大規模データの活用 ~
最短路問題のための LMS(Levelwise Mesh Sparsification)
Selfish routing 川原 純.
大規模データに対する 効率的な列挙アルゴリズム
情報工学総合演習 D-I 近似アルゴリズム 埼玉大学 理工学研究科 山田 敏規、 橋口 博樹、 堀山 貴史
割当て問題 • 割当問題の記法・定式化 • 拡張 • 特殊ケース(マッチング) • 3種類のものを割当てる問題.
MPIを用いた並列処理 ~GAによるTSPの解法~
決定木とランダムフォレスト 和田 俊和.
定兼邦彦 今井浩 東京大学理学系研究科 情報科学専攻
グラフアルゴリズムの可視化 数理科学コース 福永研究室 高橋 優子 2018/12/29.
近年の列挙技術の進展 ー 計画立案と解法 ー 宇野 毅明 (情報学研究所) 有村 博紀 (北海道大学) 中野 眞一 (群馬大学)
確率的学習アルゴリズムを用いた有限状態オートマトンの抽出に関する研究
確率的学習アルゴリズムを用いた有限状態オートマトンの抽出に関する研究
プリムのアルゴリズム 重み付きグラフG=(V,E)の任意の点集合 U⊂Vに対して一方の端点がUの中にあり、他方の端点がV-Uの中にあるような枝の中で最小の重みを持つものをlとすれば、枝lを含むような最小木が存在する。
Internet広域分散協調サーチロボット の研究開発
トーリックイデアルの グレブナ基底を求める アルゴリズム – F4およびF5 –
Introduction to Soft Computing (第11回目)
早わかりアントコロニー最適化 (Ant Colony Optimization)
2018/9/10 ACL読み会 名古屋大学大学院 M2 佐藤・松崎研 土居裕典.
25. Randomized Algorithms
A Simple Algorithm for Generating Unordered Rooted Trees
類似度を用いた WWW のリンク構造の解析 谷 研究室    栗原 伸行.
連続領域におけるファジィ制約充足問題の 反復改善アルゴリズムによる解法 Solving by heuristic repair Algorithm of the Fuzzy Constraint Satisfaction Problems with Continuous Domains 北海道大学.
ファジィ制約充足問題への 連続領域の導入 Introducing continuous domains to
Webコミュニティ概念を用いた Webマイニングについての研究 A study on Web Mining Based on Web Communities 清水 洋志.
プログラミング 4 探索と計算量.
2016年度 有限幾何学 中間試験 問1 次のグラフを描け.(描けない場合は理由を述べよ) 各20点
ベイジアンネットワーク概説 Loopy Belief Propagation 茨城大学工学部 佐々木稔
SIFTとGraph Cutsを用いた 物体認識及びセグメンテーション
ナップサック問題 クマさん人形をめぐる熱いドラマの結末.
列挙問題 列挙問題の定義 アルゴリズムの速度 バックトラッキング 分割法 逆探索.
データ構造とアルゴリズム (第5回) 静岡大学工学部 安藤和敏
秘匿リストマッチングプロトコルとその応用
重み付き投票ゲームにおける 投票力指数の計算の高速化
構造的類似性を持つ半構造化文書における頻度分析
Max Cut and the Smallest Eigenvalue 論文紹介
クローン検出ツールを用いた ソフトウェアシステムの類似度調査
擬似クリークを列挙する 多項式時間遅延アルゴリズム
7.8 Kim-Vu Polynomial Concentration
2009/11/27 グラフ (1) 第9講: 平成21年11月27日 (金) 4限 E252教室 コンピュータアルゴリズム.
分枝カット法に基づいた線形符号の復号法に関する一考察
コストのついたグラフの探索 分枝限定法 A*アルゴリズム.
MPIを用いた 並列処理 情報論理工学研究室 06‐1‐037‐0246 杉所 拓也.
第4章 空間解析 2.ネットワーク分析 (2) 最大流問題
無向グラフが与えられたとき、最大位数の完全部分グラフを求める問題
プログラミング論 バイナリーサーチ 1.
Presentation transcript:

大規模ネットワークに対する 実用的クラスタ発見アルゴリズムの開発 宇野 毅明 国立情報学研究所 & 総合研究大学院大学(博士募集中) 2003年1月20日 アルゴリズム研究会

研究背景 ・ ある種の部分グラフを見つけ出す ・ データマイニング、ウェブマイニング、計算言語学など ・ 大量にほしい   ・ データマイニング、ウェブマイニング、計算言語学など ・ 大量にほしい   →  出てきたものをもう一度加工   →  統計的に処理(頻出度など)   →  何かの候補(フィルタリング) ・ 入力データは巨大   ・ ウェブネットワーク  ・ 辞書  ・ 文書データベース

対象: ウェブのネットワーク 部分グラフ: 2部クリーク リンク先: 共通の話題に関するページ リンク元: 共通の話題を持つコミュニティー 例1:ウェブコミュニティーの発見(村田) 対象: ウェブのネットワーク 部分グラフ: 2部クリーク リンク先: 共通の話題に関するページ リンク元: 共通の話題を持つコミュニティー

対象: 単語の組合せからなる 複合語の辞書 部分グラフ: 2部クリーク ある種似た意味を持つ単語の集合 例2:類義語群の発見(中渡瀬) 関東 関西 中国 北陸 対象: 単語の組合せからなる      複合語の辞書 部分グラフ: 2部クリーク ある種似た意味を持つ単語の集合 地方 地区 電力

対象: 論文とそのアブストラクト 部分グラフ: 情報量の多い頂点集合 (準クリーク) 語: 研究分野 論文: その分野の論文 例3:類似論文のグループ化(相澤) 論文A 論文B 論文C 論文D 対象: 論文とそのアブストラクト 部分グラフ:  情報量の多い頂点集合 (準クリーク) 語: 研究分野 論文: その分野の論文 語1 語2 語3

共通点 ・ 目的に合うように、ある種の目的関数を最適化する部分グラフを見つけている ・ 現在使っているシステムは、かなり遅い(なんとかしたい) ・ 厳密に最適解であることにはあまり意味がない ・ 大量に、高速に求めたい ・ モデルが変化することがありうる

今回扱った問題 u,v∈S, (u,v)∈E v∈S 入力: 大規模&疎なグラフ G=(V,E) 問題1: 高速かつ大量に極大(2部)クリークを求めよ 問題2: 高速かつ大量に評価値の大きい部分グラフ S を求めよ (最適でなくても良い:(準クリークと呼ぶ)) 枝重み wE ,頂点重み wV, 頂点数の関数 g(|S|) 評価値 f(S) = ΣwE (u,v)  + ΣwV (v) + g(|S|)         u,v∈S, (u,v)∈E v∈S

いろいろな評価値 クリークにどれだけ近いか: 2 × S 内部の枝数 / (頂点数) ×(頂点数-1) カット容量 : カット容量 :    頂点v の重み := -( v に接続する枝のコストの総和 )   枝 e の重み   := ( e のコストの2倍 ) S の重み   =  S から出て行く枝重みの総和 ( S 内の枝 (u,v) の枝重みと、 u,v のコストがキャンセル)

貪欲解法 問題1の極大クリークは、貪欲解法で求められる ・ S = φ ・ S の全ての頂点に隣接するV\S の頂点を、繰り返し加える 計算量:  O(|E| |S|) 単純に計算すると、枝数が100万、 |S|=30 程度だと、 10 秒程度 大量に計算するには時間がかかる

貪欲解法の改良 U(S) : S のすべての頂点に隣接する頂点の集合 ・ S = φ ・ U(S) の頂点を Sに繰り返し加え、 U(S) を更新 ・ U(S) = φとなったら S を出力 U(S∪{v}) = { u | ∀u∈U(S), (v,u)∈E } 計算量:  O( Δ|S| )    (Δ :最大次数 ) ・ Δ は高々100程度であるので、1/1000秒程度 ・ 2部クリークも、同じ方法でできる

局所探索 問題2の準クリークは、局所探索で求めると効率が良い N(S) : S の近傍の集合 N(S) = { X| ∃v, X=S∪v or X=S\v } ・ S = φ ・ f(S') < f(S) になる S'∈N(S) に対して S=S’ とし、繰り返す ・ S' が存在しなければ S を出力 1反復の計算量:  O(|V|Δ) 頂点数が 10万くらいだと、 1反復 1秒程度

最良の近傍を選ぶ ・ 補助のデータを用意する(改善値と呼ぶ) f+(S,v) = wV(v) + Σ wE((u,v)) u∈S ・ S' ∈ N(S) に対して f(S') - g(|S'|) = f(S) - g(|S|) + f+(S,v)  if S'=S∪ v f(S) - g(|S|) - f+(S,v) if S'= S\v ・ S に含まれる頂点で f+(S,v) を最小にする頂点 ・ S に含まれない頂点で f+(S,v) を最大にする頂点 のどちらかが N(S) 内で f() を最大化する ⇒  ヒープで保持すれば O(log |V|) 時間で見つかる

改善値の変化 ・ S=S∪w か S= S\w と更新したとする f+(S,v) = wV(v) + Σ wE((u,v)) u∈S ・ w及び w に隣接しない頂点は改善値が変化しない ・ w に隣接する頂点 v は f+(S,v) + wE ((w,v))   に変化する ⇒  更新にかかる時間は O( Δlog |V|) ・ 頂点数 10万なら log |V| ≦ 20、Δが100程度とすると         1反復の計算時間は1/500秒程度 ・ 2部グラフでも、同様にできる

・ 近傍の中から最良のものを短時間で見つけられるので、高速なタブーサーチが作れる 余談:タブーサーチへの応用 ・ 近傍の中から最良のものを短時間で見つけられるので、高速なタブーサーチが作れる

計算実験 ・ C で作ってみると、おおよそ予想通りの計算時間で動いた ・ マシン:パソコン PentiumIII 500MHz ・ OS&コンパイラ: Linux、gcc ・ 一般グラフでの問題を解いた(2部クリークではない) ・ 解の精度は不明  (そもそも最適解は求められない。  原点は、「巨大なグラフで、どのようなことができるか」   なので、気にしない )

入力グラフと実行結果 ・ 一般のグラフ ・ 各頂点の次数がほぼ同じになるランダムグラフ ・ f =(頂点数*平均次数)/2-(外に出る枝数) ・ 各頂点の次数がほぼ同じになるランダムグラフ ・ f =(頂点数*平均次数)/2-(外に出る枝数) ・ それぞれの頂点を初期解として実行(頂点数回実行)

入力グラフと実行結果 クリーク 頂点数 枝数 平均次数 総計算時間 総反復数 1万反復平均計算時間 極大 1000 30万 300 0.78 秒 6111 6.1 秒 1万 1000万 29 秒 46002 6.3 秒 準 10万 100 462 秒 239万 1.9 秒 100万 10 269 秒 799万 0.34 秒

まとめと今後の展開 ・ 高速に極大クリーク、準クリークを大量に見つけるアルゴリズムを開発し、実装した ・ 実際問題への適用  ・ web community の発見(村田)  ・ 類似語群の発見(中渡瀬)  ・ 大規模重み付きkカット問題(有限要素法計算の前処理)  ・ 論文のカテゴリー化(相澤)    などなど