Successfully reported this slideshow.
Upcoming SlideShare
×

# Sub-Graph Centric Single Source Shortest Path

1,602 views

Published on

Published in: Education
• Full Name
Comment goes here.

Are you sure you want to Yes No

### Sub-Graph Centric Single Source Shortest Path

1. 1. *
2. 2. * *Vertex centric SSSP *Sub-graph Centric SSSP *Performance improvements
3. 3. * A C D B F G E H1 1 4 3 1 2 2 2 1 2 1 Source : A A B C D E F G H 0 INF INF INF INF INF INF INF 0 3 1 4 INF INF INF INF 0 3 1 2 4 3 INF INF 0 3 1 2 4 3 5 5 1 Assume no –ve edges
4. 4. s d v At each superstep… … vertex receives messages which contain the current known shortest path through a neighbor d0 d1 d s d t ws wt if min(d0,d1) < dv, it sends messages to its neighbors and updates its new minimum distance from s else, it votes to halt d0 + ws d0 + wt After execution, each vertex’s value is its minimum distance from s
5. 5. * *Computation time bounded by number of super steps take for computation * super step time * After ith super-step all vertices whose shortest path consist of i-1 number of edges will get the final value. *Let d be the longest shortest path in the graph (assume unit edge weights) *Number of super-steps = O(d) A C D B F G E H1 1 4 3 1 2 2 2 1 2 1
6. 6. * *Partition graph into set of connected components – sub-graphs *Terms : *Sub-graph : Partition *Remote vertex : Let v in SGj and let  edge (u,v) s.t. v in SGi. Then for SGi vertex v is a remote vertex. *Remote edge : (u,v) s.t. u in SGi v in SGj and SGi≠ SGj SG1 SG2 SG3
7. 7. * A C D B F G E H1 1 4 3 1 2 2 2 1 2 1 S Q=V-S Iterative section
8. 8. At each super-step… • Each neighbor vertex in sub-graph with incoming edges will receives messages which contain the current known shortest path through a neighbor • Set that value as the vertex value if its less than current value • Add that vertex in open set (V-S) with the new value • Run Iterative section of Dijkstras locally and calculate new Shortest paths. • Sent new shortest path though this sub- graph to its remote vertices d0 d1 d0 d1 Input edge Input edge output edge output edge S V-S
9. 9. * *Assume sub-graph is a vertex s d v At each superstep… … • Vertex receives messages which contain the current known shortest path through a neighbor • Vertex sends its current known shortest path through it to its neighbors if they have changed d0 d1 d s d t ws wt d0 + ws d0 + wt
10. 10. * d0 d1 Input edge Input edge output edge output edge S V-S • Set incoming values as the vertex value if its less than current value • Add that vertex in open set (V-S) with the new value • Run Iterative section of Dijkstras locally and calculate new Shortest paths (Same as assuming virtual source and running Dijkstras) • Sent new shortest path though this sub- graph to its remote vertices if changed • Vertex receives messages which contain the current known shortest path through a neighbor • Vertex sends its current known shortest path through it to its neighbors if they have changed Virtual source *Assume sub-graph is a vertex
11. 11. * *Computation time bounded by number of super steps take for computation * super step time *Super-step time for super step i= O(e*log(v)) (e ,v = edges and vertices of largest updating sub-graph at super-step i) * After ith super-step all sub-graphs whose vertices shortest path consist of i-1 number of remote edges will get the final value. *Let d be the longest shortest path in the graph where sub- graphs are vertices (assuming unit edge weights) *Number of super-steps = O(d)
12. 12. * 0 200 400 600 800 1000 1200 1400 RN - CA TR LJ Giraph GoFFish Runtime comparison • RN-CA: Road network • TR : Trace route map • LJ : Live Journal graph
13. 13. * *Run time = # super-steps x super-step time *Vertex centric – negligible vertex compute time *Sub-graph centric – sub-graph compute time depend on size of the sub-graph (# edges, # vertices) *Out performs vertex centric for sparse graphs with large diameter