最短経路探索 - behavior in networksbin.t.u-tokyo.ac.jp/startup19/file/slide5_1.pdf ·...

28
最短経路探索 B4 渡邉 葵 2019/5/14 1 スタートアップゼミ課題発表 #1

Upload: others

Post on 10-Jul-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 最短経路探索 - Behavior in Networksbin.t.u-tokyo.ac.jp/startup19/file/slide5_1.pdf · 2019-05-21 · 最短経路探索 b4 渡邉葵 2019/5/14 1 スタートアップゼミ課題発表#1

最短経路探索B4 渡邉 葵

2019/5/14 1

スタートアップゼミ課題発表 #1

Page 2: 最短経路探索 - Behavior in Networksbin.t.u-tokyo.ac.jp/startup19/file/slide5_1.pdf · 2019-05-21 · 最短経路探索 b4 渡邉葵 2019/5/14 1 スタートアップゼミ課題発表#1

目次

2019/5/14 2

1. 結果の可視化

2. アルゴリズムの比較

3. 言語の比較

Page 3: 最短経路探索 - Behavior in Networksbin.t.u-tokyo.ac.jp/startup19/file/slide5_1.pdf · 2019-05-21 · 最短経路探索 b4 渡邉葵 2019/5/14 1 スタートアップゼミ課題発表#1

1. 結果の可視化

2019/5/14 3

Page 4: 最短経路探索 - Behavior in Networksbin.t.u-tokyo.ac.jp/startup19/file/slide5_1.pdf · 2019-05-21 · 最短経路探索 b4 渡邉葵 2019/5/14 1 スタートアップゼミ課題発表#1

1. 結果の可視化

2019/5/14 4

• 最短経路探索によって得られた結果をGIS上で可視化した

マーク下(Node 1148)

駒場裏門(Node 80)

Page 5: 最短経路探索 - Behavior in Networksbin.t.u-tokyo.ac.jp/startup19/file/slide5_1.pdf · 2019-05-21 · 最短経路探索 b4 渡邉葵 2019/5/14 1 スタートアップゼミ課題発表#1

1. 結果の可視化

2019/5/14 5

• 最短経路探索によって得られた結果をGIS上で可視化した

表参道ヒルズ(Node 672)

マーク下(Node 1148)

Page 6: 最短経路探索 - Behavior in Networksbin.t.u-tokyo.ac.jp/startup19/file/slide5_1.pdf · 2019-05-21 · 最短経路探索 b4 渡邉葵 2019/5/14 1 スタートアップゼミ課題発表#1

1. 結果の可視化

2019/5/14 6

• 最短経路探索によって得られた結果をGIS上で可視化した

酒彩蕎麦 初代(Node 1481)

マーク下(Node 1148)

Page 7: 最短経路探索 - Behavior in Networksbin.t.u-tokyo.ac.jp/startup19/file/slide5_1.pdf · 2019-05-21 · 最短経路探索 b4 渡邉葵 2019/5/14 1 スタートアップゼミ課題発表#1

2. アルゴリズムの比較

2019/5/14 7

Page 8: 最短経路探索 - Behavior in Networksbin.t.u-tokyo.ac.jp/startup19/file/slide5_1.pdf · 2019-05-21 · 最短経路探索 b4 渡邉葵 2019/5/14 1 スタートアップゼミ課題発表#1

2. アルゴリズムの比較

2019/5/15 8

• Bellman-Ford法について

概要 1点から他のすべての点への最短距離を計算長所 リンクコストが負でも計算できる短所 計算が遅い O(𝑉 × 𝐸)

初期化 始点から各ノードへの暫定最短距離 𝑑 = 0,∞,⋯ ,∞始点から各ノードへ至るときの直前ノード 𝑝 = 𝑁𝑜𝑛𝑒,⋯ ,𝑁𝑜𝑛𝑒

ループ

グラフ 𝐺 = (𝑉, 𝐸)

𝑢と隣接するノードの集合

ノード𝑢に着目し,𝑢 → 𝑣 と見ていく

𝑢 → 𝑣のコスト高々 𝑉 − 1 回

計算量 O(𝑉 × 𝐸)

Page 9: 最短経路探索 - Behavior in Networksbin.t.u-tokyo.ac.jp/startup19/file/slide5_1.pdf · 2019-05-21 · 最短経路探索 b4 渡邉葵 2019/5/14 1 スタートアップゼミ課題発表#1

2. アルゴリズムの比較

2019/5/15 9

• A*法について

概要 1点からある点(𝑆 → G)への最短距離を計算長所 計算が速い短所 負のリンクコストは計算できない

S

G

n

𝑔(𝑛)

ℎ 𝑛

➢ 𝑓 𝑛 = 𝑔 𝑛 + ℎ(𝑛) が最小となる点を探していくことでGに到達

S → n の最小コスト推定値

n → G の最小コスト推定値

ヒューリスティック関数を用いるEx. マンハッタン距離,直線距離

Page 10: 最短経路探索 - Behavior in Networksbin.t.u-tokyo.ac.jp/startup19/file/slide5_1.pdf · 2019-05-21 · 最短経路探索 b4 渡邉葵 2019/5/14 1 スタートアップゼミ課題発表#1

2. アルゴリズムの比較

2019/5/15 10

• A*法について

具体例:始点ノード 𝑆 → 終点ノード 𝐺 ,上下移動のみ計算中ノード𝑂𝑃𝐸𝑁,計算済みノード𝐶𝐿𝑂𝑆𝐸𝐷

G

S

ℎ 𝑛𝑓 = ℎ + 𝑔𝑔(𝑛)

𝑂𝑃𝐸𝑁 𝐶𝐿𝑂𝑆𝐸𝐷

Page 11: 最短経路探索 - Behavior in Networksbin.t.u-tokyo.ac.jp/startup19/file/slide5_1.pdf · 2019-05-21 · 最短経路探索 b4 渡邉葵 2019/5/14 1 スタートアップゼミ課題発表#1

2. アルゴリズムの比較

2019/5/15 11

• A*法について

具体例:始点ノード 𝑆 → 終点ノード 𝐺 ,上下移動のみ計算中ノード𝑂𝑃𝐸𝑁,計算済みノード𝐶𝐿𝑂𝑆𝐸𝐷

G

330

ℎ 𝑛𝑓 = ℎ + 𝑔𝑔(𝑛)

𝑂𝑃𝐸𝑁 𝐶𝐿𝑂𝑆𝐸𝐷

始点ノードを𝑂𝑃𝐸𝑁にうつす

Page 12: 最短経路探索 - Behavior in Networksbin.t.u-tokyo.ac.jp/startup19/file/slide5_1.pdf · 2019-05-21 · 最短経路探索 b4 渡邉葵 2019/5/14 1 スタートアップゼミ課題発表#1

2. アルゴリズムの比較

2019/5/15 12

• A*法について

具体例:始点ノード 𝑆 → 終点ノード 𝐺 ,上下移動のみ計算中ノード𝑂𝑃𝐸𝑁,計算済みノード𝐶𝐿𝑂𝑆𝐸𝐷

231

G

451

330

231

451

ℎ 𝑛𝑓 = ℎ + 𝑔𝑔(𝑛)

𝑂𝑃𝐸𝑁 𝐶𝐿𝑂𝑆𝐸𝐷

𝑂𝑃𝐸𝑁内で最小の𝑓(𝑛)をもつノード𝑛を𝐶𝐿𝑂𝑆𝐸𝐷にうつし,隣接ノードの 𝑓(𝑛)を計算

Page 13: 最短経路探索 - Behavior in Networksbin.t.u-tokyo.ac.jp/startup19/file/slide5_1.pdf · 2019-05-21 · 最短経路探索 b4 渡邉葵 2019/5/14 1 スタートアップゼミ課題発表#1

2. アルゴリズムの比較

2019/5/15 13

• A*法について

具体例:始点ノード 𝑆 → 終点ノード 𝐺 ,上下移動のみ計算中ノード𝑂𝑃𝐸𝑁,計算済みノード𝐶𝐿𝑂𝑆𝐸𝐷

231

G

451

330

231

451

ℎ 𝑛𝑓 = ℎ + 𝑔𝑔(𝑛)

𝑂𝑃𝐸𝑁 𝐶𝐿𝑂𝑆𝐸𝐷

隣接ノード内で, 𝑓(𝑛)が最小のノードを探し,𝐶𝐿𝑂𝑆𝐸𝐷にうつして移動

Page 14: 最短経路探索 - Behavior in Networksbin.t.u-tokyo.ac.jp/startup19/file/slide5_1.pdf · 2019-05-21 · 最短経路探索 b4 渡邉葵 2019/5/14 1 スタートアップゼミ課題発表#1

2. アルゴリズムの比較

2019/5/15 14

• A*法について

具体例:始点ノード 𝑆 → 終点ノード 𝐺 ,上下移動のみ計算中ノード𝑂𝑃𝐸𝑁,計算済みノード𝐶𝐿𝑂𝑆𝐸𝐷

231

132

G

451

330

231

132

451

352

ℎ 𝑛𝑓 = ℎ + 𝑔𝑔(𝑛)

𝑂𝑃𝐸𝑁 𝐶𝐿𝑂𝑆𝐸𝐷

移動先のノードの隣接ノードの 𝑓(𝑛)を計算

Page 15: 最短経路探索 - Behavior in Networksbin.t.u-tokyo.ac.jp/startup19/file/slide5_1.pdf · 2019-05-21 · 最短経路探索 b4 渡邉葵 2019/5/14 1 スタートアップゼミ課題発表#1

2. アルゴリズムの比較

2019/5/15 15

• A*法について

具体例:始点ノード 𝑆 → 終点ノード 𝐺 ,上下移動のみ計算中ノード𝑂𝑃𝐸𝑁,計算済みノード𝐶𝐿𝑂𝑆𝐸𝐷

231

132

G

451

330

231

132

451

352

ℎ 𝑛𝑓 = ℎ + 𝑔𝑔(𝑛)

𝑂𝑃𝐸𝑁 𝐶𝐿𝑂𝑆𝐸𝐷

𝑂𝑃𝐸𝑁内で,𝑓(𝑛)が最小のノードを探し,𝐶𝐿𝑂𝑆𝐸𝐷にうつして移動

Page 16: 最短経路探索 - Behavior in Networksbin.t.u-tokyo.ac.jp/startup19/file/slide5_1.pdf · 2019-05-21 · 最短経路探索 b4 渡邉葵 2019/5/14 1 スタートアップゼミ課題発表#1

2. アルゴリズムの比較

2019/5/15 16

• A*法について

具体例:始点ノード 𝑆 → 終点ノード 𝐺 ,上下移動のみ計算中ノード𝑂𝑃𝐸𝑁,計算済みノード𝐶𝐿𝑂𝑆𝐸𝐷

231

132

033

451

330

231

132

451

352

253

ℎ 𝑛𝑓 = ℎ + 𝑔𝑔(𝑛)

𝑂𝑃𝐸𝑁 𝐶𝐿𝑂𝑆𝐸𝐷

移動先のノードの隣接ノードの 𝑓(𝑛)を計算

Page 17: 最短経路探索 - Behavior in Networksbin.t.u-tokyo.ac.jp/startup19/file/slide5_1.pdf · 2019-05-21 · 最短経路探索 b4 渡邉葵 2019/5/14 1 スタートアップゼミ課題発表#1

2. アルゴリズムの比較

2019/5/15 17

• A*法について

具体例:始点ノード 𝑆 → 終点ノード 𝐺 ,上下移動のみ計算中ノード𝑂𝑃𝐸𝑁,計算済みノード𝐶𝐿𝑂𝑆𝐸𝐷

231

132

033

451

330

231

132

451

352

253

ℎ 𝑛𝑓 = ℎ + 𝑔𝑔(𝑛)

𝑂𝑃𝐸𝑁 𝐶𝐿𝑂𝑆𝐸𝐷

𝑂𝑃𝐸𝑁内で,𝑓(𝑛)が最小のノードを探し,𝐶𝐿𝑂𝑆𝐸𝐷にうつして移動.これでゴール.

Page 18: 最短経路探索 - Behavior in Networksbin.t.u-tokyo.ac.jp/startup19/file/slide5_1.pdf · 2019-05-21 · 最短経路探索 b4 渡邉葵 2019/5/14 1 スタートアップゼミ課題発表#1

2. アルゴリズムの比較

2019/5/15 18

• A*法について

初期化 𝑂𝑃𝐸𝑁 = 𝑆 , 𝐶𝐿𝑂𝑆𝐸𝐷 = 𝜙𝑔 𝑆 = 0より, 𝑓 𝑆 = ℎ(𝑆)

ループ

始点ノード 𝑆 → 終点ノード 𝐺計算中ノード𝑂𝑃𝐸𝑁,計算済みノード𝐶𝐿𝑂𝑆𝐸𝐷

1. 𝑂𝑃𝐸𝑁内で最小の𝑓(𝑛)をもつノード𝑛を取り出す → 𝑛 = 𝐷なら終了

→ 𝑛を𝐶𝐿𝑂𝑆𝐸𝐷にうつす

2. 𝑛に隣接するすべてのノード𝑚に対して, 𝑓′ 𝑚 = 𝑔 𝑛 + 𝑐𝑜𝑠𝑡 𝑛,𝑚 + ℎ(𝑚)を計算

・𝑚 ∉ (𝑂𝑃𝐸𝑁 ∪ 𝐶𝐿𝑂𝑆𝐸𝐷)

・𝑚 ∈ 𝑂𝑃𝐸𝑁

・𝑚 ∈ 𝐶𝐿𝑂𝑆𝐸𝐷

𝑓(𝑚)を代入し,𝑚を𝑂𝑃𝐸𝑁に追加して,𝑚の親を𝑛に

𝑓(𝑚)が小さくなっていたら更新し,𝑚の親を𝑛に

𝑓(𝑚)が小さくなっていたら更新し, 𝑚 を𝑂𝑃𝐸𝑁に移し,𝑚の親を𝑛に

Page 19: 最短経路探索 - Behavior in Networksbin.t.u-tokyo.ac.jp/startup19/file/slide5_1.pdf · 2019-05-21 · 最短経路探索 b4 渡邉葵 2019/5/14 1 スタートアップゼミ課題発表#1

2. アルゴリズムの比較

2019/5/14 19

• 各アルゴリズムの比較

Dijkstra法 Bellman-Ford法 A*法

計算速度

負のリンクコスト

その他特定のOD組に対しての

最短経路を出す

〇△ ×

〇× ×

Page 20: 最短経路探索 - Behavior in Networksbin.t.u-tokyo.ac.jp/startup19/file/slide5_1.pdf · 2019-05-21 · 最短経路探索 b4 渡邉葵 2019/5/14 1 スタートアップゼミ課題発表#1

2. アルゴリズムの比較

2019/5/15 20

• アルゴリズムによる計算時間の比較

0.78

2.44

0.54

0

0.5

1

1.5

2

2.5

3

計算

時間

[s]

アルゴリズムよる計算時間の比較

Dijkstra法

ここでの計算時間は,ODノードや隣接行列の取り込みなどは済ませた以降の,実際のアルゴリズムの部分の計算時間を指している.

Bellman-Ford法

A*法

Node 80 → Node 1148 への最短経路探索

Page 21: 最短経路探索 - Behavior in Networksbin.t.u-tokyo.ac.jp/startup19/file/slide5_1.pdf · 2019-05-21 · 最短経路探索 b4 渡邉葵 2019/5/14 1 スタートアップゼミ課題発表#1

2. アルゴリズムの比較

2019/5/15 21

• A*法におけるヒューリスティック関数の設定

0.61

0.54

0.5

0.52

0.54

0.56

0.58

0.6

0.62

計算

時間

[s]

ヒューリスティック関数よる計算時間の比較

直線距離

ここでの計算時間は,ODノードや隣接行列の取り込みなどは済ませた以降の,実際のアルゴリズムの部分の計算時間を指している.

マンハッタン距離

Node 80 → Node 1148 への最短経路探索

Page 22: 最短経路探索 - Behavior in Networksbin.t.u-tokyo.ac.jp/startup19/file/slide5_1.pdf · 2019-05-21 · 最短経路探索 b4 渡邉葵 2019/5/14 1 スタートアップゼミ課題発表#1

2. アルゴリズムの比較

2019/5/14 22

• 負のリンクコスト

駒場裏門

渋谷駅

• 災害が発生し,駒場からひとまず渋谷駅まで歩くことに(通常の最短経路は赤色)

Page 23: 最短経路探索 - Behavior in Networksbin.t.u-tokyo.ac.jp/startup19/file/slide5_1.pdf · 2019-05-21 · 最短経路探索 b4 渡邉葵 2019/5/14 1 スタートアップゼミ課題発表#1

2. アルゴリズムの比較

2019/5/14 23

• 負のリンクコスト

駒場裏門

渋谷駅

• 災害が発生し,駒場からひとまず渋谷駅まで歩くことに(通常の最短経路は赤色)• 途中で,松濤中学校で配給をやっているという情報を目にする

松濤中学校

Page 24: 最短経路探索 - Behavior in Networksbin.t.u-tokyo.ac.jp/startup19/file/slide5_1.pdf · 2019-05-21 · 最短経路探索 b4 渡邉葵 2019/5/14 1 スタートアップゼミ課題発表#1

2. アルゴリズムの比較

2019/5/14 24

• 負のリンクコスト

駒場裏門

渋谷駅

• 災害が発生し,駒場からひとまず渋谷駅まで歩くことに(通常の最短経路は赤色)• 途中で,松濤中学校で配給をやっているという情報を目にする• 松濤中学校へのリンクコストが負の値に

リンクコスト負

Page 25: 最短経路探索 - Behavior in Networksbin.t.u-tokyo.ac.jp/startup19/file/slide5_1.pdf · 2019-05-21 · 最短経路探索 b4 渡邉葵 2019/5/14 1 スタートアップゼミ課題発表#1

2. アルゴリズムの比較

2019/5/14 25

• 負のリンクコスト

駒場裏門

渋谷駅

• 災害が発生し,駒場からひとまず渋谷駅まで歩くことに(通常の最短経路は赤色)• 途中で,松濤中学校で配給をやっているという情報を目にする• 松濤中学校へのリンクコストが負の値に• このような負のリンクコストを含むネットワークにおいて,Dijkstra法では最短

経路は変わらないが

リンクコスト負

Page 26: 最短経路探索 - Behavior in Networksbin.t.u-tokyo.ac.jp/startup19/file/slide5_1.pdf · 2019-05-21 · 最短経路探索 b4 渡邉葵 2019/5/14 1 スタートアップゼミ課題発表#1

2. アルゴリズムの比較

2019/5/15 26

• 負のリンクコスト

駒場裏門

渋谷駅

• 災害が発生し,駒場からひとまず渋谷駅まで歩くことに(通常の最短経路は赤色)• 途中で,松濤中学校で配給をやっているという情報を目にする• 松濤中学校へのリンクコストが負の値に• このような負のリンクコストを含むネットワークにおいて,Dijkstra法では最短

経路は変わらないが• Bellman-Ford法であれば真の最短経路を発見できる

配給のために迂回するのがコスト最小(コスト 1399.9 → 1348.9)

Page 27: 最短経路探索 - Behavior in Networksbin.t.u-tokyo.ac.jp/startup19/file/slide5_1.pdf · 2019-05-21 · 最短経路探索 b4 渡邉葵 2019/5/14 1 スタートアップゼミ課題発表#1

3. 言語の比較

2019/5/14 27

Page 28: 最短経路探索 - Behavior in Networksbin.t.u-tokyo.ac.jp/startup19/file/slide5_1.pdf · 2019-05-21 · 最短経路探索 b4 渡邉葵 2019/5/14 1 スタートアップゼミ課題発表#1

3. 言語の比較

2019/5/14 28

• Dijkstra法で,Node 931 から他のすべてのノードへの最短経路を列挙するのに要する時間

1176.4

6.30

200

400

600

800

1000

1200

1400

計算

時間

[s]

言語による計算時間の比較

Python C

約190倍

ここでの計算時間は,プログラム全体の計算時間を指している.