第4章 空間解析 2.ネットワーク分析 (3) ネットワーク構造分析

Slides:



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

有限幾何学 第 2 回. 有限幾何学 第 2 回 1. 様々なグラフの例 2. 道と最短経路問題 1. 用語の説明 2. 最短経路問題 3. ダイキストラのアルゴリズム.
©2008 Ikuo Tahara探索 状態空間と探索木 基本的な探索アルゴリズム 横形探索と縦形探索 評価関数を利用した探索アルゴリズム 分岐限定法 山登り法 最良優先探索 A ( A* )アルゴリズム.
人工知能 ( Artificial Intelligence ) 状態空間表現と探索 State Space Representation and Search Lecture 2 田中美栄子.
アルゴリズムとデータ構造 2011年7月7日
2009/12/4 グラフ (2) 第10講: 平成21年12月4日 (金) 4限 E252教室 コンピュータアルゴリズム.
算法数理工学 第9回 定兼 邦彦.
    有限幾何学        第8回.
On the Enumeration of Colored Trees
基本情報技術概論(第4回) 埼玉大学 理工学研究科 堀山 貴史
2章 データ構造.
5.チューリングマシンと計算.
Ibaraki Univ. Dept of Electrical & Electronic Eng.
5.チューリングマシンと計算.
An Algorithm for Enumerating Maximal Matchings of a Graph
情報工学概論 (アルゴリズムとデータ構造)
15パズルの解法について 北海道情報大学 情報メディア学部 情報メディア学科 新井山ゼミ  大石 貴弘.
岩井 儀雄 コンピュータ基礎演習  ー探索、整列ー 岩井 儀雄
プログラミング論 II 電卓,逆ポーランド記法電卓
データ構造とアルゴリズム 第6回の2 木 ~ データ構造(3)~.
第11講: 平成18年12月 8日 (金) 4限 E352教室 グラフ (1).
Stack & Queue & List 3.
アルゴリズムと データ構造 第4回 スタック・キュー.
エージェントを管理するボスの苦悩 問題 n人のエージェントを部下に持つボスがいる. エージェントは出張・帰還を頻繁に繰り返す.
①データ構造 ②アルゴリズム ③プログラム言語 ④マークアップ言語
s a b f c e d 2016年度 有限幾何学 期末試験 問1:15点
アルゴリズムとデータ構造 2012年7月12日
二分探索木によるサーチ.
2009/10/16 いろいろなデータ構造 第3講: 平成21年10月16日 (金) 4限 E252教室 コンピュータアルゴリズム.
アルゴリズムとデータ構造 2011年7月4日
第25章 単一始点最短路 3節 Bellman-Fordのアルゴリズム
ネットワーク理論 Text. Part 3 pp 最短路問題 pp 最大流問題 pp.85-94
算法数理工学 第8回 定兼 邦彦.
アルゴリズムとデータ構造 2013年7月16日
アルゴリズムイントロダクション 第24章 単一始点最短路問題
離散数学 08. グラフの探索 五島.
Ibaraki Univ. Dept of Electrical & Electronic Eng.
Ibaraki Univ. Dept of Electrical & Electronic Eng.
データ構造と アルゴリズム第4回 知能情報学メジャー 和田俊和.
人工知能概論 第2回 探索(1) 状態空間モデル,基本的な探索
WWW上の効率的な ハブ探索法の提案と実装
モバイルエージェントネットワークの拡張とシミュレーション
データ構造と アルゴリズム 第七回 知能情報学部 新田直也.
First Course in Combinatorial Optimization
離散数学 07. 木 五島.
第4章 空間解析 2.ネットワーク分析 (1) 最短経路検索
ぷよゲーの作り方入門 うでぃおふ 11th サカモトトマト Push key F5 Enter で 次のページへ.
プログラミング 3 スタックとキュー.
算法数理工学 第8回 定兼 邦彦.
アルゴリズムとデータ構造 2011年7月8日課題の復習
基本情報技術概論I (第4回) 埼玉大学 理工学研究科 堀山 貴史
算法数理工学 第7回 定兼 邦彦.
情報知能学科「アルゴリズムとデータ構造」
情報数理Ⅱ 第11章 データ構造 平成29年1月18日.
第2回  発見的探索(1).
問題作成、解説担当:中島 副担当:坪坂、松本
基本情報技術概論(第10回) 埼玉大学 理工学研究科 堀山 貴史
データ構造とアルゴリズム (第3回) 静岡大学工学部 安藤和敏
アルゴリズムからプログラムへ GRAPH-SEARCH
離散数学 06. グラフ 序論 五島.
5.チューリングマシンと計算.
基本情報技術概論(第5回) 埼玉大学 理工学研究科 堀山 貴史
アルゴリズムとデータ構造 2013年7月8日
2009/11/27 グラフ (1) 第9講: 平成21年11月27日 (金) 4限 E252教室 コンピュータアルゴリズム.
pf-6. スタック (Python プログラミング基礎を演習で学ぶシリーズ)
4.プッシュダウンオートマトンと 文脈自由文法の等価性
コストのついたグラフの探索 分枝限定法 A*アルゴリズム.
データ構造と アルゴリズムI 第三回 知能情報学部 新田直也.
第4章 空間解析 2.ネットワーク分析 (2) 最大流問題
アルゴリズムとデータ構造 2012年7月9日
Presentation transcript:

第4章 空間解析 2.ネットワーク分析 (3) ネットワーク構造分析 第4章 空間解析 2.ネットワーク分析 (3) ネットワーク構造分析 久保田光一 kubota@ise.chuo-u.ac.jp

ネットワーク構造分析の道具 グラフ・ネットワークの頂点の探索方法 グラフ・ネットワークの接続構造 深さ優先探索,DFS,スタックLIFO 幅優先探索,BFS,キューFIFO グラフ・ネットワークの接続構造 木,DAG 直径,連結性,連結成分 近接度,近接性 ・ネットワークの構造を調べるための基本的な道具として,ネットワークを表現するグラフ上の頂点を探索する方法がある. ・代表的な二つの探索方法として,深さ優先探索と幅優先探索がある. ・また,ネットワークの構造を表現する用語や指標の基本として,木,DAG, 連結性,連結成分,近接度,近接性がある.

グラフの探索の基本 グラフ中の頂点を一つ指定し,その頂点から辿れる頂点を適当な順番に辿る方法のひとつ 深さ優先探索,あるいは,縦型探索 Depth First Search (DFS) 幅優先探索,あるいは,横型探索 Breadth First Search (BFS) 混合タイプ,反復深化(iterative deepening)

深さ優先探索(DFS) 探索開始頂点 番号は探索順序を表す 1 2 8 3 6 9 4 5 7 10 ・グラフの枝を,探索開始頂点からどんどん辿れるだけ辿る方法. ・訪問した頂点をマークしておき,何度も同じ頂点を訪問しないようにする. ・生き止まりになったら,最後に分岐したところに戻り,別の枝を辿る. 4 5 7 10

深さ優先探索(DFS) 探索開始頂点 番号は探索順序を表す 1 2 8 3 6 9 4 5 7 10 ・グラフの枝を,探索開始頂点からどんどん辿れるだけ辿る方法. ・訪問した頂点をマークしておき,何度も同じ頂点を訪問しないようにする. ・生き止まりになったら,最後に分岐したところに戻り,別の枝を辿る. 4 5 7 10

深さ優先探索(DFS) 各頂点 u に探索済みかどうかを表す真偽値変数 u.flag を用意し,最初はそれを false にする. 探索開始頂点を u をスタック(LIFO)にプッシュ. while stack.empty() ≠ true do v = stack.pop() v.flag = true  /* 頂点 v に関する処理 */ for all u such that 枝(v,u)が存在 if u.flag ≠ true do stack.push(u) ・Depth First Search の実際のプログラムには,スタックという構造を用いると,単純に記述できる. ・あるいは,いわゆるプログラムの再帰呼び出しを行っても同様である.

スタック(FILO, or, LIFO) FILO: First In Last Out 先に入れたものが後に出てくる抽象構造 二つの操作が可能 stack.push(x) : スタックに x を入れる stack.pop() : スタックから取り出す 山積みするようにしてものを出し入れする方法 ・プッシュは山に積む操作 ・ポップは山の一番上のものを取り出す操作 ・全部プッシュしてから,全部ポップすると,入れた順序と逆順になる. 3 2 1 1 2 3 stack

幅優先探索(BFS) 探索開始頂点 番号は探索順序を表す 1 2 3 4 5 6 7 8 9 10 ・近い頂点から順に遠い頂点へと探索していく方法. ・探索のために到達するのに必要な枝の本数を1本ずつ増やしていくやり方 ・同じ頂点は2度以上探索しないようにマークするのはDFSと同じ 7 8 9 10

幅優先探索(BFS) 探索開始頂点 番号は探索順序を表す 1 2 3 4 5 6 7 8 9 10 ・近い頂点から順に遠い頂点へと探索していく方法. ・探索のために到達するのに必要な枝の本数を1本ずつ増やしていくやり方 ・同じ頂点は2度以上探索しないようにマークするのはDFSと同じ 7 8 9 10

幅優先探索 各頂点 u に探索済みかどうかを表す真偽値変数 u.flag を用意し,最初はそれを false にする. 探索開始頂点を u をキュー(FIFO)にプッシュ. while queue.empty() ≠ true do v = queue.pop() v.flag = true /* 頂点 v に関する処理 */ for all u such that 枝(v,u)が存在 if u.flag ≠ true do queue.push(u) ・Breadth First Search の実際のプログラム例. ・キューという構造を用いると単純に記述できる.

キュー(FIFO) FIFO: First In First Out 先に入れたものが先に出てくる抽象構造 二つの操作が可能 queue.push(x) : キューに x を入れる queue.pop() : キューから取り出す パイプにものを入れて,押し出す方法 ・push はパイプに押し込む操作 ・pop はパイプの反対側から取り出す操作 ・push した順に pop 操作で取り出すことができる. queue 3 2 1 3 2 1

グラフの構造(木,DAG) 木(き),Tree DAG (Directed Acyclic Graph) 無閉路有向グラフ グラフの n 個の頂点を繋げるn-1本の枝からなるグラフ DAG (Directed Acyclic Graph) 無閉路有向グラフ 有向グラフであって,閉路が無いもの

グラフの構造(道,有向道) 道(無向グラフ,有向グラフ) 有向道(有向グラフ) 頂点 v0 (始点)から,枝を辿って頂点 vq (終点)に至る頂点と枝の系列. q+1個の頂点 v0, v1, …, vq と q 個の枝 e1, e2, …, eq の系列として (v0, e1, v1, e2, v2, …, eq, vq) と表すとき,ek={vk-1, vk} ,ek=(vk-1,vk), または,ek={vk, vk-1} , ek=(vk, vk-1) となるもの 有向道(有向グラフ) 頂点 v0(始点)から,有向枝を辿って頂点 vq (終点)に至る頂点と枝の系列. q+1個の頂点 v0, v1, …, vq と q 個の枝 e1, e2, …, eq の系列として (v0, e1, v1, e2, v2, …, eq, vq) と表すとき,ek=(vk-1, vk) となるもの 枝の向き無視 ・有向グラフの場合,単に道というと,枝の向きを無視したものとなる. ・枝の向きを揃える場合には,有向道を考える. 枝の向き重要

グラフの構造(連結性) 連結性(無向グラフ,有向グラフ) 連結グラフ 非連結グラフ グラフGのどの二つの頂点に対しても,一方を始点,他方を終点とする道が存在するとき,グラフG を連結グラフという. 連結でないグラフを非連結グラフという. 連結グラフ 非連結グラフ

グラフの構造(2連結性) 2連結性(無向グラフ) 2連結グラフ 2連結グラフではない 任意の2個の頂点を選び,その2個の頂点を結ぶ2本の有向道(同じ頂点を経由しないもの)が存在するとき,そのグラフは2連結性があるという 2連結グラフ 2連結グラフではない

グラフの構造(連結成分) 連結成分 全体で1個の連結成分 2個の連結成分 連結性を満たす頂点の集合で元のグラフを分割したとき,各部分集合を連結成分という 全体で1個の連結成分 2個の連結成分

グラフの構造(近接度) ネットワーク上の頂点を固定し,その頂点が他の頂点にどの程度近いのかという近さを表す指標として,近接度がある 2頂点間の最短距離を d(u,v) と記す.頂点 u の近接度は,u から u 以外の全ての頂点への最短経路の値の総和で定義される. ウォーシャル・フロイド法で d(u,v) を計算すればよい. ・グラフの頂点がほかの頂点にどの程度近いのかということを示す指標として,近接度というものが知られている. ・頂点 u の近接度は,頂点 u と他の頂点 v との最短距離の総和として定義される. ・これは,ワーシャルフロイド法で計算した任意の2点間の最短距離を表す行列(2次元配列)の結果から直ちに計算できる. ・最初の最短路の例について,各頂点の近接度を計算すると,このようになる. ・ほかにも構造を表す指標はいろいろとある. 池 新 御 秋 東 近接性 池袋 6 11 13 15 45 新宿 17 19 57 御茶ノ水 2 4 32 秋葉原 34 東京 40