SlideShare a Scribd company logo
1 of 62
Download to read offline
グラフを扱おう:
最短路問題
北海道大学 情報科学研究科
修士1年 栗田和宏
グラフの定義(数学)
グラフとは集合の組であり,G = (V, E)と

表される.ここで E ⊆ (V,V)である.
Vを頂点集合と呼び,Eを辺集合と呼ぶ.
グラフの表現法
グラフを表現する方法として2つ考えられる.
1. 隣接行列
2. 隣接リスト
グラフの表現法
グラフを表現する方法として2つ考えられる.
1. 隣接行列
2. 隣接リスト メモリ:小 検索:遅
メモリ:大 検索:速
隣接行列
グラフの各頂点間の隣接関係を行列で表す.
隣接行列
グラフの各頂点間の隣接関係を行列で表す.
0 1 0 1
1 0 1 1
0 1 0 0
1 1 0 0
1
2
3
4
隣接行列
隣接行列にはO(V2)のメモリとある2頂点間に辺が
あるかを検索するのにO(1)時間がかかる
隣接リスト
グラフの各頂点の隣接関係をリストで保持する.
1
2
3
4
1 2
31
23
24 1
2
4
4
隣接リスト
隣接リストにはO(V + E)のメモリとある2頂点間に
辺があるかを検索するのにO(E)時間がかかる.
単一始点最短路問題
単一始点最短路問題とは与えられた頂点sから他の
すべての頂点への最短路を求める問題である.
単一始点最短路問題
単一始点最短路問題とは与えられた頂点sから他の
すべての頂点への最短路を求める問題である.
ベルマンフォード法
ダイクストラ法
最短路の性質
最小コストの重要な性質として次のことが言える.
頂点uの最小コストは

uと隣接する頂点の最短路 + uへ移動するコスト

の最小である.
u
v0
v1
v2
s …..
3
5
1
1
3
ベルマンフォード法
1. 始点以外のコストをINFに,始点のコストを0に
する.
2. すべての辺を使い,コストを更新する
3. コストの更新ができなかったら終了,更新ができ
たら2に戻る.
コストの更新
1
2
3
4
9
7
5
8
6
1 2 3 4 5 6 7 8 9
0 INF INF INF INF INF INF INF INF
1
1
6
7
5
5
10
3
9
4 2
コストの更新
1
2
3
4
9
7
5
8
6
1 2 3 4 5 6 7 8 9
0 1 INF 10 INF INF INF INF INF
1
1
6
7
5
5
10
3
9
4 2
コストの更新
1
2
3
4
9
7
5
8
6
1 2 3 4 5 6 7 8 9
0 1 INF 10 INF INF INF INF INF
1
1
6
7
5
5
10
3
9
4 2
コストの更新
1
2
3
4
9
7
5
8
6
1 2 3 4 5 6 7 8
0 1 6 5 13 INF 11 7
1
1
6
7
5
5
10
3
9
4
1 2 3 4 5 6 7 8 9
0 1 6 5 13 INF 11 7 INF
2
コストの更新
1
2
3
4
9
7
5
8
6
1 2 3 4 5 6 7 8
0 1 6 5 13 INF 11 7
1
1
6
7
5
5
10
3
9
4
1 2 3 4 5 6 7 8 9
0 1 6 5 13 INF 11 7 INF
2
コストの更新
1
2
3
4
9
7
5
8
6
1 2 3 4 5 6 7 8 9
0 1 6 5 8 16 6 7 14
1
1
6
7
5
5
10
3
9
4 2
コストの更新
1
2
3
4
9
7
5
8
6
1 2 3 4 5 6 7 8 9
0 1 6 5 8 16 6 7 14
1
1
6
7
5
5
10
3
9
4 2
コストの更新
1
2
3
4
9
7
5
8
6
1 2 3 4 5 6 7 8 9
0 1 6 5 8 11 6 7 14
1
1
6
7
5
5
10
3
9
4 2
コストの更新
1
2
3
4
9
7
5
8
6
1 2 3 4 5 6 7 8 9
0 1 6 5 8 11 6 7 14
1
1
6
7
5
5
10
3
9
4 2
計算量
時間計算量:O(VE) もしくは O(V3)
空間計算量:O(E) もしくはO(V2)
時間計算量はグラフを隣接リストで持っておくと
O(VE)になり,隣接行列で持っておくとO(V3)と

なる.
コードの例:
ベルマンフォード法
https://github.com/kazu0423/procon_example/
blob/master/bellman_ford.cpp
計算量の解析
while文が入っていて,ぱっと見での計算量が

わかりづらい.
このwhile文は最大V - 1回のループをする 

→ なぜなら1回のループで少なくとも1つの頂点の
最短コストが決定するからである.
計算量の解析
while文中の計算量はすべての辺についての操作を
しているのでO(E)となる.
全体としてはO(VE)となる.
ダイクストラ法
ベルマンフォード法よりももっと高速に最短路を
求めるアルゴリズム.
仮定としてすべての辺のコストを非負とする.
ダイクストラ法
ベルマンフォード法よりももっと高速に最短路を
求めるアルゴリズム.
仮定としてすべての辺のコストを非負とする.
ベルマンフォード法では最小コストが決定してい
ない頂点に対しても更新をしていた.
このような更新は無駄である.
不要な更新
1
2
3
4
9
7
5
8
6
1
1
6
7
5
5
10
3
9
4
1 2 3 4 5 6 7 8 9
0 INF INF INF INF INF INF INF INF
2
不要な更新
1
2
3
4
9
7
5
8
6
1 2 3 4 5 6 7 8 9
0 1 INF 10 INF INF INF INF INF
1
1
6
7
5
5
10
3
9
4 2
不要な更新
1
2
3
4
9
7
5
8
6
1 2 3 4 5 6 7 8 9
0 1 INF 10 INF INF INF INF INF
1
1
6
7
5
5
10
3
9
4 2
なぜ不要か?
背理法で証明する.
仮定として現在最小コストが決まっていない頂点
の中でコスト最小の頂点がもっと小さいコストで
その頂点に行けると別のパスがあると仮定する.
そのようなパスは存在しないことが証明できる.
コストの更新
1
2
3
4
9
7
5
8
6
1 2 3 4 5 6 7 8 9
0 INF INF INF INF INF INF INF INF
1
1
6
7
5
5
10
3
9
4 2
コストの更新
1
2
3
4
9
7
5
8
6
1 2 3 4 5 6 7 8 9
0 1 INF 10 INF INF INF INF INF
1
1
6
7
5
5
10
3
9
4 2
コストの更新
1
2
3
4
9
7
5
8
6
1 2 3 4 5 6 7 8 9
0 1 INF 10 INF INF INF INF INF
1
1
6
7
5
5
10
3
9
4 2
コストの更新
1
2
3
4
9
7
5
8
6
1 2 3 4 5 6 7 8
0 1 6 5 13 INF 11 7
1
1
6
7
5
5
10
3
9
4
1 2 3 4 5 6 7 8 9
0 1 6 5 INF INF INF 7 INF
2
コストの更新
1
2
3
4
9
7
5
8
6
1 2 3 4 5 6 7 8
0 1 6 5 13 INF 11 7
1
1
6
7
5
5
10
3
9
4
1 2 3 4 5 6 7 8 9
0 1 6 5 INF INF INF 7 INF
2
コストの更新
1
2
3
4
9
7
5
8
6
1 2 3 4 5 6 7 8 9
0 1 6 5 INF INF INF 7 INF
1
1
6
7
5
5
10
3
9
4 2
コストの更新
1
2
3
4
9
7
5
8
6
1 2 3 4 5 6 7 8 9
0 1 6 5 8 INF 6 7 INF
1
1
6
7
5
5
10
3
9
4 2
コードの例:
ダイクストラ法
https://github.com/kazu0423/procon_example/
blob/master/dijkstra.cpp
全点対最短路問題
全点対最短路問題とは任意の2点間の最短路を

求める問題である.
全点対最短路問題
全点対最短路問題とは任意の2点間の最短路を

求める問題である.
ワーシャルフロイド法
ワーシャルフロイド法
dp[i][j]を頂点iから頂点jまでの最小コストを記憶

する変数とする.
dpの初期状態は隣接行列になっており,隣接して
いない頂点同士のコストはINFとする.
dp[i][i] = 0とする.(自分から自分はコスト0)
ワーシャルフロイド法
for(int k = 0; k< n; k++)

for(int i = 0; i < n; i++)

for(int j = 0; j < n; j++)

dp[i][j] = min(dp[i][j], dp[i][k] + dp[k][j]);
kのループ
kのループを以外の部分では,大体のイメージとし
て任意の2点間の距離について何かの更新をしてい
ることがわかる.
kのループ
kのループを以外の部分では,大体のイメージとし
て任意の2点間の距離について何かの更新をしてい
ることがわかる.
kは途中で立ち寄る頂点がどこなのかを

決めている.
コストの更新
1 2 3 4 5
1 0 4 INF 10 INF
2 4 0 5 INF 1
3 INF 5 0 INF INF
4 10 INF INF 0 INF
5 INF 1 INF INF 0
4 2
3 1
5
1
5
10 4
コストの更新:k = 2
1 2 3 4 5
1 0 4 INF 10 INF
2 INF 0 5 4 1
3 INF 5 0 INF INF
4 10 INF INF 0 INF
5 INF 1 INF INF 0
4 2
3 1
5
1
5
10 4
1 2 3 4 5
1 0 4 INF 10 INF
2 4 0 5 INF 1
3 INF 5 0 INF INF
4 10 INF INF 0 INF
5 INF 1 INF INF 0
コストの更新:k = 2
1 2 3 4 5
1 0 4 9 10 INF
2 INF 0 5 4 1
3 INF 5 0 INF INF
4 10 INF INF 0 INF
5 INF 1 INF INF 0
4 2
3 1
5
1
5
10 4
1 2 3 4 5
1 0 4 9 10 INF
2 4 0 5 INF 1
3 9 5 0 INF INF
4 10 INF INF 0 INF
5 INF 1 INF INF 0
コストの更新:k = 2
1 2 3 4 5
1 0 4 9 10 INF
2 INF 0 5 4 1
3 INF 5 0 INF INF
4 10 INF INF 0 INF
5 INF 1 INF INF 0
4 2
3 1
5
1
5
10 4
1 2 3 4 5
1 0 4 9 10 INF
2 4 0 5 INF 1
3 9 5 0 INF INF
4 10 INF INF 0 INF
5 INF 1 INF INF 0
コストの更新:k = 2
1 2 3 4 5
1 0 4 9 10 5
2 INF 0 5 4 1
3 INF 5 0 INF INF
4 10 INF INF 0 INF
5 INF 1 INF INF 0
4 2
3 1
5
1
5
10 4
1 2 3 4 5
1 0 4 9 10 5
2 4 0 5 INF 1
3 9 5 0 INF INF
4 10 INF INF 0 INF
5 5 1 INF INF 0
コストの更新:k = 2
1 2 3 4 5
1 0 4 INF 10 INF
2 INF 0 5 4 1
3 INF 5 0 INF INF
4 10 INF INF 0 INF
5 INF 1 INF INF 0
4 2
3 1
5
1
5
10 4
1 2 3 4 5
1 0 4 9 10 5
2 INF 0 5 4 1
3 INF 5 0 INF INF
4 10 INF INF 0 INF
5 INF 1 INF INF 0
1 2 3 4 5
1 0 4 9 10 5
2 4 0 5 INF 1
3 9 5 0 INF INF
4 10 INF INF 0 INF
5 5 1 INF INF 0
コストの更新:k = 2
1 2 3 4 5
1 0 4 INF 10 INF
2 INF 0 5 4 1
3 INF 5 0 INF INF
4 10 INF INF 0 INF
5 INF 1 INF INF 0
4 2
3 1
5
1
5
10 4
1 2 3 4 5
1 0 4 9 10 5
2 INF 0 5 4 1
3 INF 5 0 INF INF
4 10 INF INF 0 INF
5 INF 1 INF INF 0
1 2 3 4 5
1 0 4 9 10 5
2 INF 0 5 4 1
3 INF 5 0 INF INF
4 10 INF INF 0 INF
5 INF 1 INF INF 0
1 2 3 4 5
1 0 4 9 10 5
2 4 0 5 INF 1
3 9 5 0 INF INF
4 10 INF INF 0 INF
5 5 1 INF INF 0
コストの更新:k = 2
1 2 3 4 5
1 0 4 INF 10 INF
2 INF 0 5 4 1
3 INF 5 0 INF INF
4 10 INF INF 0 INF
5 INF 1 INF INF 0
4 2
3 1
5
1
5
10 4
1 2 3 4 5
1 0 4 9 10 5
2 INF 0 5 4 1
3 INF 5 0 INF INF
4 10 INF INF 0 INF
5 INF 1 INF INF 0
1 2 3 4 5
1 0 4 9 10 5
2 INF 0 5 4 1
3 INF 5 0 INF INF
4 10 INF INF 0 INF
5 INF 1 INF INF 0
1 2 3 4 5
1 0 4 9 10 5
2 4 0 5 INF 1
3 9 5 0 INF INF
4 10 INF INF 0 INF
5 5 1 INF INF 0
コストの更新:k = 2
1 2 3 4 5
1 0 4 INF 10 INF
2 INF 0 5 4 1
3 INF 5 0 INF INF
4 10 INF INF 0 INF
5 INF 1 INF INF 0
4 2
3 1
5
1
5
10 4
1 2 3 4 5
1 0 4 9 10 5
2 INF 0 5 4 1
3 INF 5 0 INF INF
4 10 INF INF 0 INF
5 INF 1 INF INF 0
1 2 3 4 5
1 0 4 9 10 5
2 INF 0 5 4 1
3 INF 5 0 INF INF
4 10 INF INF 0 INF
5 INF 1 INF INF 0
1 2 3 4 5
1 0 4 9 10 5
2 4 0 5 INF 1
3 9 5 0 INF INF
4 10 INF INF 0 INF
5 5 1 INF INF 0
コストの更新:k = 2
1 2 3 4 5
1 0 4 INF 10 INF
2 INF 0 5 4 1
3 INF 5 0 INF INF
4 10 INF INF 0 INF
5 INF 1 INF INF 0
4 2
3 1
5
1
5
10 4
1 2 3 4 5
1 0 4 9 10 5
2 INF 0 5 4 1
3 INF 5 0 INF INF
4 10 INF INF 0 INF
5 INF 1 INF INF 0
1 2 3 4 5
1 0 4 9 10 5
2 INF 0 5 4 1
3 INF 5 0 INF INF
4 10 INF INF 0 INF
5 INF 1 INF INF 0
1 2 3 4 5
1 0 4 9 10 5
2 4 0 5 INF 1
3 9 5 0 INF INF
4 10 INF INF 0 INF
5 5 1 INF INF 0
コストの更新:k = 2
1 2 3 4 5
1 0 4 INF 10 INF
2 INF 0 5 4 1
3 INF 5 0 INF INF
4 10 INF INF 0 INF
5 INF 1 INF INF 0
4 2
3 1
5
1
5
10 4
1 2 3 4 5
1 0 4 9 10 5
2 INF 0 5 4 1
3 INF 5 0 INF INF
4 10 INF INF 0 INF
5 INF 1 INF INF 0
1 2 3 4 5
1 0 4 9 10 5
2 INF 0 5 4 1
3 INF 5 0 INF INF
4 10 INF INF 0 INF
5 INF 1 INF INF 0
1 2 3 4 5
1 0 4 INF 10 INF
2 4 0 5 INF 1
3 INF 5 0 INF INF
4 10 INF INF 0 INF
5 INF 1 INF INF 0
コストの更新:k = 2
1 2 3 4 5
1 0 4 INF 10 INF
2 INF 0 5 4 1
3 INF 5 0 INF INF
4 10 INF INF 0 INF
5 INF 1 INF INF 0
4 2
3 1
5
1
5
10 4
1 2 3 4 5
1 0 4 9 10 5
2 INF 0 5 4 1
3 INF 5 0 INF INF
4 10 INF INF 0 INF
5 INF 1 INF INF 0
1 2 3 4 5
1 0 4 9 10 5
2 INF 0 5 4 1
3 INF 5 0 INF INF
4 10 INF INF 0 INF
5 INF 1 INF INF 0
1 2 3 4 5
1 0 4 INF 10 INF
2 4 0 5 INF 1
3 INF 5 0 INF INF
4 10 INF INF 0 INF
5 INF 1 INF INF 0
コストの更新:k = 2
1 2 3 4 5
1 0 4 INF 10 INF
2 INF 0 5 4 1
3 INF 5 0 INF 6
4 10 INF INF 0 INF
5 INF 1 INF INF 0
4 2
3 1
5
1
5
10 4
1 2 3 4 5
1 0 4 9 10 5
2 INF 0 5 4 1
3 INF 5 0 INF 6
4 10 INF INF 0 INF
5 INF 1 INF INF 0
1 2 3 4 5
1 0 4 INF 10 INF
2 4 0 5 INF 1
3 INF 5 0 INF 6
4 10 INF INF 0 INF
5 INF 1 6 INF 0
コードの例:
ワーシャルフロイド法
https://github.com/kazu0423/procon_example/
blob/master/warshall-floyed.cpp
計算量
ほぼ自明
時間計算量:O(V3)
空間計算量:O(V2)
まとめ
グラフの表現
単一始点最短路問題

ベルマンフォード法

ダイクストラ法
全点対最短路問題

ワーシャルフロイド法

More Related Content

What's hot

クラシックな機械学習の入門  9. モデル推定
クラシックな機械学習の入門  9. モデル推定クラシックな機械学習の入門  9. モデル推定
クラシックな機械学習の入門  9. モデル推定Hiroshi Nakagawa
 
最適輸送の解き方
最適輸送の解き方最適輸送の解き方
最適輸送の解き方joisino
 
Recent Advances on Transfer Learning and Related Topics Ver.2
Recent Advances on Transfer Learning and Related Topics Ver.2Recent Advances on Transfer Learning and Related Topics Ver.2
Recent Advances on Transfer Learning and Related Topics Ver.2Kota Matsui
 
GAN(と強化学習との関係)
GAN(と強化学習との関係)GAN(と強化学習との関係)
GAN(と強化学習との関係)Masahiro Suzuki
 
学習時に使ってはいないデータの混入「リーケージを避ける」
学習時に使ってはいないデータの混入「リーケージを避ける」学習時に使ってはいないデータの混入「リーケージを避ける」
学習時に使ってはいないデータの混入「リーケージを避ける」西岡 賢一郎
 
SimGAN 輪講資料
SimGAN 輪講資料SimGAN 輪講資料
SimGAN 輪講資料Genki Mori
 
ベータ分布の謎に迫る
ベータ分布の謎に迫るベータ分布の謎に迫る
ベータ分布の謎に迫るKen'ichi Matsui
 
機械学習モデルのハイパパラメータ最適化
機械学習モデルのハイパパラメータ最適化機械学習モデルのハイパパラメータ最適化
機械学習モデルのハイパパラメータ最適化gree_tech
 
SSII2020SS: グラフデータでも深層学習 〜 Graph Neural Networks 入門 〜
SSII2020SS: グラフデータでも深層学習 〜 Graph Neural Networks 入門 〜SSII2020SS: グラフデータでも深層学習 〜 Graph Neural Networks 入門 〜
SSII2020SS: グラフデータでも深層学習 〜 Graph Neural Networks 入門 〜SSII
 
劣モジュラ最適化と機械学習1章
劣モジュラ最適化と機械学習1章劣モジュラ最適化と機械学習1章
劣モジュラ最適化と機械学習1章Hakky St
 
【メタサーベイ】Vision and Language のトップ研究室/研究者
【メタサーベイ】Vision and Language のトップ研究室/研究者【メタサーベイ】Vision and Language のトップ研究室/研究者
【メタサーベイ】Vision and Language のトップ研究室/研究者cvpaper. challenge
 
深層学習の数理:カーネル法, スパース推定との接点
深層学習の数理:カーネル法, スパース推定との接点深層学習の数理:カーネル法, スパース推定との接点
深層学習の数理:カーネル法, スパース推定との接点Taiji Suzuki
 
DeepLearning 輪読会 第1章 はじめに
DeepLearning 輪読会 第1章 はじめにDeepLearning 輪読会 第1章 はじめに
DeepLearning 輪読会 第1章 はじめにDeep Learning JP
 
[DL輪読会] Spectral Norm Regularization for Improving the Generalizability of De...
[DL輪読会] Spectral Norm Regularization for Improving the Generalizability of De...[DL輪読会] Spectral Norm Regularization for Improving the Generalizability of De...
[DL輪読会] Spectral Norm Regularization for Improving the Generalizability of De...Deep Learning JP
 
[DL輪読会]Flow-based Deep Generative Models
[DL輪読会]Flow-based Deep Generative Models[DL輪読会]Flow-based Deep Generative Models
[DL輪読会]Flow-based Deep Generative ModelsDeep Learning JP
 
【メタサーベイ】数式ドリブン教師あり学習
【メタサーベイ】数式ドリブン教師あり学習【メタサーベイ】数式ドリブン教師あり学習
【メタサーベイ】数式ドリブン教師あり学習cvpaper. challenge
 
[DL輪読会]Convolutional Sequence to Sequence Learning
[DL輪読会]Convolutional Sequence to Sequence Learning[DL輪読会]Convolutional Sequence to Sequence Learning
[DL輪読会]Convolutional Sequence to Sequence LearningDeep Learning JP
 

What's hot (20)

クラシックな機械学習の入門  9. モデル推定
クラシックな機械学習の入門  9. モデル推定クラシックな機械学習の入門  9. モデル推定
クラシックな機械学習の入門  9. モデル推定
 
最適輸送の解き方
最適輸送の解き方最適輸送の解き方
最適輸送の解き方
 
Recent Advances on Transfer Learning and Related Topics Ver.2
Recent Advances on Transfer Learning and Related Topics Ver.2Recent Advances on Transfer Learning and Related Topics Ver.2
Recent Advances on Transfer Learning and Related Topics Ver.2
 
GAN(と強化学習との関係)
GAN(と強化学習との関係)GAN(と強化学習との関係)
GAN(と強化学習との関係)
 
学習時に使ってはいないデータの混入「リーケージを避ける」
学習時に使ってはいないデータの混入「リーケージを避ける」学習時に使ってはいないデータの混入「リーケージを避ける」
学習時に使ってはいないデータの混入「リーケージを避ける」
 
A3C解説
A3C解説A3C解説
A3C解説
 
SimGAN 輪講資料
SimGAN 輪講資料SimGAN 輪講資料
SimGAN 輪講資料
 
ベータ分布の謎に迫る
ベータ分布の謎に迫るベータ分布の謎に迫る
ベータ分布の謎に迫る
 
ELBO型VAEのダメなところ
ELBO型VAEのダメなところELBO型VAEのダメなところ
ELBO型VAEのダメなところ
 
機械学習モデルのハイパパラメータ最適化
機械学習モデルのハイパパラメータ最適化機械学習モデルのハイパパラメータ最適化
機械学習モデルのハイパパラメータ最適化
 
SSII2020SS: グラフデータでも深層学習 〜 Graph Neural Networks 入門 〜
SSII2020SS: グラフデータでも深層学習 〜 Graph Neural Networks 入門 〜SSII2020SS: グラフデータでも深層学習 〜 Graph Neural Networks 入門 〜
SSII2020SS: グラフデータでも深層学習 〜 Graph Neural Networks 入門 〜
 
劣モジュラ最適化と機械学習1章
劣モジュラ最適化と機械学習1章劣モジュラ最適化と機械学習1章
劣モジュラ最適化と機械学習1章
 
BlackBox モデルの説明性・解釈性技術の実装
BlackBox モデルの説明性・解釈性技術の実装BlackBox モデルの説明性・解釈性技術の実装
BlackBox モデルの説明性・解釈性技術の実装
 
【メタサーベイ】Vision and Language のトップ研究室/研究者
【メタサーベイ】Vision and Language のトップ研究室/研究者【メタサーベイ】Vision and Language のトップ研究室/研究者
【メタサーベイ】Vision and Language のトップ研究室/研究者
 
深層学習の数理:カーネル法, スパース推定との接点
深層学習の数理:カーネル法, スパース推定との接点深層学習の数理:カーネル法, スパース推定との接点
深層学習の数理:カーネル法, スパース推定との接点
 
DeepLearning 輪読会 第1章 はじめに
DeepLearning 輪読会 第1章 はじめにDeepLearning 輪読会 第1章 はじめに
DeepLearning 輪読会 第1章 はじめに
 
[DL輪読会] Spectral Norm Regularization for Improving the Generalizability of De...
[DL輪読会] Spectral Norm Regularization for Improving the Generalizability of De...[DL輪読会] Spectral Norm Regularization for Improving the Generalizability of De...
[DL輪読会] Spectral Norm Regularization for Improving the Generalizability of De...
 
[DL輪読会]Flow-based Deep Generative Models
[DL輪読会]Flow-based Deep Generative Models[DL輪読会]Flow-based Deep Generative Models
[DL輪読会]Flow-based Deep Generative Models
 
【メタサーベイ】数式ドリブン教師あり学習
【メタサーベイ】数式ドリブン教師あり学習【メタサーベイ】数式ドリブン教師あり学習
【メタサーベイ】数式ドリブン教師あり学習
 
[DL輪読会]Convolutional Sequence to Sequence Learning
[DL輪読会]Convolutional Sequence to Sequence Learning[DL輪読会]Convolutional Sequence to Sequence Learning
[DL輪読会]Convolutional Sequence to Sequence Learning
 

More from HCPC: 北海道大学競技プログラミングサークル

More from HCPC: 北海道大学競技プログラミングサークル (20)

写像 12 相
写像 12 相写像 12 相
写像 12 相
 
ACPC 2017 Day3 F: 掛け算は楽しい
ACPC 2017 Day3 F: 掛け算は楽しいACPC 2017 Day3 F: 掛け算は楽しい
ACPC 2017 Day3 F: 掛け算は楽しい
 
ACPC 2017 Day3 D: 優柔不断
ACPC 2017 Day3 D: 優柔不断ACPC 2017 Day3 D: 優柔不断
ACPC 2017 Day3 D: 優柔不断
 
ACPC 2019 Day3 G: Restricted DFS
ACPC 2019 Day3 G: Restricted DFSACPC 2019 Day3 G: Restricted DFS
ACPC 2019 Day3 G: Restricted DFS
 
ACPC 2019 Day3 F: 部分文字列分解
ACPC 2019 Day3 F: 部分文字列分解ACPC 2019 Day3 F: 部分文字列分解
ACPC 2019 Day3 F: 部分文字列分解
 
ACPC 2019 Day3 E: 総和の切り取り
ACPC 2019 Day3 E: 総和の切り取りACPC 2019 Day3 E: 総和の切り取り
ACPC 2019 Day3 E: 総和の切り取り
 
ACPC 2019 Day3 B: パフェ
ACPC 2019 Day3 B: パフェACPC 2019 Day3 B: パフェ
ACPC 2019 Day3 B: パフェ
 
ACPC 2019 Day3 A: 間違い探し
ACPC 2019 Day3 A: 間違い探しACPC 2019 Day3 A: 間違い探し
ACPC 2019 Day3 A: 間違い探し
 
HUPC 2019 Day2 G: 木
HUPC 2019 Day2 G: 木HUPC 2019 Day2 G: 木
HUPC 2019 Day2 G: 木
 
HUPC 2019 Day2 E: ジャム
HUPC 2019 Day2 E: ジャムHUPC 2019 Day2 E: ジャム
HUPC 2019 Day2 E: ジャム
 
HUPC 2019 Day2 H: Revenge of UMG
HUPC 2019 Day2 H: Revenge of UMGHUPC 2019 Day2 H: Revenge of UMG
HUPC 2019 Day2 H: Revenge of UMG
 
HUPC 2019 Day2 F: MOD Rush
HUPC 2019 Day2 F: MOD RushHUPC 2019 Day2 F: MOD Rush
HUPC 2019 Day2 F: MOD Rush
 
HUPC 2019 Day2 C: 串刺し
HUPC 2019 Day2 C: 串刺しHUPC 2019 Day2 C: 串刺し
HUPC 2019 Day2 C: 串刺し
 
HUPC 2019 Day1 F: グリッドの番号
HUPC 2019 Day1 F: グリッドの番号HUPC 2019 Day1 F: グリッドの番号
HUPC 2019 Day1 F: グリッドの番号
 
HUPC 2019 Day1 E: 最短経路の復元
HUPC 2019 Day1 E: 最短経路の復元HUPC 2019 Day1 E: 最短経路の復元
HUPC 2019 Day1 E: 最短経路の復元
 
HUPC 2019 Day1 D: 貪欲が最適?
HUPC 2019 Day1 D: 貪欲が最適?HUPC 2019 Day1 D: 貪欲が最適?
HUPC 2019 Day1 D: 貪欲が最適?
 
HUPC 2019 Day1 C: 短絡評価
HUPC 2019 Day1 C: 短絡評価HUPC 2019 Day1 C: 短絡評価
HUPC 2019 Day1 C: 短絡評価
 
HUPC 2019 Day1 B: 自身の 2 倍
HUPC 2019 Day1 B: 自身の 2 倍HUPC 2019 Day1 B: 自身の 2 倍
HUPC 2019 Day1 B: 自身の 2 倍
 
HUPC 2019 Day1 A: four tea
HUPC 2019 Day1 A: four teaHUPC 2019 Day1 A: four tea
HUPC 2019 Day1 A: four tea
 
Convex Hull Trick
Convex Hull TrickConvex Hull Trick
Convex Hull Trick
 

グラフを扱おう:最短路問題