SlideShare a Scribd company logo
1 of 9
Download to read offline
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

「GraphDB徹底入門」〜構造や仕組み理解から使いどころ・種々のGraphDBの比較まで幅広く〜
「GraphDB徹底入門」〜構造や仕組み理解から使いどころ・種々のGraphDBの比較まで幅広く〜「GraphDB徹底入門」〜構造や仕組み理解から使いどころ・種々のGraphDBの比較まで幅広く〜
「GraphDB徹底入門」〜構造や仕組み理解から使いどころ・種々のGraphDBの比較まで幅広く〜
Takahiro Inoue
 

Viewers also liked (9)

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

More from 鉄平 土佐

Asakusa Framework 勉強会 2014 夏
Asakusa Framework 勉強会 2014 夏Asakusa Framework 勉強会 2014 夏
Asakusa Framework 勉強会 2014 夏
鉄平 土佐
 
Asakusa Framework はじめの一歩 ( ver 0.6.2 )
Asakusa Framework はじめの一歩 ( ver 0.6.2 )Asakusa Framework はじめの一歩 ( ver 0.6.2 )
Asakusa Framework はじめの一歩 ( ver 0.6.2 )
鉄平 土佐
 
Asakusa fw勉強会2014冬
Asakusa fw勉強会2014冬Asakusa fw勉強会2014冬
Asakusa fw勉強会2014冬
鉄平 土佐
 
Scala稟議の通し方(公開版)
Scala稟議の通し方(公開版)Scala稟議の通し方(公開版)
Scala稟議の通し方(公開版)
鉄平 土佐
 

More from 鉄平 土佐 (19)

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

Recently uploaded

Recently uploaded (11)

Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 

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)}