GraphX Advent Calendar Day14
友達の輪を探せ
1
6
4
1
• 頂点1にとって4ステップ以内の友達の輪は2種類
• この中に含まれる頂点を抽出するロジック
2
8
7
5
3
0
GraphX Advent Calendar Day14
友達の輪を探せ
1
6
4
2
• 各頂点に空のリストを持たせる
2
8
7
5
3
0
事前準備
{ }
{ }
{ }
{ }
{ }
{ }
{ }
{ }
{ }
GraphX Advent Calendar Day14
友達の輪を探せ
1
6
4
3
• 各頂点が自分のIDを自分のリストに格納して接続先
に送信する
2
8
7
5
3
0
Iteration1
{ }
{ }
{ }
{ }
{ }
{ }
{ }
{ }
{ }
{0}
{1}
{2}
{2}
{3}
{4}
{6}
{5}
{5}
{7}
{4}
GraphX Advent Calendar Day14
友達の輪を探せ
1
6
4
4
• 受信したリストを自分のリストに合体させる
2
8
7
5
3
0
Iteration1
{ }
{0,4,6}
{1}
{2}
{5}
{2,3}
{4}
{5}
{7}
GraphX Advent Calendar Day14
友達の輪を探せ
1
6
4
5
• 各頂点が自分のIDを自分のリストに格納して接続先
に送信する
2
8
7
5
3
0
Iteration2
{ }
{0,4,6}
{1}
{2}
{5}
{2,3}
{4}
{5}
{7}
{0}
{0,1,4,6}
{1,2}
{1,2}
{2,3}
{2,3,4}
{5,6}
{4,5}
{4,5}
{5,7}
{2,3,4}
GraphX Advent Calendar Day14
友達の輪を探せ
1
6
4
6
• 受信したリストを自分のリストに合体させる
2
8
7
5
3
0
Iteration2
{ }
{0,2,3,4,5,6}
{0,1,4,6}
{1,2}
{4,5}
{1,2,3}
{2,3,4}
{4,5}
{5,7}
GraphX Advent Calendar Day14
友達の輪を探せ
1
6
4
7
• 各頂点が自分のIDを自分のリストに格納して接続先
に送信する
2
8
7
5
3
0
Iteration3
{ }
{0}
{0,1,2,3,4,5,6}
{1,2,4,6}
{1,2,4,6}
{1,2,3}
{1,2,3,4}
{4,5,6}
{2,3,4,5}
{2,3,4,5}
{4,5,7}
{1,2,3,4}
{0,2,3,4,5,6}
{0,1,4,6}
{1,2}
{4,5}
{1,2,3}
{2,3,4}
{4,5}
{5,7}
GraphX Advent Calendar Day14
友達の輪を探せ
1
6
4
8
• 受信したリストを自分のリストに合体させる
2
8
7
5
3
0
Iteration3
{ }
{0,1,2,3,4,5,6}
{0,1,2,3,4,5,6}
{0,1,2,4,6}
{2,3,4,5}
{0,1,2,3,4,6}
{1,2,3,4}
{2,3,4,5}
{4,5,7}
GraphX Advent Calendar Day14
友達の輪を探せ
1
6
4
9
• 各頂点が自分のIDを自分のリストに格納して接続先
に送信する
2
8
7
5
3
0
Iteration4
{ }
{0}
{0,1,2,3,4,5,6}
{0,1,2,3,4,5,6}
{0,1,2,3,4,5,6}
{0,1,2,3,4,6}
{0,1,2,3,4,6}
{2,3,4,5,6}
{1,2,3,4,5}
{1,2,3,4,5}
{2,3,4,5,7}
{1,2,3,4}
{0,1,2,3,4,5,6}
{0,1,2,3,4,5,6}
{0,1,2,4,6}
{2,3,4,5}
{0,1,2,3,4,6}
{1,2,3,4}
{2,3,4,5}
{4,5,7}
GraphX Advent Calendar Day14
友達の輪を探せ
1
6
4
10
• 受信したリストを自分のリストに合体させる
2
8
7
5
3
0
Iteration4
{ }
{0,1,2,3,4,5,6}
{0,1,2,3,4,5,6}
{0,1,2,3,4,5,6}
{1,2,3,4,5}
{0,1,2,3,4,5,6}
{0,1,2,3,4,6}
{1,2,3,4,5}
{2,3,4,5,7}
GraphX Advent Calendar Day14
友達の輪を探せ
1
6
4
11
• 自分のリストに自分のIDが入っている頂点を抽出
2
8
7
5
3
0
事後処理
{ }
{0,1,2,3,4,5,6}
{0,1,2,3,4,5,6}
{0,1,2,3,4,5,6}
{1,2,3,4,5}
{0,1,2,3,4,5,6}
{0,1,2,3,4,6}
{1,2,3,4,5}
{2,3,4,5,7}

GraphX Advent Calendar Day 14

  • 1.
    GraphX Advent CalendarDay14 友達の輪を探せ 1 6 4 1 • 頂点1にとって4ステップ以内の友達の輪は2種類 • この中に含まれる頂点を抽出するロジック 2 8 7 5 3 0
  • 2.
    GraphX Advent CalendarDay14 友達の輪を探せ 1 6 4 2 • 各頂点に空のリストを持たせる 2 8 7 5 3 0 事前準備 { } { } { } { } { } { } { } { } { }
  • 3.
    GraphX Advent CalendarDay14 友達の輪を探せ 1 6 4 3 • 各頂点が自分のIDを自分のリストに格納して接続先 に送信する 2 8 7 5 3 0 Iteration1 { } { } { } { } { } { } { } { } { } {0} {1} {2} {2} {3} {4} {6} {5} {5} {7} {4}
  • 4.
    GraphX Advent CalendarDay14 友達の輪を探せ 1 6 4 4 • 受信したリストを自分のリストに合体させる 2 8 7 5 3 0 Iteration1 { } {0,4,6} {1} {2} {5} {2,3} {4} {5} {7}
  • 5.
    GraphX Advent CalendarDay14 友達の輪を探せ 1 6 4 5 • 各頂点が自分のIDを自分のリストに格納して接続先 に送信する 2 8 7 5 3 0 Iteration2 { } {0,4,6} {1} {2} {5} {2,3} {4} {5} {7} {0} {0,1,4,6} {1,2} {1,2} {2,3} {2,3,4} {5,6} {4,5} {4,5} {5,7} {2,3,4}
  • 6.
    GraphX Advent CalendarDay14 友達の輪を探せ 1 6 4 6 • 受信したリストを自分のリストに合体させる 2 8 7 5 3 0 Iteration2 { } {0,2,3,4,5,6} {0,1,4,6} {1,2} {4,5} {1,2,3} {2,3,4} {4,5} {5,7}
  • 7.
    GraphX Advent CalendarDay14 友達の輪を探せ 1 6 4 7 • 各頂点が自分のIDを自分のリストに格納して接続先 に送信する 2 8 7 5 3 0 Iteration3 { } {0} {0,1,2,3,4,5,6} {1,2,4,6} {1,2,4,6} {1,2,3} {1,2,3,4} {4,5,6} {2,3,4,5} {2,3,4,5} {4,5,7} {1,2,3,4} {0,2,3,4,5,6} {0,1,4,6} {1,2} {4,5} {1,2,3} {2,3,4} {4,5} {5,7}
  • 8.
    GraphX Advent CalendarDay14 友達の輪を探せ 1 6 4 8 • 受信したリストを自分のリストに合体させる 2 8 7 5 3 0 Iteration3 { } {0,1,2,3,4,5,6} {0,1,2,3,4,5,6} {0,1,2,4,6} {2,3,4,5} {0,1,2,3,4,6} {1,2,3,4} {2,3,4,5} {4,5,7}
  • 9.
    GraphX Advent CalendarDay14 友達の輪を探せ 1 6 4 9 • 各頂点が自分のIDを自分のリストに格納して接続先 に送信する 2 8 7 5 3 0 Iteration4 { } {0} {0,1,2,3,4,5,6} {0,1,2,3,4,5,6} {0,1,2,3,4,5,6} {0,1,2,3,4,6} {0,1,2,3,4,6} {2,3,4,5,6} {1,2,3,4,5} {1,2,3,4,5} {2,3,4,5,7} {1,2,3,4} {0,1,2,3,4,5,6} {0,1,2,3,4,5,6} {0,1,2,4,6} {2,3,4,5} {0,1,2,3,4,6} {1,2,3,4} {2,3,4,5} {4,5,7}
  • 10.
    GraphX Advent CalendarDay14 友達の輪を探せ 1 6 4 10 • 受信したリストを自分のリストに合体させる 2 8 7 5 3 0 Iteration4 { } {0,1,2,3,4,5,6} {0,1,2,3,4,5,6} {0,1,2,3,4,5,6} {1,2,3,4,5} {0,1,2,3,4,5,6} {0,1,2,3,4,6} {1,2,3,4,5} {2,3,4,5,7}
  • 11.
    GraphX Advent CalendarDay14 友達の輪を探せ 1 6 4 11 • 自分のリストに自分のIDが入っている頂点を抽出 2 8 7 5 3 0 事後処理 { } {0,1,2,3,4,5,6} {0,1,2,3,4,5,6} {0,1,2,3,4,5,6} {1,2,3,4,5} {0,1,2,3,4,5,6} {0,1,2,3,4,6} {1,2,3,4,5} {2,3,4,5,7}