SlideShare a Scribd company logo
GraphX Advent Calendar Day15
最短経路探索
1 4
1
• この例だと、頂点1から頂点3へのルートは3つあ
るが、最短は1→2→3の距離2。
2
5
3
GraphX Advent Calendar Day15
最短経路探索
1 4
2
• 各頂点にリストを持たせる
• リストの1行目として自分のIDとその距離0を持つ
2 5
3
事前準備
{(1,0)} {(4,0)}
{(2,0)}
{(3,0)}
{(5,0)}
GraphX Advent Calendar Day15
最短経路探索
1 4
3
• 自分が持つリストを接続先頂点に送信する
2 5
3
Iteration1
{(1,0)} {(4,0)}
{(2,0)}
{(3,0)}
{(5,0)}
{(1,0)}
{(2,0)}
{(5,0)}
{(4,0)}
{(4,0)}
GraphX Advent Calendar Day15
最短経路探索
1 4
4
• 受信したリストの距離を1加算しつつ、そのリスト
を自分のリストにマージする
2 5
3
Iteration1
{(1,0)} {(4,0),(1,1)}
{(2,0),(1,1),(4,1)}
{(3,0),(2,1),(5,1)}
{(5,0),(4,1)}
GraphX Advent Calendar Day15
最短経路探索
1 4
5
• 自分が持つリストを接続先頂点に送る。

(前のIterationでメッセージを受信した頂点だけが
送信 = Pregel の仕様)
2 5
3
Iteration2
{(1,0)} {(4,0),(1,1)}
{(2,0),(1,1),(4,1)}
{(3,0),(2,1),(5,1)}
{(5,0),(4,1)}
{(2,0),(1,1),(4,1)}
{(4,0),(1,1)}
{(4,0),(1,1)}
{(5,0),(4,1)}
GraphX Advent Calendar Day15
最短経路探索
1 4
6
• 受信したリストの距離を1加算しつつ、そのリストを自分の
リストにマージする
• 既にリストにその頂点がある場合は短い方の距離を選択する
2 5
3
Iteration2
{(1,0)} {(4,0),(1,1)}
{(2,0),(1,1),(4,1)}
{(3,0),(1,2),(2,1),(4,2),(5,1)}
{(5,0),(4,1),(1,2)}
GraphX Advent Calendar Day15
最短経路探索
1 4
7
• 自分のリストを接続先頂点に送信する
2 5
3
Iteration3
{(1,0)} {(4,0),(1,1)}
{(2,0),(1,1),(4,1)}
{(3,0),(1,2),(2,1),(4,2),(5,1)}
{(5,0),(4,1),(1,2)}
{(2,0),(1,1),(4,1)} {(5,0),(4,1),(1,2)}
GraphX Advent Calendar Day15
最短経路探索
1 4
8
• 受信したリストの距離を1加算しつつ、そのリストを自分の
リストにマージする
• 既にリストにその頂点がある場合は短い方の距離を選択する
2 5
3
Iteration3
{(1,0)} {(4,0),(1,1)}
{(2,0),(1,1),(4,1)}
{(3,0),(1,2),(2,1),(4,2),(5,1)}
{(5,0),(4,1),(1,2)}
GraphX Advent Calendar Day15
最短経路探索
1 4
9
• 頂点3から見た、頂点1との距離が2になっている
ことを確認
2 5
3
結果
{(1,0)} {(4,0),(1,1)}
{(2,0),(1,1),(4,1)}
{(3,0),(1,2),(2,1),(4,2),(5,1)}
{(5,0),(4,1),(1,2)}

More Related Content

Viewers also liked (9)

PDF
グラフデータベース:Neo4j、そしてRDBからの移行手順の紹介
ippei_suzuki
 
PDF
Spark Streaming と Spark GraphX を使用したTwitter解析による レコメンドサービス例
Junichi Noda
 
PPTX
Pythonで入門するApache Spark at PyCon2016
Tatsuya Atsumi
 
PPTX
Spark GraphX で始めるグラフ解析
Yosuke Mizutani
 
PDF
Sparkで始めるお手軽グラフデータ分析
Nagato Kasaki
 
PPTX
Neo4j の「データ操作プログラミング」から 「ビジュアライズ」まで
Keiichiro Seida
 
PDF
「GraphDB徹底入門」〜構造や仕組み理解から使いどころ・種々のGraphDBの比較まで幅広く〜
Takahiro Inoue
 
KEY
『繋がり』を見る: Cytoscapeと周辺ツールを使ったグラフデータ可視化入門
Keiichiro Ono
 
PDF
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)
NTT DATA OSS Professional Services
 
グラフデータベース:Neo4j、そしてRDBからの移行手順の紹介
ippei_suzuki
 
Spark Streaming と Spark GraphX を使用したTwitter解析による レコメンドサービス例
Junichi Noda
 
Pythonで入門するApache Spark at PyCon2016
Tatsuya Atsumi
 
Spark GraphX で始めるグラフ解析
Yosuke Mizutani
 
Sparkで始めるお手軽グラフデータ分析
Nagato Kasaki
 
Neo4j の「データ操作プログラミング」から 「ビジュアライズ」まで
Keiichiro Seida
 
「GraphDB徹底入門」〜構造や仕組み理解から使いどころ・種々のGraphDBの比較まで幅広く〜
Takahiro Inoue
 
『繋がり』を見る: Cytoscapeと周辺ツールを使ったグラフデータ可視化入門
Keiichiro Ono
 
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)
NTT DATA OSS Professional Services
 

More from 鉄平 土佐 (19)

PDF
GraphX によるグラフ分析処理の実例と入門
鉄平 土佐
 
PDF
Reactテストに役立つ実装の工夫
鉄平 土佐
 
PDF
GraphX Advent Calendar Day 13
鉄平 土佐
 
PDF
GraphX Advent Calendar Day12 : Pregel概要
鉄平 土佐
 
PDF
Asakusa fwはじめの一歩 0.7.0
鉄平 土佐
 
PDF
Spark GraphXについて @Spark Meetup 2014/9/8
鉄平 土佐
 
PPTX
「Asakusa0.7の新機能で、テストデータをどうドキュメントするのか的な実用的なアレ」 by @okachimachiorz1
鉄平 土佐
 
PDF
GraphXはScalaエンジニアにとってのブルーオーシャン @ Scala Matsuri 2014
鉄平 土佐
 
PDF
GraphX is the blue ocean for scala engineers @ Scala Matsuri 2014
鉄平 土佐
 
PDF
Asakusa fw演算子チートシートについて
鉄平 土佐
 
PDF
Asakusa fw勉強会2014真夏
鉄平 土佐
 
PDF
Asakusa Framework 勉強会 2014 夏
鉄平 土佐
 
PDF
Asakusa Framework はじめの一歩 ( ver 0.6.2 )
鉄平 土佐
 
PDF
Asakusa fwはじめの一歩・改
鉄平 土佐
 
PDF
Asakusa fw勉強会2014冬
鉄平 土佐
 
PDF
Scala稟議の通し方(公開版)
鉄平 土佐
 
PDF
Scala active record
鉄平 土佐
 
PDF
はてブちう
鉄平 土佐
 
KEY
Moviecall
鉄平 土佐
 
GraphX によるグラフ分析処理の実例と入門
鉄平 土佐
 
Reactテストに役立つ実装の工夫
鉄平 土佐
 
GraphX Advent Calendar Day 13
鉄平 土佐
 
GraphX Advent Calendar Day12 : Pregel概要
鉄平 土佐
 
Asakusa fwはじめの一歩 0.7.0
鉄平 土佐
 
Spark GraphXについて @Spark Meetup 2014/9/8
鉄平 土佐
 
「Asakusa0.7の新機能で、テストデータをどうドキュメントするのか的な実用的なアレ」 by @okachimachiorz1
鉄平 土佐
 
GraphXはScalaエンジニアにとってのブルーオーシャン @ Scala Matsuri 2014
鉄平 土佐
 
GraphX is the blue ocean for scala engineers @ Scala Matsuri 2014
鉄平 土佐
 
Asakusa fw演算子チートシートについて
鉄平 土佐
 
Asakusa fw勉強会2014真夏
鉄平 土佐
 
Asakusa Framework 勉強会 2014 夏
鉄平 土佐
 
Asakusa Framework はじめの一歩 ( ver 0.6.2 )
鉄平 土佐
 
Asakusa fwはじめの一歩・改
鉄平 土佐
 
Asakusa fw勉強会2014冬
鉄平 土佐
 
Scala稟議の通し方(公開版)
鉄平 土佐
 
Scala active record
鉄平 土佐
 
はてブちう
鉄平 土佐
 
Moviecall
鉄平 土佐
 
Ad

Recently uploaded (13)

PPTX
オープンソース界隈の利用者や技術者から見たオープンソースEDAとは? What is open source EDA from the perspecti...
Industrial Technology Research Institute (ITRI)(工業技術研究院, 工研院)
 
PDF
AIツールを使った研究の効率化 Improving Research Efficiency with AI Tools
Tohoku University
 
PDF
第3回デジタル理学療法学会のシンポジウム「デジタル理学療法の組織活用:教育・管理・研究を繋ぐ新たな地平」での話題提供
Matsushita Laboratory
 
PDF
第3回デジタル理学療法研究会学術大会シンポジウム「デジタル理学療法の組織活用:教育・管理・研究を繋ぐ新たな地平」の講演資料.
Matsushita Laboratory
 
PDF
SIG-AUDIO 2025 Vol.02 オンラインセミナー 「GDC2025 オーディオ報告会」SIG-Audio_GDC2024_報告会資料_増野さ...
IGDA Japan SIG-Audio
 
PDF
go tool と Minimal Version Selection アルゴリズム
Keisuke Ishigami
 
PDF
SIG-AUDIO 2025 Vol.02 オンラインセミナー 「GDC2025 オーディオ報告会」SIG-Audio_GDC2025_報告会資料_渡辺さ...
IGDA Japan SIG-Audio
 
PDF
安尾 萌, 松下 光範. 環境馴致を計量可能にするための試み,人工知能学会第4回仕掛学研究会, 2018.
Matsushita Laboratory
 
PDF
マルチAIエージェントの産業界での実践に向けたオープンソース活動の展望 - Japan Regional User Group (RUG) Meet-Up
Kosaku Kimura
 
PPTX
新卒・中途採用者向け採用ピッチ資料2025年7月版(20250702).pptx
Official74
 
PDF
漁船に搭載されている電子装備と漁法について_VRC海洋学研究会_海のLT会発表資料
Yuuitirou528 default
 
PDF
API認可を支えるKeycloakの基本と設計の考え方 ~ OAuth/OIDCによるAPI保護のベストプラクティス ~
Hitachi, Ltd. OSS Solution Center.
 
PDF
安尾 萌, 森野 穣, 松下 光範. 災害情報収集におけるSNSのメディア特性に関する一検討, 人工知能学会第30回インタラクティブ情報アクセスと可視化マ...
Matsushita Laboratory
 
オープンソース界隈の利用者や技術者から見たオープンソースEDAとは? What is open source EDA from the perspecti...
Industrial Technology Research Institute (ITRI)(工業技術研究院, 工研院)
 
AIツールを使った研究の効率化 Improving Research Efficiency with AI Tools
Tohoku University
 
第3回デジタル理学療法学会のシンポジウム「デジタル理学療法の組織活用:教育・管理・研究を繋ぐ新たな地平」での話題提供
Matsushita Laboratory
 
第3回デジタル理学療法研究会学術大会シンポジウム「デジタル理学療法の組織活用:教育・管理・研究を繋ぐ新たな地平」の講演資料.
Matsushita Laboratory
 
SIG-AUDIO 2025 Vol.02 オンラインセミナー 「GDC2025 オーディオ報告会」SIG-Audio_GDC2024_報告会資料_増野さ...
IGDA Japan SIG-Audio
 
go tool と Minimal Version Selection アルゴリズム
Keisuke Ishigami
 
SIG-AUDIO 2025 Vol.02 オンラインセミナー 「GDC2025 オーディオ報告会」SIG-Audio_GDC2025_報告会資料_渡辺さ...
IGDA Japan SIG-Audio
 
安尾 萌, 松下 光範. 環境馴致を計量可能にするための試み,人工知能学会第4回仕掛学研究会, 2018.
Matsushita Laboratory
 
マルチAIエージェントの産業界での実践に向けたオープンソース活動の展望 - Japan Regional User Group (RUG) Meet-Up
Kosaku Kimura
 
新卒・中途採用者向け採用ピッチ資料2025年7月版(20250702).pptx
Official74
 
漁船に搭載されている電子装備と漁法について_VRC海洋学研究会_海のLT会発表資料
Yuuitirou528 default
 
API認可を支えるKeycloakの基本と設計の考え方 ~ OAuth/OIDCによるAPI保護のベストプラクティス ~
Hitachi, Ltd. OSS Solution Center.
 
安尾 萌, 森野 穣, 松下 光範. 災害情報収集におけるSNSのメディア特性に関する一検討, 人工知能学会第30回インタラクティブ情報アクセスと可視化マ...
Matsushita Laboratory
 
Ad

GraphX Advent Calendar Day15

  • 1. GraphX Advent Calendar Day15 最短経路探索 1 4 1 • この例だと、頂点1から頂点3へのルートは3つあ るが、最短は1→2→3の距離2。 2 5 3
  • 2. GraphX Advent Calendar Day15 最短経路探索 1 4 2 • 各頂点にリストを持たせる • リストの1行目として自分のIDとその距離0を持つ 2 5 3 事前準備 {(1,0)} {(4,0)} {(2,0)} {(3,0)} {(5,0)}
  • 3. GraphX Advent Calendar Day15 最短経路探索 1 4 3 • 自分が持つリストを接続先頂点に送信する 2 5 3 Iteration1 {(1,0)} {(4,0)} {(2,0)} {(3,0)} {(5,0)} {(1,0)} {(2,0)} {(5,0)} {(4,0)} {(4,0)}
  • 4. GraphX Advent Calendar Day15 最短経路探索 1 4 4 • 受信したリストの距離を1加算しつつ、そのリスト を自分のリストにマージする 2 5 3 Iteration1 {(1,0)} {(4,0),(1,1)} {(2,0),(1,1),(4,1)} {(3,0),(2,1),(5,1)} {(5,0),(4,1)}
  • 5. GraphX Advent Calendar Day15 最短経路探索 1 4 5 • 自分が持つリストを接続先頂点に送る。
 (前のIterationでメッセージを受信した頂点だけが 送信 = Pregel の仕様) 2 5 3 Iteration2 {(1,0)} {(4,0),(1,1)} {(2,0),(1,1),(4,1)} {(3,0),(2,1),(5,1)} {(5,0),(4,1)} {(2,0),(1,1),(4,1)} {(4,0),(1,1)} {(4,0),(1,1)} {(5,0),(4,1)}
  • 6. GraphX Advent Calendar Day15 最短経路探索 1 4 6 • 受信したリストの距離を1加算しつつ、そのリストを自分の リストにマージする • 既にリストにその頂点がある場合は短い方の距離を選択する 2 5 3 Iteration2 {(1,0)} {(4,0),(1,1)} {(2,0),(1,1),(4,1)} {(3,0),(1,2),(2,1),(4,2),(5,1)} {(5,0),(4,1),(1,2)}
  • 7. GraphX Advent Calendar Day15 最短経路探索 1 4 7 • 自分のリストを接続先頂点に送信する 2 5 3 Iteration3 {(1,0)} {(4,0),(1,1)} {(2,0),(1,1),(4,1)} {(3,0),(1,2),(2,1),(4,2),(5,1)} {(5,0),(4,1),(1,2)} {(2,0),(1,1),(4,1)} {(5,0),(4,1),(1,2)}
  • 8. GraphX Advent Calendar Day15 最短経路探索 1 4 8 • 受信したリストの距離を1加算しつつ、そのリストを自分の リストにマージする • 既にリストにその頂点がある場合は短い方の距離を選択する 2 5 3 Iteration3 {(1,0)} {(4,0),(1,1)} {(2,0),(1,1),(4,1)} {(3,0),(1,2),(2,1),(4,2),(5,1)} {(5,0),(4,1),(1,2)}
  • 9. GraphX Advent Calendar Day15 最短経路探索 1 4 9 • 頂点3から見た、頂点1との距離が2になっている ことを確認 2 5 3 結果 {(1,0)} {(4,0),(1,1)} {(2,0),(1,1),(4,1)} {(3,0),(1,2),(2,1),(4,2),(5,1)} {(5,0),(4,1),(1,2)}