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

Slides:



Advertisements
Similar presentations
有限幾何学 第 2 回. 有限幾何学 第 2 回 1. 様々なグラフの例 2. 道と最短経路問題 1. 用語の説明 2. 最短経路問題 3. ダイキストラのアルゴリズム.
Advertisements

©2008 Ikuo Tahara探索 状態空間と探索木 基本的な探索アルゴリズム 横形探索と縦形探索 評価関数を利用した探索アルゴリズム 分岐限定法 山登り法 最良優先探索 A ( A* )アルゴリズム.
2015 年度 有限幾何学 期末試験 次の各問に答えよ.( (1), (2), (3), (4), (5), (7), (8), (10) は答えだけでよい) (1) 有向閉路が存在しない位数 4 のトーナメントを描け. (2) 内点の個数が 10 個の正則 2 分木の葉の個数を求めよ. (3) グラフ.
算法数理工学 第 7 回 定兼 邦彦 1. グラフ グラフ G = (V, E) –V: 頂点 ( 節点 ) 集合 {1,2,…,n} –E: 枝集合, E  V  V = {(u,v) | u, v  V} 無向グラフ – 枝は両方向にたどれる 有向グラフ – 枝 (u,v) は u から.
区間グラフにおける区間表現からMPQ-treeを効率よく構成するアルゴリズム
アルゴリズムとデータ構造 2011年7月7日
2009/12/4 グラフ (2) 第10講: 平成21年12月4日 (金) 4限 E252教室 コンピュータアルゴリズム.
データ構造と アルゴリズム 第十二回 知能情報学部 知能情報学科 新田直也.
算法数理工学 第9回 定兼 邦彦.
    有限幾何学        第8回.
On the Enumeration of Colored Trees
数理科学コース・ 倉田 和浩 2007/11/3 大学祭オープンラボ
2章 データ構造.
An Algorithm for Enumerating Maximal Matchings of a Graph
    有限幾何学        第5回.
Approximation of k-Set Cover by Semi-Local Optimization
JAG Regional Practice Contest 2012 問題C: Median Tree
第2回 内容 ハノイの塔―無向グラフと有向グラフ 教科書の 1.3 節 pp.7-12 参照
データ構造と アルゴリズム 知能情報学部 新田直也.
宇野 毅明 国立情報学研究所 2002年3月 東北大大学院 情報科学研究科ワークショップ
データ構造とアルゴリズム 第6回の2 木 ~ データ構造(3)~.
第11講: 平成18年12月 8日 (金) 4限 E352教室 グラフ (1).
第4章 空間解析 2.ネットワーク分析 (3) ネットワーク構造分析
s a b f c e d 2016年度 有限幾何学 期末試験 問1:15点
5.5 The Linear Arboricity of Graphs (グラフの線形樹化数)
Selfish Routing and the Price of Anarchy 第2回
アルゴリズム入門.
アルゴリズムとデータ構造 第7回探索のためのデータ構造(1) 2015/11/18 アルゴリズムとデータ構造 2015.
アルゴリズムとデータ構造 2012年7月12日
二分探索木によるサーチ.
シャノンのスイッチングゲームにおけるペアリング戦略について
アルゴリズムとデータ構造 2011年7月4日
第25章 単一始点最短路 3節 Bellman-Fordのアルゴリズム
定兼邦彦 今井浩 東京大学理学系研究科 情報科学専攻
算法数理工学 第8回 定兼 邦彦.
アルゴリズムとデータ構造 2013年7月16日
アルゴリズムイントロダクション 第24章 単一始点最短路問題
離散数学 08. グラフの探索 五島.
Ibaraki Univ. Dept of Electrical & Electronic Eng.
Ibaraki Univ. Dept of Electrical & Electronic Eng.
7.4 Two General Settings D3 杉原堅也.
第9回 優先度つき待ち行列,ヒープ,二分探索木
b f c a d e g h a b c d e f g 図1 図2 2012年度 有限幾何学 期末試験
A First Course in Combinatorial Optimization Chapter
データ構造と アルゴリズム 第七回 知能情報学部 新田直也.
First Course in Combinatorial Optimization
A Simple Algorithm for Generating Unordered Rooted Trees
離散数学 07. 木 五島.
連続領域におけるファジィ制約充足問題の 反復改善アルゴリズムによる解法 Solving by heuristic repair Algorithm of the Fuzzy Constraint Satisfaction Problems with Continuous Domains 北海道大学.
算法数理工学 第8回 定兼 邦彦.
生物情報ソフトウェア特論 (2)たたみ込みとハッシュに 基づくマッチング
算法数理工学 第7回 定兼 邦彦.
アルゴリズムとデータ構造 第3章 ヒープ 5月31日分
情報知能学科「アルゴリズムとデータ構造」
問題作成、解説担当:中島 副担当:坪坂、松本
第16章 動的計画法 アルゴリズムイントロダクション.
第9回 優先度つき待ち行列,ヒープ,二分探索木
    有限幾何学        第5回.
離散数学 06. グラフ 序論 五島.
Max Cut and the Smallest Eigenvalue 論文紹介
情報工学概論 (アルゴリズムとデータ構造)
アルゴリズムとデータ構造 2013年7月8日
2009/11/27 グラフ (1) 第9講: 平成21年11月27日 (金) 4限 E252教室 コンピュータアルゴリズム.
2017年度 有限幾何学 期末試験 注意:ループと多重辺がないグラフのみを扱う. 問1 次の定理と,その証明の概略を読み,各問に答えよ.
コストのついたグラフの探索 分枝限定法 A*アルゴリズム.
離散数学 11. その他のアルゴリズム 五島.
情報生命科学特別講義III (3)たたみ込みとハッシュに 基づくマッチング
グラフの列挙 中野 眞一    (群馬大学) 2019/9/14 列挙学校.
グラフの帯域幅連続多重彩色 を求めるアルゴリズム (Bandwidth Consective Multicolorings of Graphs) 西関研究室 西川和秀.
アルゴリズムとデータ構造 2012年7月9日
Presentation transcript:

組合せ最適化輪講 2.3 連結性 川原 純

2.3 連結性 内容 – グラフ上の節点をすべてたどるアルゴリズム 計算機上でのグラフの表現 – 強連結成分を求めるアルゴリズム トポロジカル順序を求める方法も – k- 連結、 k- 辺連結について – 2- 連結グラフの耳分解について

計算機上でのグラフの表現 (1) 接続行列 無向グラフの場合は始点、終点ともに 1 各列が 2 個だけ非 0 、他は 0 必要な領域は O(nm)

計算機上でのグラフの表現 (2) 隣接行列 グラフがデンス ( Θ(n 2 ) 本の辺をもつ) のときは効率が良い スパース( Θ(n) 本の辺をもつ) のときは以下の方法が有効 必要な領域は O(m log n) 必要な領域は O(n 2 log m)

計算機上でのグラフの表現 (3) 隣接リスト 出ていく辺 入ってくる辺 はリスト NIL 必要な領域は O(n log m + m log n + m log m) 本書では、グラフは常に隣接リストで与えられるものとする

グラフ走査アルゴリズム ある節点 s から到達できるすべての節点を求め る s

2.1 グラフ走査アルゴリズム 入力:有効グラフ G と 1 点 s 出力: s から到達可能なすべての点集合 R, 木 T s (1) R:= {s}, Q := {s}, T:= φ (2) If Q = φ then 終了 else v ∈ Q を選ぶ (3) e = (v, w) ∈ E(G) となる w ∈ V(G) R を選ぶ If そのような w が存在しない then Q := Q {v}, (2) へ行く (4) R := R ∪ {w}, Q := Q ∪ {w}, T := T ∪ {e}, (2) へ行く

2.1 グラフ走査アルゴリズム 命題 2.16 グラフ走査アルゴリズムは正しく動作 する

2.1 グラフ走査アルゴリズム 命題 2.17 グラフ走査アルゴリズムは O(m + n) 時間で走るように実装できる

深さ優先探索と幅優先探索 (1) R:= {s}, Q := {s}, T:= φ (2) If Q = φ then 終了 else v ∈ Q を選ぶ (3) e = (v, w) ∈ E(G) となる w ∈ V(G) R を選ぶ If そのような w が存在しない then Q := Q {v}, (2) へ行く (4) R := R ∪ {w}, Q := Q ∪ {w}, T := T ∪ {e}, (2) へ行く v の選び方によって探索順が変わる Q に最後に入れられた v ∈ Q を選ぶ → 深さ優先探索 Q に最初に入れられた v ∈ Q を選ぶ → 幅優先探索

幅優先探索木と最短パス 命題 2.18 幅優先探索木は s から到達可能なすべ ての点への最短パスを含む。 s からすべての点 v ∈ V(G) への最短パスの長さ dist G (s,v) は線形時間で求 められる。 s ダイクストラアルゴリズムの 特殊な場合(すべての 重みが 1 )に相当

強連結成分を求めるアルゴリズ ム

アイデア 2 回の深さ優先探索を行う → 線形時間 1 回目: 通常の深さ優先探索 各節点の探索から抜け出す時に 番号をつける (post-order)

強連結成分を求めるアルゴリズ ム アイデア 2 回の深さ優先探索を行う → 線形時間 回目: 通常の深さ優先探索 各節点の探索から抜け出す時に 番号をつける (post-order) 2 回目: 逆向きの深さ優先探索 番号の大きい節点から探索を始める 1 2 3

観察 x < y ならば、いずれかが成り立つ (1) v_y から v_x へ到達可能 (2) v_x と v_y は相互に到達不可 v_x から v_y へ到達可能、かつ、 v_y から v_x へ到達不可、ということは起こり得ない 最も大きな番号の節点 r を選ぶと … r r に到達可能な節点 → r から到達可能 r 強連結

アルゴリズム 2.2 強連結成分を求めるアルゴリズム 正確な定義は教科書参照

アルゴリズムの正しさ 定理 2.19 強連結成分アルゴリズムはすべての強 連結成分を線形時間で正しく求める 証明 (同一の強連結成分に含まれる 2 点 ⇒ comp- 値が同じ) ( comp- 値が同じ 2 点 ⇒ 同一の強連結成分に含まれる) 2 点は深さ優先探索森の同一の木に含まれるので成り立つ comp(u) = comp(v) とする。 u, v が同一の強連結成分に 含まれることを示す

( comp- 値が同じ 2 点 ⇒ 同一の強連結成分に含まれる) の証明 comp(u) = comp(v) とする。 u, v が同一の強連結成分に 含まれることを示す 定理 2.19 強連結成分アルゴリズムはすべての強連結成分を線形時間で正しく求める r(x) : x から到達可能な点で最大の Ψ- 値(番号)をとる点 2 回目の深さ優先探索で得られる反有向木 u と v の comp 値が同じなので … u v r(u) = r(v) r(u) と r(v) は一致、これを r とする。 r は反有向木の根となる r は u と v の両方から到達可能 u から r が到達可能、かつ、 Ψ(r) ≧ Ψ(u) なので、 r は r = u あるいは 最初の深さ優先探索で u より前に R に加えられたことになり、 最初の深さ優先探索森は r-u- パスを含む → r から u に到達可能 同様に r から v に到達可能

トポロジカル順序を求める 各強連結成分を 1 点に縮約する 強連結成分を求めるアルゴリズムで 付けた番号がトポロジカル順序に なっている 定理 2.20 強連結成分アルゴリズムは有向グラフ G の 各強連結成分を 1 点に縮約して得られる有向グラフの トポロジカル順序を正しく求める 1 2 3

高次の連結性 k- 連結: 任意に k – 1 点を除去しても連結 k- 辺連結: 任意に k – 1 本の辺を除去しても連結 点連結度、辺連結度 – 上記の最大の k ブロック: 関節点をもたないような極大な連結 部分グラフ 無向グラフ

耳分解 無向グラフの場合

耳分解 無向グラフの場合 逆にグラフ G が以下のように与えられたとき、

耳分解 無向グラフの場合 逆にグラフ G が以下のように与えられたとき、 P_1 P_2 P_3 P_4 P_5 r r, P_1, P_2, P_3, P_4, P_5 を G の耳分解という 正式な定義は次ページ

耳分解 定義 2.21 G を無向グラフとする。各 P_i (i = 1,…,k) に対し て、 P_i はパスであり、 P_i の両端点のちょうど 2 点のみ が {r} ∪ V(P_1) ∪ … ∪ V(P_{i-1}) に属するか、あるいは P_i は閉路であり P_i のちょうど一点のみが {r} ∪ V(P_1) ∪ … ∪ V(P_{i-1}) に属するような系列 r, P_1,…,P_k を用いて、 G が G = ({r}, φ) + P_1 + … + P_k とかけるとき、この系列 r, P_1,…,P_k を G の耳分解という。 無向グラフの場合 P_1 P_2 P_3 P_4 P_5 r

耳分解 定義 2.21 G を無向グラフとする。各 P_i (i = 1,…,k) に対し て、 P_i はパスであり、 P_i の両端点のちょうど 2 点のみ が {r} ∪ V(P_1) ∪ … ∪ V(P_{i-1}) に属するか、あるいは P_i は閉路であり P_i のちょうど一点のみが {r} ∪ V(P_1) ∪ … ∪ V(P_{i-1}) に属するような系列 r, P_1,…,P_k を用いて、 G が G = ({r}, φ) + P_1 + … + P_k とかけるとき、この系列 r, P_1,…,P_k を G の耳分解という。 無向グラフの場合 P_1 P_2 P_3 P_4 P_5 r P_1 が 3 点以上の点からなる閉 路、 P_2,…,P_k がすべて パスならば耳分解は プロパーであるという P_1 P_3 P_2 P_4 P_5 r

2- 連結と耳分解 定理 2.22 無向グラフが 2- 連結であるための必要 十分条件は、プロパーな耳分解をもつことであ る。