研究室ゼミ グラフの探索 - Shizuoka...
Transcript of 研究室ゼミ グラフの探索 - Shizuoka...
グラフ探索
研究室ゼミ (グラフの探索) – p.2/48
グラフ探索
ある点から出発して,グラフの中を枝の向きに進みながら,可能な限り探索する方法
研究室ゼミ (グラフの探索) – p.2/48
グラフ探索
ある点から出発して,グラフの中を枝の向きに進みながら,可能な限り探索する方法
深さ優先探索 (DFS)
研究室ゼミ (グラフの探索) – p.2/48
グラフ探索
ある点から出発して,グラフの中を枝の向きに進みながら,可能な限り探索する方法
深さ優先探索 (DFS)
幅優先探索 (BFS)
研究室ゼミ (グラフの探索) – p.2/48
グラフ探索
ある点から出発して,グラフの中を枝の向きに進みながら,可能な限り探索する方法
深さ優先探索 (DFS)
幅優先探索 (BFS)
DFSにはスタックが, BFSにはキューが用いられる.
研究室ゼミ (グラフの探索) – p.2/48
深さ優先探索 (DFS)
研究室ゼミ (グラフの探索) – p.3/48
DFS 1~5
a1
a2 a3
a4 a5
a6
a7
a8
a9
a10v1
v2 v3
v4
v5
S
i=0
0
0 0
0
0
研究室ゼミ (グラフの探索) – p.4/48
DFS 6~9
a1
a2 a3
a4 a5
a6
a7
a8
a9
a10v1
v2 v3
v4
v5
S
i=1
1
0 0
0
0
v1
研究室ゼミ (グラフの探索) – p.5/48
DFS 10~22
a1
a2 a3
a4 a5
a6
a7
a8
a9
a10v1
v2 v3
v4
v5
S
i=
1
0 0
2
0
v1
a=
v=
w=
v1
a1
v4
2v4
研究室ゼミ (グラフの探索) – p.6/48
DFS 10~22
a1
a2 a3
a4 a5
a6
a7
a8
a9
a10v1
v2 v3
v4
v5
S
i=
1
0 3
2
0
v1
a=
v=
w=
v4
a8
v3
3v4v3
研究室ゼミ (グラフの探索) – p.7/48
DFS 10~22
a1
a2 a3
a4 a5
a6
a7
a8
a9
a10v1
v2 v3
v4
v5
S
i=
1
4 3
2
0
v1
a=
v=
w=
v3
a7
v2
4v4v3v2
研究室ゼミ (グラフの探索) – p.8/48
DFS 10~11
a1
a2 a3
a4 a5
a6
a7
a8
a9
a10v1
v2 v3
v4
v5
S
i=
1
4 3
2
0
v1
a=
v=
w=
4v4v3v2
v2
研究室ゼミ (グラフの探索) – p.9/48
DFS 12
a1
a2 a3
a4 a5
a6
a7
a8
a9
a10v1
v2 v3
v4
v5
S
i=
1
4 3
2
0
v1
a=
v=
w=
4v4v3
研究室ゼミ (グラフの探索) – p.10/48
DFS 10~22
a1
a2 a3
a4 a5
a6
a7
a8
a9
a10v1
v2 v3
v4
v5
S
i=
1
4 3
2
5
v1
a=
v=
w=
v3
a9
v5
5v4v3v5
研究室ゼミ (グラフの探索) – p.11/48
DFS 10~22
a1
a2 a3
a4 a5
a6
a7
a8
a9
a10v1
v2 v3
v4
v5
S
i=
1
4 3
2
5
v1
a=
v=
w=
v5
a4
v1
5v4v3v5
研究室ゼミ (グラフの探索) – p.12/48
DFS 10~22
a1
a2 a3
a4 a5
a6
a7
a8
a9
a10v1
v2 v3
v4
v5
S
i=
1
4 3
2
5
v1
a=
v=
w=
v5
a5
v4
5v4v3v5
研究室ゼミ (グラフの探索) – p.13/48
DFS 10~22
a1
a2 a3
a4 a5
a6
a7
a8
a9
a10v1
v2 v3
v4
v5
S
i=
1
4 3
2
5
v1
a=
v=
w=
v5
5v4v3v5
a6
v2
研究室ゼミ (グラフの探索) – p.14/48
DFS 10~11
a1
a2 a3
a4 a5
a6
a7
a8
a9
a10v1
v2 v3
v4
v5
S
i=
1
4 3
2
5
v1
a=
v=
w=
5v4v3v5
v5
研究室ゼミ (グラフの探索) – p.15/48
DFS 12
a1
a2 a3
a4 a5
a6
a7
a8
a9
a10v1
v2 v3
v4
v5
S
i=
1
4 3
2
5
v1
a=
v=
w=
5v4v3
研究室ゼミ (グラフの探索) – p.16/48
DFS 10~11
a1
a2 a3
a4 a5
a6
a7
a8
a9
a10v1
v2 v3
v4
v5
S
i=
1
4 3
2
5
v1
a=
v=
w=
5v4v3
v3
研究室ゼミ (グラフの探索) – p.17/48
DFS 12
a1
a2 a3
a4 a5
a6
a7
a8
a9
a10v1
v2 v3
v4
v5
S
i=
1
4 3
2
5
v1
a=
v=
w=
5v4
研究室ゼミ (グラフの探索) – p.18/48
DFS 10~22
a1
a2 a3
a4 a5
a6
a7
a8
a9
a10v1
v2 v3
v4
v5
S
i=
1
4 3
2
5
v1
a=
v=
w=
5v4
v4
a10
v4
研究室ゼミ (グラフの探索) – p.19/48
DFS 10~11
a1
a2 a3
a4 a5
a6
a7
a8
a9
a10v1
v2 v3
v4
v5
S
i=
1
4 3
2
5
v1
a=
v=
w=
5v4
v4
研究室ゼミ (グラフの探索) – p.20/48
DFS 12
a1
a2 a3
a4 a5
a6
a7
a8
a9
a10v1
v2 v3
v4
v5
S
i=
1
4 3
2
5
v1
a=
v=
w=
5
研究室ゼミ (グラフの探索) – p.21/48
DFS 10~22
a1
a2 a3
a4 a5
a6
a7
a8
a9
a10v1
v2 v3
v4
v5
S
i=
1
4 3
2
5
v1
a=
v=
w=
5
v1
a2
v2
研究室ゼミ (グラフの探索) – p.22/48
DFS 10~22
a1
a2 a3
a4 a5
a6
a7
a8
a9
a10v1
v2 v3
v4
v5
S
i=
1
4 3
2
5
v1
a=
v=
w=
5
v1
a3
v2
研究室ゼミ (グラフの探索) – p.23/48
DFS 10~11
a1
a2 a3
a4 a5
a6
a7
a8
a9
a10v1
v2 v3
v4
v5
S
i=
1
4 3
2
5
v1
a=
v=
w=
5
v1
研究室ゼミ (グラフの探索) – p.24/48
DFS 12
a1
a2 a3
a4 a5
a6
a7
a8
a9
a10v1
v2 v3
v4
v5
S
i=
1
4 3
2
5
a=
v=
w=
5
研究室ゼミ (グラフの探索) – p.25/48
幅優先探索 (BFS)
研究室ゼミ (グラフの探索) – p.26/48
BFS 1~6
a1
a2 a3
a4 a5
a6
a7
a8
a9
a10v1
v2 v3
v4
v5
Q
i=0
0
0 0
0
0
研究室ゼミ (グラフの探索) – p.27/48
BFS 7~9
a1
a2 a3
a4 a5
a6
a7
a8
a9
a10v1
v2 v3
v4
v5
Q
i=1
1
0 0
0
0
v1
研究室ゼミ (グラフの探索) – p.28/48
BFS 10~22
a1
a2 a3
a4 a5
a6
a7
a8
a9
a10v1
v2 v3
v4
v5
Q
i=2
1
0 0
2
0
v1
a= a1
w= v4
v4
v= v1
研究室ゼミ (グラフの探索) – p.29/48
BFS 10~22
a1
a2 a3
a4 a5
a6
a7
a8
a9
a10v1
v2 v3
v4
v5
Q
i=3
1
3 0
2
0
v1
a=w= v2
v4
v= v1
a2
v2
研究室ゼミ (グラフの探索) – p.30/48
BFS 10~22
a1
a2 a3
a4 a5
a6
a7
a8
a9
a10v1
v2 v3
v4
v5
Q
i=3
1
3 0
2
0
v1
a=w= v2
v4
v= v1
a3
v2
研究室ゼミ (グラフの探索) – p.31/48
BFS 10~11
a1
a2 a3
a4 a5
a6
a7
a8
a9
a10v1
v2 v3
v4
v5
Q
i=3
1
3 0
2
0
v1
a=w=
v4
v= v1
v2
研究室ゼミ (グラフの探索) – p.32/48
BFS 12
a1
a2 a3
a4 a5
a6
a7
a8
a9
a10v1
v2 v3
v4
v5
Q
1
3 0
2
0
v4 v2
i=3
a=w=
v=
研究室ゼミ (グラフの探索) – p.33/48
BFS 10~22
a1
a2 a3
a4 a5
a6
a7
a8
a9
a10v1
v2 v3
v4
v5
Q
i=4
1
3 4
2
0
a=w= v3
v4
v= v4
a8
v2 v3
研究室ゼミ (グラフの探索) – p.34/48
BFS 10~22
a1
a2 a3
a4 a5
a6
a7
a8
a9
a10v1
v2 v3
v4
v5
Q
i=4
1
3 4
2
0
a=w= v4
v4
v= v4
a10
v2 v3
研究室ゼミ (グラフの探索) – p.35/48
BFS 10~11
a1
a2 a3
a4 a5
a6
a7
a8
a9
a10v1
v2 v3
v4
v5
Q
i=4
1
3 4
2
0
a=w=
v4
v= v4
v2 v3
研究室ゼミ (グラフの探索) – p.36/48
BFS 12
a1
a2 a3
a4 a5
a6
a7
a8
a9
a10v1
v2 v3
v4
v5
Q
i=4
1
3 4
2
0
a=w=
v=
v2 v3
研究室ゼミ (グラフの探索) – p.37/48
BFS 10~11
a1
a2 a3
a4 a5
a6
a7
a8
a9
a10v1
v2 v3
v4
v5
Q
i=4
1
3 4
2
0
a=w=
v=
v2 v3
v2
研究室ゼミ (グラフの探索) – p.38/48
BFS 12
a1
a2 a3
a4 a5
a6
a7
a8
a9
a10v1
v2 v3
v4
v5
Q
i=4
1
3 4
2
0
a=w=
v=
v3
研究室ゼミ (グラフの探索) – p.39/48
BFS 10~22
a1
a2 a3
a4 a5
a6
a7
a8
a9
a10v1
v2 v3
v4
v5
Q
i=4
1
3 4
2
0
a=w= v2
v= v3
a7
v3
研究室ゼミ (グラフの探索) – p.40/48
BFS 10~22
a1
a2 a3
a4 a5
a6
a7
a8
a9
a10v1
v2 v3
v4
v5
Q
i=
1
3 4
2
5
a=w= v5
v= v3
a9
v3 v5
5
研究室ゼミ (グラフの探索) – p.41/48
BFS 10~11
a1
a2 a3
a4 a5
a6
a7
a8
a9
a10v1
v2 v3
v4
v5
Q
i=
1
3 4
2
5
a=w=
v= v3
v3 v5
5
研究室ゼミ (グラフの探索) – p.42/48
BFS 12
a1
a2 a3
a4 a5
a6
a7
a8
a9
a10v1
v2 v3
v4
v5
Q
i=
1
3 4
2
5
a=w=
v=
v5
5
研究室ゼミ (グラフの探索) – p.43/48
BFS 10~22
a1
a2 a3
a4 a5
a6
a7
a8
a9
a10v1
v2 v3
v4
v5
Q
i=
1
3 4
2
5
a=w=
v= v5
v5
5
a4
v1
研究室ゼミ (グラフの探索) – p.44/48
BFS 10~22
a1
a2 a3
a4 a5
a6
a7
a8
a9
a10v1
v2 v3
v4
v5
Q
i=
1
3 4
2
5
a=w=
v= v5
v5
5
a5
v4
研究室ゼミ (グラフの探索) – p.45/48
BFS 10~22
a1
a2 a3
a4 a5
a6
a7
a8
a9
a10v1
v2 v3
v4
v5
Q
i=
1
3 4
2
5
a=w=
v= v5
v5
5
a6
v2
研究室ゼミ (グラフの探索) – p.46/48
BFS 10~11
a1
a2 a3
a4 a5
a6
a7
a8
a9
a10v1
v2 v3
v4
v5
Q
i=5
1
3 4
2
5
a=w=
v= v5
v5
研究室ゼミ (グラフの探索) – p.47/48
BFS 12
a1
a2 a3
a4 a5
a6
a7
a8
a9
a10v1
v2 v3
v4
v5
Q
i=
1
3 4
2
5
a=w=
v=
研究室ゼミ (グラフの探索) – p.48/48