Submit Search
Graph Algorithms Part 1
0 likes
898 views
T
Taku Miyakawa
Graph Algorithms Part 1
Technology
Read more
1 of 57
Download now
Download to read offline
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
More Related Content
PDF
Java SE 9の紹介: モジュール・システムを中心に
Taku Miyakawa
PDF
Javaのログ出力: 道具と考え方
Taku Miyakawa
PDF
言語設計者が意味論を書くときに考えていたこと
Taku Miyakawa
PDF
Matrix Multiplication in Strassen Algorithm
Taku Miyakawa
PDF
金勘定のためのBigDecimalそしてMoney and Currency API
Taku Miyakawa
PDF
Quasar: Actor Model and Light Weight Threads on Java
Taku Miyakawa
PDF
楽して JVM を学びたい #jjug
Yuji Kubota
PPTX
JEP280: Java 9 で文字列結合の処理が変わるぞ!準備はいいか!? #jjug_ccc
YujiSoftware
Java SE 9の紹介: モジュール・システムを中心に
Taku Miyakawa
Javaのログ出力: 道具と考え方
Taku Miyakawa
言語設計者が意味論を書くときに考えていたこと
Taku Miyakawa
Matrix Multiplication in Strassen Algorithm
Taku Miyakawa
金勘定のためのBigDecimalそしてMoney and Currency API
Taku Miyakawa
Quasar: Actor Model and Light Weight Threads on Java
Taku Miyakawa
楽して JVM を学びたい #jjug
Yuji Kubota
JEP280: Java 9 で文字列結合の処理が変わるぞ!準備はいいか!? #jjug_ccc
YujiSoftware
Viewers also liked
(20)
PDF
2014 akka-streams-tokyo-japanese
Konrad Malawski
PDF
Java オブジェクトの内部構造
Taku Miyakawa
PDF
エスイーのしごと
Yoshitaka Kawashima
PDF
渋谷JVM#1 Immutable時代のプログラミング言語 Clojure
Yoshitaka Kawashima
PDF
深層学習フレームワーク Chainer の開発と今後の展開
Seiya Tokui
PPTX
やっとわかったタイピングスピード向上のコツ
Ryosuke Yamazaki
PDF
Kink: プロトタイプベースの俺々 JVM 言語
Taku Miyakawa
PDF
擬似乱数生成器の評価
Taku Miyakawa
PDF
Hadoop jobbuilder
Taku Miyakawa
PPTX
良いコードとは
Nobuyuki Matsui
PDF
エスイーが要件定義でやるべきたったひとつのこと
Yoshitaka Kawashima
PDF
たとえ日本人同士でも必要な異文化理解力
Yoshitaka Kawashima
PDF
Kink の宣伝
Taku Miyakawa
PDF
Kink: invokedynamic on a prototype-based language
Taku Miyakawa
PDF
Summary of "Hacking", 0x351-0x354
Taku Miyakawa
PPTX
Java でつくる低レイテンシ実装の技巧
Ryosuke Yamazaki
PDF
コルーチンの実装について
Taku Miyakawa
PPTX
JVM言語を使ってみようの歌
YujiSoftware
PDF
JDK9 新機能 (日本語&ショートバージョン) #jjug
Yuji Kubota
PPTX
java.lang.OutOfMemoryError #渋谷java
Yuji Kubota
2014 akka-streams-tokyo-japanese
Konrad Malawski
Java オブジェクトの内部構造
Taku Miyakawa
エスイーのしごと
Yoshitaka Kawashima
渋谷JVM#1 Immutable時代のプログラミング言語 Clojure
Yoshitaka Kawashima
深層学習フレームワーク Chainer の開発と今後の展開
Seiya Tokui
やっとわかったタイピングスピード向上のコツ
Ryosuke Yamazaki
Kink: プロトタイプベースの俺々 JVM 言語
Taku Miyakawa
擬似乱数生成器の評価
Taku Miyakawa
Hadoop jobbuilder
Taku Miyakawa
良いコードとは
Nobuyuki Matsui
エスイーが要件定義でやるべきたったひとつのこと
Yoshitaka Kawashima
たとえ日本人同士でも必要な異文化理解力
Yoshitaka Kawashima
Kink の宣伝
Taku Miyakawa
Kink: invokedynamic on a prototype-based language
Taku Miyakawa
Summary of "Hacking", 0x351-0x354
Taku Miyakawa
Java でつくる低レイテンシ実装の技巧
Ryosuke Yamazaki
コルーチンの実装について
Taku Miyakawa
JVM言語を使ってみようの歌
YujiSoftware
JDK9 新機能 (日本語&ショートバージョン) #jjug
Yuji Kubota
java.lang.OutOfMemoryError #渋谷java
Yuji Kubota
Ad
Graph Algorithms Part 1
1.
グラフアルゴリズムその1 2017-11-07 宮川 拓
2.
グラフアルゴリズムを勉強しよう 背景
機械学習の部分問題として出てきがち ex.物体検出, 形態素解析, ... 最短経路問題が多そう? 概要 2/57
3.
参考文献 コルメン他 『アルゴリズム・イントロダクショ ン』第3版(2013, 近代科学社) 3/57
4.
アジェンダ グラフに関する用語と概念 グラフの探索
トポロジカルソート 単一始点最短経路問題(次回) 4/57
5.
グラフに関する用語と概念 5/57
6.
グラフの構成 グラフ:= 頂点
(vertex) と、 頂点同士をつなぐ辺 (edge) 、 からなるデータ構造 6/57
7.
グラフの構成 グラフG=(V, E)
ただしV={v0, v1, ... v5}, E={e0, e1, ... e5} v0 v1 v2 v5 v3 v4 e0 e1 e2 e3 e4 e5 e6 7/57
8.
有向グラフと無向グラフ 有向グラフ 無向グラフ 8/57
9.
有向グラフと無向グラフ 無向グラフは有向グラフの特殊な場合 とみなすこともできる つまり、(v0,
v1)がG.Eの元であるとき、 必ず(v1, v0)もG.Eの元であるような有 向グラフ、と考えれば良い 9/57
10.
道 (path) 列‹v0,
v1, ... vk›について、 すべての(v[i], v[i+1])がG.Eの元で あれば、頂点v0からvkへの道 (path)と呼ぶ 10/57
11.
閉路 (cycle) 最初の要素と最後の要素が同じ頂点で あるような道を閉路(cycle)と呼ぶ 11/57
12.
有向非循環グラフ (DAG) 閉路のない有向グラフを有向非循環グ ラフ
(Directed Acyclic Graph)と 呼ぶ 木はDAGの特殊な場合とみなせる ただひとつの頂点(根)から他のすべて の頂点へ道がたどれること 根以外の頂点への根からの道はひとつだ けであること 12/57
13.
プログラム上のグラフの表現 隣接リスト 0 1 2 5 3
4 0 → {2, 3} 1 → {1} 2 → {1, 3, 4} 3 → {} 4 → {2} 5 → {} 省メモリだけど転置グラフが作りづらい 13/57
14.
プログラム上のグラフの表現 隣接行列 0 1 2 5 3
4 0 0 1 1 0 0 0 1 0 0 0 0 0 1 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 メモリ食いだけど転置グラフが作りやすい 14/57
15.
グラフの探索 15/57
16.
グラフの探索 幅優先探索 コード
辺の重みがすべて等しいときの、 最短経路問題の解法とかんがえられる 深さ優先探索 コード トポロジカルソートなどの解法の一部と して使われる 16/57
17.
グラフの探索 幅優先探索 a b c f d
e Queue = ‹a› 0 ∞ ∞ ∞ ∞ ∞ 17/57
18.
グラフの探索 幅優先探索 a b c f d
e Queue = ‹c, d› 0 ∞ 1 1 ∞ ∞ 18/57
19.
グラフの探索 幅優先探索 a b c f d
e Queue = ‹d, b, e› 0 2 1 1 2 ∞ 19/57
20.
グラフの探索 幅優先探索 a b c f d
e Queue = ‹b, e› 0 2 1 1 2 ∞ 20/57
21.
グラフの探索 幅優先探索 a b c f d
e Queue = ‹e› 0 2 1 1 2 ∞ 21/57
22.
グラフの探索 幅優先探索 a b c f d
e Queue = ‹› 0 2 1 1 2 ∞ 22/57
23.
グラフの探索 深さ優先探索 a b c f d
e まずはaの探索を開始 23/57
24.
グラフの探索 深さ優先探索 a b c f d
e aが指している先であるcの探索を開始 24/57
25.
グラフの探索 深さ優先探索 a b c f d
e cが指している先であるbの探索を開始 25/57
26.
グラフの探索 深さ優先探索 a b c f d
e bが指している先(b自身)はすでに探索済み したがってbは探索終了 26/57
27.
グラフの探索 深さ優先探索 a b c f d
e 27/57
28.
グラフの探索 深さ優先探索 a b c f d
e 28/57
29.
グラフの探索 深さ優先探索 a b c f d
e 29/57
30.
グラフの探索 深さ優先探索 a b c f d
e 30/57
31.
グラフの探索 深さ優先探索 a b c f d
e cが指している先に未探索の頂点はない したがってcは探索終了 31/57
32.
グラフの探索 深さ優先探索 a b c f d
e aも探索終了 32/57
33.
グラフの探索 深さ優先探索 a b c f d
e 多くの場合深さ優先探索では全頂点をなめる トポロジカルソート等での使いやすさのため 33/57
34.
グラフの探索 深さ優先探索 a b c f d
e 34/57
35.
トポロジカルソート 35/57
36.
トポロジカルソート トポロジカルソート: DAGの頂点を、前後関係を保って一列 に並べること 36/57
37.
トポロジカルソート ある日の家事のDAG ア サ
リ の 砂 抜 き ア ン チ ョ ビ す り つ ぶ す ニ ン ニ ク み じ ん 切 り ア ン チ ョ ビ と ニ ン ニ ク を 炒 め る 蓋 を し て 蒸 す 白 身 魚 と ア サ リ と ト マ ト を 投 入 ア ン チ ョ ビ つ ま み 食 い 洗 濯 物 取 り 入 れ る ア イ ロ ン 掛 け る 37/57
38.
トポロジカルソート ア サ リ
の 砂 抜 き ア ン チ ョ ビ す り つ ぶ す ニ ン ニ ク み じ ん 切 り ア ン チ ョ ビ と ニ ン ニ ク を 炒 め る ア ン チ ョ ビ つ ま み 食 い 洗 濯 物 を 取 り 入 れ る 白 身 魚 と ア サ リ と ト マ ト を 投 入 蓋 を し て 蒸 す ア イ ロ ン 掛 け る 手順の例 38/57
39.
トポロジカルソート アルゴリズム 全頂点を深さ優先探索する
探索が終わった頂点から順番に、 結果列の先頭に追加する コード 39/57
40.
トポロジカルソート ア サ リ
の 砂 抜 き ア ン チ ョ ビ す り つ ぶ す ニ ン ニ ク み じ ん 切 り ア ン チ ョ ビ と ニ ン ニ ク を 炒 め る 蓋 を し て 蒸 す 白 身 魚 と ア サ リ と ト マ ト を 投 入 ア ン チ ョ ビ つ ま み 食 い 洗 濯 物 取 り 入 れ る ア イ ロ ン 掛 け る 結 果 : ∅ 40/57
41.
トポロジカルソート ア サ リ
の 砂 抜 き ア ン チ ョ ビ す り つ ぶ す ニ ン ニ ク み じ ん 切 り ア ン チ ョ ビ と ニ ン ニ ク を 炒 め る 蓋 を し て 蒸 す 白 身 魚 と ア サ リ と ト マ ト を 投 入 ア ン チ ョ ビ つ ま み 食 い 洗 濯 物 取 り 入 れ る ア イ ロ ン 掛 け る 結 果 : ∅ 41/57
42.
トポロジカルソート ア サ リ
の 砂 抜 き ア ン チ ョ ビ す り つ ぶ す ニ ン ニ ク み じ ん 切 り ア ン チ ョ ビ と ニ ン ニ ク を 炒 め る 蓋 を し て 蒸 す 白 身 魚 と ア サ リ と ト マ ト を 投 入 ア ン チ ョ ビ つ ま み 食 い 洗 濯 物 取 り 入 れ る ア イ ロ ン 掛 け る 結 果 : ∅ 42/57
43.
トポロジカルソート ア サ リ
の 砂 抜 き ア ン チ ョ ビ す り つ ぶ す ニ ン ニ ク み じ ん 切 り ア ン チ ョ ビ と ニ ン ニ ク を 炒 め る 蓋 を し て 蒸 す 白 身 魚 と ア サ リ と ト マ ト を 投 入 ア ン チ ョ ビ つ ま み 食 い 洗 濯 物 取 り 入 れ る ア イ ロ ン 掛 け る 結 果 : 蓋 を し て 蒸 す 43/57
44.
トポロジカルソート ア サ リ
の 砂 抜 き ア ン チ ョ ビ す り つ ぶ す ニ ン ニ ク み じ ん 切 り ア ン チ ョ ビ と ニ ン ニ ク を 炒 め る 蓋 を し て 蒸 す 白 身 魚 と ア サ リ と ト マ ト を 投 入 ア ン チ ョ ビ つ ま み 食 い 洗 濯 物 取 り 入 れ る ア イ ロ ン 掛 け る 結 果 : 白 身 魚 と ア サ リ と ト マ ト を 投 入 → 蓋 を し て 蒸 す 44/57
45.
トポロジカルソート ア サ リ
の 砂 抜 き ア ン チ ョ ビ す り つ ぶ す ニ ン ニ ク み じ ん 切 り ア ン チ ョ ビ と ニ ン ニ ク を 炒 め る 蓋 を し て 蒸 す 白 身 魚 と ア サ リ と ト マ ト を 投 入 ア ン チ ョ ビ つ ま み 食 い 洗 濯 物 取 り 入 れ る ア イ ロ ン 掛 け る 結 果 : 白 身 魚 と ア サ リ と ト マ ト を 投 入 → 蓋 を し て 蒸 す 45/57
46.
トポロジカルソート ア サ リ
の 砂 抜 き ア ン チ ョ ビ す り つ ぶ す ニ ン ニ ク み じ ん 切 り ア ン チ ョ ビ と ニ ン ニ ク を 炒 め る 蓋 を し て 蒸 す 白 身 魚 と ア サ リ と ト マ ト を 投 入 ア ン チ ョ ビ つ ま み 食 い 洗 濯 物 取 り 入 れ る ア イ ロ ン 掛 け る 結 果 : ア ン チ ョ ビ つ ま み 食 い → 白 身 魚 と ア サ リ と ト マ ト を 投 入 → 蓋 を し て 蒸 す 46/57
47.
トポロジカルソート ア サ リ
の 砂 抜 き ア ン チ ョ ビ す り つ ぶ す ニ ン ニ ク み じ ん 切 り ア ン チ ョ ビ と ニ ン ニ ク を 炒 め る 蓋 を し て 蒸 す 白 身 魚 と ア サ リ と ト マ ト を 投 入 ア ン チ ョ ビ つ ま み 食 い 洗 濯 物 取 り 入 れ る ア イ ロ ン 掛 け る 結 果 : ア ン チ ョ ビ と ニ ン ニ ク を 炒 め る → ア ン チ ョ ビ つ ま み 食 い → 白 身 魚 と ア サ リ と ト マ ト を 投 入 → 蓋 を し て 蒸 す 47/57
48.
トポロジカルソート ア サ リ
の 砂 抜 き ア ン チ ョ ビ す り つ ぶ す ニ ン ニ ク み じ ん 切 り ア ン チ ョ ビ と ニ ン ニ ク を 炒 め る 蓋 を し て 蒸 す 白 身 魚 と ア サ リ と ト マ ト を 投 入 ア ン チ ョ ビ つ ま み 食 い 洗 濯 物 取 り 入 れ る ア イ ロ ン 掛 け る 結 果 : ア ン チ ョ ビ と ニ ン ニ ク を 炒 め る → ア ン チ ョ ビ つ ま み 食 い → 白 身 魚 と ア サ リ と ト マ ト を 投 入 → 蓋 を し て 蒸 す 48/57
49.
トポロジカルソート ア サ リ
の 砂 抜 き ア ン チ ョ ビ す り つ ぶ す ニ ン ニ ク み じ ん 切 り ア ン チ ョ ビ と ニ ン ニ ク を 炒 め る 蓋 を し て 蒸 す 白 身 魚 と ア サ リ と ト マ ト を 投 入 ア ン チ ョ ビ つ ま み 食 い 洗 濯 物 取 り 入 れ る ア イ ロ ン 掛 け る 結 果 : ア ン チ ョ ビ と ニ ン ニ ク を 炒 め る → ア ン チ ョ ビ つ ま み 食 い → 白 身 魚 と ア サ リ と ト マ ト を 投 入 → 蓋 を し て 蒸 す 49/57
50.
トポロジカルソート ア サ リ
の 砂 抜 き ア ン チ ョ ビ す り つ ぶ す ニ ン ニ ク み じ ん 切 り ア ン チ ョ ビ と ニ ン ニ ク を 炒 め る 蓋 を し て 蒸 す 白 身 魚 と ア サ リ と ト マ ト を 投 入 ア ン チ ョ ビ つ ま み 食 い 洗 濯 物 取 り 入 れ る ア イ ロ ン 掛 け る 結 果 : ア イ ロ ン 掛 け る → ア ン チ ョ ビ と ニ ン ニ ク を 炒 め る → ア ン チ ョ ビ つ ま み 食 い → 白 身 魚 と ア サ リ と ト マ ト を 投 入 → 蓋 を し て 蒸 す 50/57
51.
トポロジカルソート ア サ リ
の 砂 抜 き ア ン チ ョ ビ す り つ ぶ す ニ ン ニ ク み じ ん 切 り ア ン チ ョ ビ と ニ ン ニ ク を 炒 め る 蓋 を し て 蒸 す 白 身 魚 と ア サ リ と ト マ ト を 投 入 ア ン チ ョ ビ つ ま み 食 い 洗 濯 物 取 り 入 れ る ア イ ロ ン 掛 け る 結 果 : 洗 濯 物 取 り 入 れ る → ア イ ロ ン 掛 け る → ア ン チ ョ ビ と ニ ン ニ ク を 炒 め る → ア ン チ ョ ビ つ ま み 食 い → 白 身 魚 と ア サ リ と ト マ ト を 投 入 → 蓋 を し て 蒸 す 51/57
52.
トポロジカルソート ア サ リ
の 砂 抜 き ア ン チ ョ ビ す り つ ぶ す ニ ン ニ ク み じ ん 切 り ア ン チ ョ ビ と ニ ン ニ ク を 炒 め る 蓋 を し て 蒸 す 白 身 魚 と ア サ リ と ト マ ト を 投 入 ア ン チ ョ ビ つ ま み 食 い 洗 濯 物 取 り 入 れ る ア イ ロ ン 掛 け る 結 果 : 洗 濯 物 取 り 入 れ る → ア イ ロ ン 掛 け る → ア ン チ ョ ビ と ニ ン ニ ク を 炒 め る → ア ン チ ョ ビ つ ま み 食 い → 白 身 魚 と ア サ リ と ト マ ト を 投 入 → 蓋 を し て 蒸 す 52/57
53.
トポロジカルソート ア サ リ
の 砂 抜 き ア ン チ ョ ビ す り つ ぶ す ニ ン ニ ク み じ ん 切 り ア ン チ ョ ビ と ニ ン ニ ク を 炒 め る 蓋 を し て 蒸 す 白 身 魚 と ア サ リ と ト マ ト を 投 入 ア ン チ ョ ビ つ ま み 食 い 洗 濯 物 取 り 入 れ る ア イ ロ ン 掛 け る 結 果 : ア サ リ の 砂 抜 き → 洗 濯 物 取 り 入 れ る → ア イ ロ ン 掛 け る → ア ン チ ョ ビ と ニ ン ニ ク を 炒 め る → ア ン チ ョ ビ つ ま み 食 い → 白 身 魚 と ア サ リ と ト マ ト を 投 入 → 蓋 を し て 蒸 す 53/57
54.
トポロジカルソート ア サ リ
の 砂 抜 き ア ン チ ョ ビ す り つ ぶ す ニ ン ニ ク み じ ん 切 り ア ン チ ョ ビ と ニ ン ニ ク を 炒 め る 蓋 を し て 蒸 す 白 身 魚 と ア サ リ と ト マ ト を 投 入 ア ン チ ョ ビ つ ま み 食 い 洗 濯 物 取 り 入 れ る ア イ ロ ン 掛 け る 結 果 : ア サ リ の 砂 抜 き → 洗 濯 物 取 り 入 れ る → ア イ ロ ン 掛 け る → ア ン チ ョ ビ と ニ ン ニ ク を 炒 め る → ア ン チ ョ ビ つ ま み 食 い → 白 身 魚 と ア サ リ と ト マ ト を 投 入 → 蓋 を し て 蒸 す 54/57
55.
トポロジカルソート ア サ リ
の 砂 抜 き ア ン チ ョ ビ す り つ ぶ す ニ ン ニ ク み じ ん 切 り ア ン チ ョ ビ と ニ ン ニ ク を 炒 め る 蓋 を し て 蒸 す 白 身 魚 と ア サ リ と ト マ ト を 投 入 ア ン チ ョ ビ つ ま み 食 い 洗 濯 物 取 り 入 れ る ア イ ロ ン 掛 け る 結 果 : ア ン チ ョ ビ す り つ ぶ す → ア サ リ の 砂 抜 き → 洗 濯 物 取 り 入 れ る → ア イ ロ ン 掛 け る → ア ン チ ョ ビ と ニ ン ニ ク を 炒 め る → ア ン チ ョ ビ つ ま み 食 い → 白 身 魚 と ア サ リ と ト マ ト を 投 入 → 蓋 を し て 蒸 す 55/57
56.
トポロジカルソート ア サ リ
の 砂 抜 き ア ン チ ョ ビ す り つ ぶ す ニ ン ニ ク み じ ん 切 り ア ン チ ョ ビ と ニ ン ニ ク を 炒 め る 蓋 を し て 蒸 す 白 身 魚 と ア サ リ と ト マ ト を 投 入 ア ン チ ョ ビ つ ま み 食 い 洗 濯 物 取 り 入 れ る ア イ ロ ン 掛 け る 結 果 : ア ン チ ョ ビ す り つ ぶ す → ア サ リ の 砂 抜 き → 洗 濯 物 取 り 入 れ る → ア イ ロ ン 掛 け る → ア ン チ ョ ビ と ニ ン ニ ク を 炒 め る → ア ン チ ョ ビ つ ま み 食 い → 白 身 魚 と ア サ リ と ト マ ト を 投 入 → 蓋 を し て 蒸 す 56/57
57.
トポロジカルソート ア サ リ
の 砂 抜 き ア ン チ ョ ビ す り つ ぶ す ニ ン ニ ク み じ ん 切 り ア ン チ ョ ビ と ニ ン ニ ク を 炒 め る 蓋 を し て 蒸 す 白 身 魚 と ア サ リ と ト マ ト を 投 入 ア ン チ ョ ビ つ ま み 食 い 洗 濯 物 取 り 入 れ る ア イ ロ ン 掛 け る 結 果 : ニ ン ニ ク み じ ん 切 り → ア ン チ ョ ビ す り つ ぶ す → ア サ リ の 砂 抜 き → 洗 濯 物 取 り 入 れ る → ア イ ロ ン 掛 け る → ア ン チ ョ ビ と ニ ン ニ ク を 炒 め る → ア ン チ ョ ビ つ ま み 食 い → 白 身 魚 と ア サ リ と ト マ ト を 投 入 → 蓋 を し て 蒸 す 57/57
Download