130 likes | 310 Views
Author: Fang Wei SIGMOD 2010 Presentation: Dr. Greg Speegle. TEDI: Efficient Shortest Path Query Answering on Graphs. Shortest Path Problem. Graph G=(V,E) V = set of vertices E = set of edges (u,v) in E, u, v in V Path from u to v Sequence of edges Shortest Path Fewest edges in path
E N D
Author: Fang Wei SIGMOD 2010 Presentation: Dr. Greg Speegle TEDI: Efficient Shortest Path Query Answering on Graphs
Shortest Path Problem • Graph G=(V,E) • V = set of vertices • E = set of edges (u,v) in E, u, v in V • Path from u to v • Sequence of edges • Shortest Path • Fewest edges in path • Unweighted
Issues of Shortest Path Solutions • Algorithms require O(|V|2) time • Transitive closure requires |V|2 space • Challenge: Do better!
TEDI • TreEDecomposition based Indexing • Construct representation (tree decomposition) • Algorithms on representation • Equivalent results • More efficient • Index creation flexible
Tree Decomposition • Convert graph G into tree T • Nodes in T • Labeled (integers in paper) • Subset of V • Properties: • All vertices in some node • All edges in some node • Connectedness condition
Connectedness Condition • Consider a vertex v • Consider nodes with v • Such nodes must form a subtree (i.e., be connected)
Tree Paths • Tree vertex • If v is in Tree node i, {v,i}. • Inner Edges • (u,v) in E • Both u and v in i (some such i must exist) • ({u,i},{v,i}) is inner edge • ({v,i},{u,i}) also inner edge • Multiple i possible
Tree Paths (cont'd) • Inter Edges • For v in V, exists set of nodes with v • If edge between nodes i and j • ({v,i},{v,j}) is inter edge • Tree Paths • Inner and Inter Edges • “Up and down” tree • Represent as sequence of tree edges
Path Equivalence • There exists a path in G from u to v, iff there exists a tree path from {u,i} to {v,j} • Note: No restriction on {u,i} and {v,j} • Tree path to path easy • Inner Edges are path • Exists tree node with every edge • Path to tree path is inductive proof (see paper)
Shortest Path • Assume sdist(u,w) computed for all w seen so far • Assume sdist(t,z) computed for all t,z in parent • Compute sdist(u,z) as min(sdist(u,t)+sdist(t,z)) for all t in both parent and child, for all z only in parent • Union results with previous computations
Algorithm Shortest Path Lookup • Let u.r (v.r) be root of tree for u (v) • Find lca(u.r,v.r) • Compute sdist for all points between u.r and lca and v.r and lca • Compute sdist(u,v) at lca • Shortest path is concat of shortest paths to lca
Conclusion • Faster than existing algorithms • Smaller index creation • Scales to large graphs • Best current solution