Se ha denunciado esta presentación.
Utilizamos tu perfil de LinkedIn y tus datos de actividad para personalizar los anuncios y mostrarte publicidad más relevante. Puedes cambiar tus preferencias de publicidad en cualquier momento.

2章グラフ理論スピード入門

21.615 visualizaciones

Publicado el

社会ネットワーク分析勉強会 その2
『オープンソースで学ぶ社会ネットワーク分析―ソーシャルWebの「つながり」を見つけ出す―』
2012/07/05開催

Publicado en: Tecnología
  • Sé el primero en comentar

2章グラフ理論スピード入門

  1. 1. オープンソースで学ぶ社会ネットワーク分析 2章グラフ理論スピード入門社会ネットワーク分析勉強会 @teruu (てる) 2012/07/05
  2. 2. 目次• 1章 イントロダクション• 2章 グラフ理論スピード入門• 3章 中心性、権力、ボトルネック• 4章 クリーク、クラスタ、コンポーネント• 5章 2モードネットワーク• 6章 バイラルへ!―情報の拡散• 7章 現実のグラフデータ
  3. 3. グラフ理論スピード入門• グラフとは何か• グラフのトラバーサルと距離• グラフの距離• なぜこれが重要なのか• 6次の隔たりは神話に過ぎない• スモールワールドネットワークグラフ理論とPythonの話題が混在→ 初心者には難しい
  4. 4. 自己紹介• お仕事 – 元DBエンジニア – 現在、データマイニング専業のベンチャー所属 – 派遣先で、ソーシャルネットワークの分析に携わ る• 大学院で修士課程を修了(2011年3月卒) – 修論テーマ:小売業の購買履歴分析 – (グラフ理論の視点からとらえ直すと)二部グラフ のクラスタリング問題
  5. 5. グラフ理論スピード入門• グラフとは何か• グラフのトラバーサルと距離• グラフの距離• なぜこれが重要なのか• 6次の隔たりは神話に過ぎない• スモールワールドネットワーク
  6. 6. グラフとは何か ダイアド(2者関係、diad) ノード(頂点、node) エッジ(辺、関係、edge) E1 N1 好き N2 (動詞) アリス ボブ (名詞) (名詞)6
  7. 7. グラフとは何か グラフの種類 – 向き:無向⇔有向 – 重み:重みなし⇔重みつき – モード:1モードグラフ(一部グラフ、unipartite) 2モードグラフ(二部グラフ、bipartite) →5章 マルチモードグラフ(?部グラフ、multipartite) →6章7
  8. 8. グラフの向き:無向⇔有向(A)無向・重みなし・一部グラフ (B)有向・重みなし・一部グラフ
  9. 9. グラフの重み:重みなし⇔重みつき (A)有向・重みなし・一部グラフ (B)有向・重みつき・一部グラフ
  10. 10. グラフのモード: 一部グラフ⇔二部グラフ(A)無向・重みなし・一部グラフ (B)無向・重みなし・二部グラフ
  11. 11. 隣接行列、エッジリスト、隣接リスト グラフ2:無向、重み無し、二部グラフグラフ1:有向、重み付き、(一部)グラフ (bipartite) (unipartite) グラフ隣接行列11
  12. 12. 隣接行列、エッジリスト、隣接リスト from to value AB2 AD5 AE5 BA2 BD1 ABCDE CD3 A02055 from edges CE4 A (B 2),(D 5),(E 5) B20010 DA5 B (A 2),(D 1) C00034 DB1 C (D 3),(E 4) D51300 DC3 D (A 5),(B 1),(C 3) E50400 EA5 E (A 5),(C 4) EC4(A)隣接行列 (B)エッジリスト (C)隣接リストデメリット:メモリの無駄 メリット:メモリ効率的 メリット:メモリ効率的 デメリット:高速サーチ不可 高速サーチ可能 デメリット:パース処理面倒
  13. 13. グラフとは何か• 隣接行列• エッジリストと隣接リスト• ケーニヒスベルクの7つの橋
  14. 14. グラフのトラバーサルと距離• 深さ優先探索 – 実装 – NetworkXによるDFS• 幅優先探索 – アルゴリズム – NetworkXによるBFS• 単純路と通路• ダイクストラのアルゴリズム
  15. 15. グラフのトラバーサルと距離• 深さ優先探索(DFS) 0→1 →3 →2 →5 →6 →4 →7 →8 →9 (1)何らかのノードnからスタートする。 (2)nに訪問済みのマークを付ける。 (3)nに隣接する未訪問の個々のniについて、 以下の処理を繰り返す。 (4)再帰的にノードniにDFSを適用する。
  16. 16. • 幅優先探索(BFS) 0→1 →2 →3 →5 →4 →6 →7 →8 →9 (1)ノードnからスタートする。 (2)待ち行列Qを作る。 (3)nに訪問済みのマークを付ける。 (4)nをQにエンキューする。 (5)Qが空でない間、以下の処理を繰り返す。 (6-1)Qからnをデキューする。 (6-2)nに隣接する未訪問の個々のniについて、 以下の処理を繰り返す。 (7-1)niに訪問済みのマークを付ける。 (7-2)niをQにエンキューする。
  17. 17. 単純路と通路• 単純路:各ノードを1度だけ通るパス(通路) – 開いた/閉じた – 閉路(閉じた単純路)• ダイクストラのアルゴリズム(1959年) – もっともコストの低い単純路を見つける• Networkx:2つの最短単純路アルゴリズム – dijkstra_path – shortest_path
  18. 18. グラフの距離• 指標が複数ある – 最短単純路 • ノードAからBまでのエッジの数 – コストに基づく最短単純路 • 重みつきグラフ – ユークリッド距離 • 隣接行列から計算
  19. 19. グラフの直径• あるノードから別のノードへ移動 – 通過するノード数の最大値
  20. 20. なぜこれが重要なのか• グラフの距離 – グラフを量的に分析する手段 – ネットワーク参加者の影響力を評価
  21. 21. 6次の隔たりは神話に過ぎない• ミルグラムのスモールワールド実験(1969年) – 6次の隔たり• 神話?
  22. 22. スモールワールドネットワーク (格子) 直径=5 直径=317本のエッジのうち5本をランダムに置き換える→グラフの形は大きく変わらないが、直径が5→3に
  23. 23. 複雑ネットワークの歴史• 1736年 オイラーがケーニヒスベル グの七つの橋の問題をグラフを用い て解決 (一筆書きが不可能であることを証明) → グラフ理論の誕生• 1967年 ミルグラムのスモールワー ルド実験• 1998年 ワッツとストロガッツのス モールワールド・ネットワーク• 1999年 バラバシとアルバートのス ケールフリー・ネットワーク
  24. 24. Python/Networkx• 後ほど演習にて• Networkx (http://networkx.lanl.gov/)• Ipython問題?

×