SlideShare a Scribd company logo
1 of 9
Warshall-Floyd 法
2018/12/10
東京工業大学 工学院 経営工学系
松井諒生
1
Warshall-Floyd 法
重み付き有向グラフの全ペアの最短経
路問題を多項式時間で解くアルゴリズム
2
重み付き有向グラフ
1
3
2
3
4
4
8
5 10
地点(ノード)を結ぶ線をエッジと呼び、その
エッジに重みと向きがあるグラフ
4
3
最短経路問題
・全点対最短経路問題
重み付きのグラフの中に与えられた二
つのノード間の経路の中で、重み(長さ)
が最も小さい経路を求める問題
・2頂点対最短経路問題
・単一始点最短経路問題
4
多項式時間
入力の長さをNとした時、Nに関
する多項式で表せる時間のこと
例)N2秒 N+3分
多項式でない式の例として対数式(logN)や指数式eNなどがある
5
アルゴリズム
n点あるグラフでi番目⇒j番目の最短経路
1~k-1番目の点のみ途中に通って良い時の最短経路
k番目の点を必ず通って行く経路
の短い方を
1~k番目の点を途中に通って良い時の最短経路
として更新していく
この作業をkを1からnまで変化させて最短経路を求める
6
プログラムを使わない計算
行列漸化式:
Dk
ij=min(Dk-1
ij ,Dk-1
ik+Dk-1
kj) (Do=W)
W∈Rn×nとして、Wij=(i番目とj番目を結ぶ辺の長さ)
(Wii=0,辺がないときWij=∞)
*実際に解いてみる→excel
7
これをプログラムにする
グラフの表現(2ページのグラフ)
{1:[(2,3),(3,5),(4,10)]
2:[(3,4),(4,4)]
3:[(1,5),(4,8)]
4:[(2,4)]
}
adj=
始点番号
(行)
終点番号
(列)
重み(長さ)
*辺のないところは入力しない
8
vs=adj.keys()
dist={(v,u):float(‘inf’) for v in vs for u in vs}
for v in vs:
dist[(v,v)]=0
for (u,d) in adj[v]:
dist[(v,u)]=d
for k in vs
for i in vs
for j in vs
dist[(I,j)]=min(dist[I,j], dist[(I,k)]+dist[(k,j)])
print (dist)
ここで漸化式を解く
(ただし、for文を使うため、数式
に(k-1)の文字は必要ない
ここで初期値
(D0)を決定
最初はすべ
ての長さを
∞としている。
.keys()は辞書の順番にリスト
にするメソッド(vs=[1,2,・・,n])
*実際に解いてみる→コマンド9

More Related Content

What's hot

Ikeph7 2014-1015
Ikeph7 2014-1015Ikeph7 2014-1015
Ikeph7 2014-1015GM3D
 
Sort
SortSort
Sortoupc
 
Introduction to Algorithms#24 Shortest-Paths Problem
Introduction to Algorithms#24 Shortest-Paths ProblemIntroduction to Algorithms#24 Shortest-Paths Problem
Introduction to Algorithms#24 Shortest-Paths ProblemNaoya Ito
 
第5章 時系列データのモデリング, 補助情報を考慮したモデリング
第5章 時系列データのモデリング, 補助情報を考慮したモデリング第5章 時系列データのモデリング, 補助情報を考慮したモデリング
第5章 時系列データのモデリング, 補助情報を考慮したモデリングksmzn
 
IJPC-2 C問題解説
IJPC-2 C問題解説IJPC-2 C問題解説
IJPC-2 C問題解説yutaka1999
 
topology of musical data
topology of musical datatopology of musical data
topology of musical dataTatsuki SHIMIZU
 
北大クラスタリング・セミナー6
北大クラスタリング・セミナー6北大クラスタリング・セミナー6
北大クラスタリング・セミナー6Yutaka Nagahata
 
KMC 競技プログラミング練習会 Advanced 第3回 ふろー
KMC 競技プログラミング練習会 Advanced 第3回 ふろーKMC 競技プログラミング練習会 Advanced 第3回 ふろー
KMC 競技プログラミング練習会 Advanced 第3回 ふろーkyoto university
 
Newtsulideprint
NewtsulideprintNewtsulideprint
Newtsulideprinttononro
 
20181214 clebsch gordan_mizuta
20181214 clebsch gordan_mizuta20181214 clebsch gordan_mizuta
20181214 clebsch gordan_mizutaRei Mizuta
 
半正定値計画問題と最大カット Sedemifinite Programming and Approximation Algorithm for Maxcu...
半正定値計画問題と最大カット Sedemifinite Programming and Approximation Algorithm for Maxcu...半正定値計画問題と最大カット Sedemifinite Programming and Approximation Algorithm for Maxcu...
半正定値計画問題と最大カット Sedemifinite Programming and Approximation Algorithm for Maxcu...Yuya Masumura
 
融合変換による最適化の理論的基盤と正当性 (2006-06-20)
融合変換による最適化の理論的基盤と正当性 (2006-06-20)融合変換による最適化の理論的基盤と正当性 (2006-06-20)
融合変換による最適化の理論的基盤と正当性 (2006-06-20)Masahiro Sakai
 
代数トポロジー入門
代数トポロジー入門代数トポロジー入門
代数トポロジー入門Tatsuki SHIMIZU
 
カリー-ハワード対応から始める数理論理学第二回「論理式の帰納的定義」論理学友の会第四回例会(2020/9/27)
カリー-ハワード対応から始める数理論理学第二回「論理式の帰納的定義」論理学友の会第四回例会(2020/9/27)カリー-ハワード対応から始める数理論理学第二回「論理式の帰納的定義」論理学友の会第四回例会(2020/9/27)
カリー-ハワード対応から始める数理論理学第二回「論理式の帰納的定義」論理学友の会第四回例会(2020/9/27)shinQuawai1
 
ITC_principle01_japanese_ver.1.0
ITC_principle01_japanese_ver.1.0ITC_principle01_japanese_ver.1.0
ITC_principle01_japanese_ver.1.0Satoshi Kume
 

What's hot (20)

Ikeph7 2014-1015
Ikeph7 2014-1015Ikeph7 2014-1015
Ikeph7 2014-1015
 
Sort
SortSort
Sort
 
Introduction to Algorithms#24 Shortest-Paths Problem
Introduction to Algorithms#24 Shortest-Paths ProblemIntroduction to Algorithms#24 Shortest-Paths Problem
Introduction to Algorithms#24 Shortest-Paths Problem
 
第5章 時系列データのモデリング, 補助情報を考慮したモデリング
第5章 時系列データのモデリング, 補助情報を考慮したモデリング第5章 時系列データのモデリング, 補助情報を考慮したモデリング
第5章 時系列データのモデリング, 補助情報を考慮したモデリング
 
IJPC-2 C問題解説
IJPC-2 C問題解説IJPC-2 C問題解説
IJPC-2 C問題解説
 
線形写像のker
線形写像のker線形写像のker
線形写像のker
 
CMSI計算科学技術特論B(12) 大規模量子化学計算(1)
CMSI計算科学技術特論B(12) 大規模量子化学計算(1)CMSI計算科学技術特論B(12) 大規模量子化学計算(1)
CMSI計算科学技術特論B(12) 大規模量子化学計算(1)
 
最大流 (max flow)
最大流 (max flow)最大流 (max flow)
最大流 (max flow)
 
グラフネットワーク〜フロー&カット〜
グラフネットワーク〜フロー&カット〜グラフネットワーク〜フロー&カット〜
グラフネットワーク〜フロー&カット〜
 
ロマ数16 simizut
ロマ数16 simizutロマ数16 simizut
ロマ数16 simizut
 
topology of musical data
topology of musical datatopology of musical data
topology of musical data
 
北大クラスタリング・セミナー6
北大クラスタリング・セミナー6北大クラスタリング・セミナー6
北大クラスタリング・セミナー6
 
KMC 競技プログラミング練習会 Advanced 第3回 ふろー
KMC 競技プログラミング練習会 Advanced 第3回 ふろーKMC 競技プログラミング練習会 Advanced 第3回 ふろー
KMC 競技プログラミング練習会 Advanced 第3回 ふろー
 
Newtsulideprint
NewtsulideprintNewtsulideprint
Newtsulideprint
 
20181214 clebsch gordan_mizuta
20181214 clebsch gordan_mizuta20181214 clebsch gordan_mizuta
20181214 clebsch gordan_mizuta
 
半正定値計画問題と最大カット Sedemifinite Programming and Approximation Algorithm for Maxcu...
半正定値計画問題と最大カット Sedemifinite Programming and Approximation Algorithm for Maxcu...半正定値計画問題と最大カット Sedemifinite Programming and Approximation Algorithm for Maxcu...
半正定値計画問題と最大カット Sedemifinite Programming and Approximation Algorithm for Maxcu...
 
融合変換による最適化の理論的基盤と正当性 (2006-06-20)
融合変換による最適化の理論的基盤と正当性 (2006-06-20)融合変換による最適化の理論的基盤と正当性 (2006-06-20)
融合変換による最適化の理論的基盤と正当性 (2006-06-20)
 
代数トポロジー入門
代数トポロジー入門代数トポロジー入門
代数トポロジー入門
 
カリー-ハワード対応から始める数理論理学第二回「論理式の帰納的定義」論理学友の会第四回例会(2020/9/27)
カリー-ハワード対応から始める数理論理学第二回「論理式の帰納的定義」論理学友の会第四回例会(2020/9/27)カリー-ハワード対応から始める数理論理学第二回「論理式の帰納的定義」論理学友の会第四回例会(2020/9/27)
カリー-ハワード対応から始める数理論理学第二回「論理式の帰納的定義」論理学友の会第四回例会(2020/9/27)
 
ITC_principle01_japanese_ver.1.0
ITC_principle01_japanese_ver.1.0ITC_principle01_japanese_ver.1.0
ITC_principle01_japanese_ver.1.0
 

More from MatsuiRyo

ベイズ最適化
ベイズ最適化ベイズ最適化
ベイズ最適化MatsuiRyo
 
多目的遺伝的アルゴリズム
多目的遺伝的アルゴリズム多目的遺伝的アルゴリズム
多目的遺伝的アルゴリズムMatsuiRyo
 
最尤推定法(NNでの応用)
最尤推定法(NNでの応用)最尤推定法(NNでの応用)
最尤推定法(NNでの応用)MatsuiRyo
 
一般化線形モデル
一般化線形モデル一般化線形モデル
一般化線形モデルMatsuiRyo
 
一般線形モデル
一般線形モデル一般線形モデル
一般線形モデルMatsuiRyo
 
統計と機械学習
統計と機械学習統計と機械学習
統計と機械学習MatsuiRyo
 
遺伝的アルゴリズム・遺伝的プログラミング
遺伝的アルゴリズム・遺伝的プログラミング遺伝的アルゴリズム・遺伝的プログラミング
遺伝的アルゴリズム・遺伝的プログラミングMatsuiRyo
 

More from MatsuiRyo (8)

ベイズ最適化
ベイズ最適化ベイズ最適化
ベイズ最適化
 
多目的遺伝的アルゴリズム
多目的遺伝的アルゴリズム多目的遺伝的アルゴリズム
多目的遺伝的アルゴリズム
 
最尤推定法(NNでの応用)
最尤推定法(NNでの応用)最尤推定法(NNでの応用)
最尤推定法(NNでの応用)
 
MCMC法
MCMC法MCMC法
MCMC法
 
一般化線形モデル
一般化線形モデル一般化線形モデル
一般化線形モデル
 
一般線形モデル
一般線形モデル一般線形モデル
一般線形モデル
 
統計と機械学習
統計と機械学習統計と機械学習
統計と機械学習
 
遺伝的アルゴリズム・遺伝的プログラミング
遺伝的アルゴリズム・遺伝的プログラミング遺伝的アルゴリズム・遺伝的プログラミング
遺伝的アルゴリズム・遺伝的プログラミング
 

Warshall froyd