Αποτίμηση Ερωτημάτων σε Συλλογές Διαδρομών (Evaluating Queries on Route Collections) Παναγιώτης Μπούρος Ενδιάμεση Κρίση Επιβλέπων: Ι. Βασιλείου.

Slides:



Advertisements
Similar presentations
Reachability Querying: An Independent Permutation Labeling Approach (published in VLDB 2014) Presenter: WEI, Hao.
Advertisements

Evaluating “find a path” reachability queries P. Bouros 1, T. Dalamagas 2, S.Skiadopoulos 3, T. Sellis 1,2 1 National Technical University of Athens 2.
Pete Bohman Adam Kunk.  Introduction  Related Work  System Overview  Indexing Scheme  Ranking  Evaluation  Conclusion.
5-1 Chapter 5 Tree Searching Strategies. 5-2 Satisfiability problem Tree representation of 8 assignments. If there are n variables x 1, x 2, …,x n, then.
Graphs Chapter 12. Chapter Objectives  To become familiar with graph terminology and the different types of graphs  To study a Graph ADT and different.
Dynamic Pickup and Delivery with Transfers* P. Bouros 1, D. Sacharidis 2, T. Dalamagas 2, T. Sellis 1,2 1 NTUA, 2 IMIS – RC “Athena” * To appear in SSTD’11.
Evaluating Path Queries over Route Collections Panagiotis Bouros NTUA, Greece (supervised by Y. Vassiliou)
Stabbing the Sky: Efficient Skyline Computation over Sliding Windows COMP9314 Lecture Notes.
1 Minimum-energy broadcasting in multi-hop wireless networks using a single broadcast tree Department of Computer Science and Information Engineering National.
Graph & BFS.
Evaluating Reachability Queries over Path Collections* P. Bouros 1, S. Skiadopoulos 2, T. Dalamagas 3, D. Sacharidis 3, T. Sellis 1,3 1 National Technical.
EE 4272Spring, 2003 Chapter 10 Packet Switching Packet Switching Principles  Switching Techniques  Packet Size  Comparison of Circuit Switching & Packet.
Evaluating Reachability Queries over Path Collections P. Bouros 1, S. Skiadopoulos 2, T. Dalamagas 3, D. Sacharidis 3, T. Sellis 1,3 1 National Technical.
CS Lecture 9 Storeing and Querying Large Web Graphs.
Nyhoff, ADTs, Data Structures and Problem Solving with C++, Second Edition, © 2005 Pearson Education, Inc. All rights reserved Graphs.
CS728 Lecture 16 Web indexes II. Last Time Indexes for answering text queries –given term produce all URLs containing –Compact representations for postings.
Graph & BFS Lecture 22 COMP171 Fall Graph & BFS / Slide 2 Graphs * Extremely useful tool in modeling problems * Consist of: n Vertices n Edges D.
Graphs Chapter 12. Chapter 12: Graphs2 Chapter Objectives To become familiar with graph terminology and the different types of graphs To study a Graph.
Spring 2010CS 2251 Graphs Chapter 10. Spring 2010CS 2252 Chapter Objectives To become familiar with graph terminology and the different types of graphs.
Graphs & Graph Algorithms 2 Nelson Padua-Perez Bill Pugh Department of Computer Science University of Maryland, College Park.
Blind Search-Part 2 Ref: Chapter 2. Search Trees The search for a solution can be described by a tree - each node represents one state. The path from.
Using Search in Problem Solving
1 Tree Searching Strategies. 2 The procedure of solving many problems may be represented by trees. Therefore the solving of these problems becomes a tree.
Fall 2007CS 2251 Graphs Chapter 12. Fall 2007CS 2252 Chapter Objectives To become familiar with graph terminology and the different types of graphs To.
Trip Planning Queries F. Li, D. Cheng, M. Hadjieleftheriou, G. Kollios, S.-H. Teng Boston University.
Solving problems by searching
Graphs & Graph Algorithms 2 Fawzi Emad Chau-Wen Tseng Department of Computer Science University of Maryland, College Park.
Evaluating Queries over Route Collections Panagiotis Bouros, PhD defense.
Overview of Search Engines
Distributed Quality-of-Service Routing of Best Constrained Shortest Paths. Abdelhamid MELLOUK, Said HOCEINI, Farid BAGUENINE, Mustapha CHEURFA Computers.
Cost-based Optimization of Graph Queries Silke Trißl Humboldt-Universität zu Berlin Knowledge Management in Bioinformatics IDAR 2007.
09/07/2004Peer-to-Peer Systems in Mobile Ad-hoc Networks 1 Lookup Service for Peer-to-Peer Systems in Mobile Ad-hoc Networks M. Tech Project Presentation.
Chapter 9 – Graphs A graph G=(V,E) – vertices and edges
MA/CSSE 473 Day 12 Insertion Sort quick review DFS, BFS Topological Sort.
1 On Querying Historical Evolving Graph Sequences Chenghui Ren $, Eric Lo *, Ben Kao $, Xinjie Zhu $, Reynold Cheng $ $ The University of Hong Kong $ {chren,
A computational study of protein folding pathways Reducing the computational complexity of the folding process using the building block folding model.
WAES 3308 Numerical Methods for AI
Algorithm Course Dr. Aref Rashad February Algorithms Course..... Dr. Aref Rashad Part: 5 Graph Algorithms.
On Graph Query Optimization in Large Networks Alice Leung ICS 624 4/14/2011.
The Application of The Improved Hybrid Ant Colony Algorithm in Vehicle Routing Optimization Problem International Conference on Future Computer and Communication,
Path-Hop: efficiently indexing large graphs for reachability queries Tylor Cai and C.K. Poon CityU of Hong Kong.
Zibin Zheng DR 2 : Dynamic Request Routing for Tolerating Latency Variability in Cloud Applications CLOUD 2013 Jieming Zhu, Zibin.
COMP261 Lecture 6 Dijkstra’s Algorithm. Connectedness Is this graph connected or not? A Z FF C M N B Y BB S P DDGG AA R F G J L EE CC Q O V D T H W E.
Efficient Processing of Top-k Spatial Preference Queries
Union-find Algorithm Presented by Michael Cassarino.
L3-Network Algorithms L3 – Network Algorithms NGEN06(TEK230) – Algorithms in Geographical Information Systems by: Irene Rangel, updated Nov by Abdulghani.
1 Knowledge Discovery from Transportation Network Data Paper Review Jiang, W., Vaidya, J., Balaporia, Z., Clifton, C., and Banich, B. Knowledge Discovery.
Trajectory Data Mining Dr. Yu Zheng Lead Researcher, Microsoft Research Chair Professor at Shanghai Jiao Tong University Editor-in-Chief of ACM Trans.
Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley. Ver Chapter 13: Graphs Data Abstraction & Problem Solving with C++
Ricochet Robots Mitch Powell Daniel Tilgner. Abstract Ricochet robots is a board game created in Germany in A player is given 30 seconds to find.
1 Directed Graphs Chapter 8. 2 Objectives You will be able to: Say what a directed graph is. Describe two ways to represent a directed graph: Adjacency.
Graphs Chapter 12. Chapter 12: Graphs2 Chapter Objectives To become familiar with graph terminology and the different types of graphs To study a Graph.
© 2006 Pearson Addison-Wesley. All rights reserved 14 A-1 Chapter 14 Graphs.
Pete Bohman Adam Kunk.  Introduction  Related Work  System Overview  Indexing Scheme  Ranking  Evaluation  Conclusion.
Graph Indexing From managing and mining graph data.
Efficient Semantic Web Service Discovery in Centralized and P2P Environments Dimitrios Skoutas 1,2 Dimitris Sacharidis.
Main Index Contents 11 Main Index Contents Graph Categories Graph Categories Example of Digraph Example of Digraph Connectedness of Digraph Connectedness.
Biointelligence Lab School of Computer Sci. & Eng. Seoul National University Artificial Intelligence Chapter 8 Uninformed Search.
1 GRAPHS – Definitions A graph G = (V, E) consists of –a set of vertices, V, and –a set of edges, E, where each edge is a pair (v,w) s.t. v,w  V Vertices.
Ning Jin, Wei Wang ICDE 2011 LTS: Discriminative Subgraph Mining by Learning from Search History.
Dynamic Pickup and Delivery with Transfers
An Efficient Algorithm for Incremental Update of Concept space
T-Share: A Large-Scale Dynamic Taxi Ridesharing Service
Indexing Structures for Files and Physical Database Design
Yi Wu 9/17/2018.
Graphs Chapter 13.
Finding Fastest Paths on A Road Network with Speed Patterns
COMPUTER NETWORKS CS610 Lecture-16 Hammad Khalid Khan.
Efficient Processing of Top-k Spatial Preference Queries
Donghui Zhang, Tian Xia Northeastern University
Presentation transcript:

Αποτίμηση Ερωτημάτων σε Συλλογές Διαδρομών (Evaluating Queries on Route Collections) Παναγιώτης Μπούρος Ενδιάμεση Κρίση Επιβλέπων: Ι. Βασιλείου

Outline Introduction – Route collections, queries & frequent updates Existing work Proposed framework Experiments Conclusions

Examples of route collections People visiting Athens – Use e-devices to track their sightseeing – Create routes through interesting places – Upload/propose routes to Web sites like ShareMyRoutes.com Query such route collection: – Find a sequence of interesting places from Omonia Square to Cathedral – Find a sequence of interesting places from Academy to Museum of Acropolis that passes through Zappeion Answers may involve nodes from more than one route

Examples of route collections People visiting Athens – Use e-devices to track their sightseeing – Create routes through interesting places – Upload/propose routes to Web sites like ShareMyRoutes.com Querying such route collection: – Find a sequence of interesting places from Omonia Square to Cathedral – Find a sequence of interesting places from Academy to Museum of Acropolis that passes through Zappeion Answers may involve nodes from more than one route

Examples of route collections People visiting Athens – Use e-devices to track their sightseeing – Create routes through interesting places – Upload/propose routes to Web sites like ShareMyRoutes.com Querying such route collection: – Find a sequence of interesting places from Omonia Square to Cathedral – Find a sequence of interesting places from Academy to Museum of Acropolis that passes through Zappeion Answers may involve nodes from more than one routes

Examples of route collections Courier company offering same day pickup and delivery services Route collection created from previous day – Each route performed by a vehicle – Each node in routes is a point for picking- up, delivering or just waiting – Each node in a route has time interval I Querying such collection: – Ad-hoc customer requests Pick-up parcel from Academy within IS Deliver parcel at Zappeion within IT Serve ad-hoc request – Not add new route – Exploit one or more existing routes, pass parcel among vehicles

Examples of route collections Courier company offering same day pickup and delivery services Route collection created from previous day – Each route performed by a vehicle – Each node in routes is a point for picking- up, delivering or just waiting – Each node in a route has time interval I Querying such collection: – Ad-hoc customer requests Pick-up parcel from Academy within I S Deliver parcel at Zappeion within I T Serve ad-hoc request – Not add new route – Exploit one or more existing routes, pass parcel among vehicles

Examples of route collections Courier company offering same day pickup and delivery services Route collection created from previous day – Each route performed by a vehicle – Each node in routes is a point for picking- up, delivering or just waiting – Each node in a route has time interval I Querying such collection: – Ad-hoc customer requests Pick-up parcel from Academy within I S Deliver parcel at Zappeion within I T Serve ad-hoc request – Not add new route – Exploit one or more existing routes, pass parcel among vehicles

Examples of route collections Courier company offering same day pickup and delivery services Route collection created from previous day – Each route performed by a vehicle – Each node in routes is a point for picking- up, delivering or just waiting – Each node in a route has time interval I Querying such collection: – Ad-hoc customer requests Pick-up parcel from Academy within I S Deliver parcel at Zappeion within I T Serve ad-hoc request – Not add new route – Exploit one or more existing routes, pass parcel among vehicles Passing parcel possible

Examples of route collections Courier company offering same day pickup and delivery services Route collection created from previous day – Each route performed by a vehicle – Each node in routes is a point for picking- up, delivering or just waiting – Each node in a route has time interval I Querying such collection: – Ad-hoc customer requests Pick-up parcel from Academy within I S Deliver parcel at Zappeion within I T Serve ad-hoc request – Not add new route – Exploit one or more existing routes, pass parcel among vehicles Related to dynamic pickup and delivery problem Passing parcel impossible

What’s all about… Consider route collections – Very large, stored in secondary storage – Frequently updated with new routes E.g. new routes are proposed or new vehicle routes are included Evaluate queries that identify paths – Sequences of distinct nodes from one or more routes – In the latter we use links, i.e., shared nodes – PATH(S,T) Find a sequence of interesting places from Omonia Square to Cathedral – FLSP(S,I S,T,I T ) Moving cost m inside routes Changing cost c between routes via links Find the sequence of points to pick-up parcel from Cathedral and deliver it to Zappeion that: – Abides with the temporal constraints imposed by time intervals – Minimizes primarily the changing cost and secondarily the moving cost

What’s all about… Consider route collections – Very large, stored in secondary storage – Frequently updated with new routes E.g. new routes are proposed or new vehicle routes are included Evaluate queries that identify paths – Sequences of distinct nodes from one or more routes – In the latter we use links, i.e., shared nodes – PATH(S,T) Find a sequence of interesting places from Omonia Square to Cathedral – FLSP(S,I S,T,I T ) Moving cost m inside routes Changing cost c between routes via links Find the sequence of points to pick-up parcel from Cathedral and deliver it to Zappeion that: – Abides with the temporal constraints imposed by time intervals – Minimizes primarily the changing cost and secondarily the moving cost

What’s all about… Consider route collections – Very large, stored in secondary storage – Frequently updated with new routes E.g. new routes are proposed or new vehicle routes are included Evaluate queries that identify paths – Sequences of distinct nodes from one or more routes – In the latter we use links, i.e., shared nodes – PATH(S,T) Find a sequence of interesting places from Omonia Square to Cathedral – FLSP(S,I S,T,I T ) Moving cost m inside routes Changing cost c between routes via links Find the sequence of points to pick-up parcel from Cathedral and deliver it to Zappeion that: – Abides with the temporal constraints imposed by time intervals – Minimizes primarily the changing cost and secondarily the moving cost

What’s all about… Consider route collections – Very large, stored in secondary storage – Frequently updated with new routes E.g. new routes are proposed or new vehicle routes are included Evaluate queries that identify paths – Sequences of distinct nodes from one or more routes – In the latter we use links, i.e., shared nodes – PATH(S,T) Find a sequence of interesting places from Omonia Square to Cathedral – FJP(S,I S,T,I T ) Moving cost m inside routes Changing cost c between routes via links Find the sequence of points to pick-up parcel from Cathedral and deliver it to Zappeion that: – Abides with the temporal constraints imposed by time intervals – Minimizes primarily the changing cost and secondarily the moving cost

Outline Introduction Existing work – Graph-based solutions for PATH queries FJP queries Proposed framework Experiments Conclusions

Existing work Convert route collection to a graph – G PATH for PATH queries – G FJP for FJP queries Answer queries on graph following one of the following paradigms: – Direct evaluation Low storage and maintenance cost Slow query evaluation – Preprocessing Fast query evaluation High maintenance cost

Evaluating PATH queries Strongly related with REACH query – Exists path between two nodes? Direct evaluation – Search algorithms Depth-first or breadth-first search Preprocessing G PATH – Directly exploiting transitive closure is not feasible – Labeling and compression schemes Mainly focus on REACH Some transform graph to DAG 2-hop, HOPI, 3-hop, Dual Labeling, Interval labeling, Path Cover, GRIPP etc r1r1 (A,B,C,D,J) r2r2 (A,F,D,Z,B,T) r3r3 (Z,L,M) r4r4 (D,Z,B) r5r5 (A,F,K)

Evaluating FJP queries Shortest path on G FJP Direct evaluation – Dijkstra, A* Preprocessing – Compression scheme 2-hop, construction cost – Graph embedding + A* Assumes that graph structure does not change r1r1 (A,B,C,D,J) r2r2 (A,F,D,Z,B,T) r3r3 (Z,L,M) r4r4 (D,Z,B) r5r5 (A,F,K)

Outline Introduction Existing work Proposed framework – PATH & FJP queries – Indices, algorithms & methods for handling updates Experiments Conclusions

Proposed framework Evaluate PATH and FJP queries directly on route collections – Route are precomputed answer to queries Our framework involves the following: – A search algorithm Depth-first search for PATH queries Uniform-Cost Search for FJP queries – Indices on route collection for efficiently answering queries Reduce iterations of the search algorithm P-Index, H-Index, L-Index – Methods for handling frequent updates

Indexing route collections P-Index Associates each node of the collection with the routes containing it List routes[n] – – Sorted by route identifier r1r1 (A,B,C) r2r2 (F,N,B,L) r3r3 (T,B,N,M) noderoutes list A B,, C F L M N, T

Indexing route collections P-Index Associates each node of the collection with the routes containing it List routes[n] – – Sorted by route identifier r1r1 (A,B,C) r2r2 (F,N,B,L) r3r3 (T,B,N,M) noderoutes list A B,, C F L M N, T

Indexing route collections H-Index Captures all possible transitions between routes via links – Links are shared nodes List edges[r] – – Sorted by primarily by route identifier r i and then by position o – Each node in r before n can reach every node after n in r i r1r1 (A,B,C) r2r2 (F,N,B,L) r3r3 (T,B,N,M) nodeedges list r1r1, r2r2,, r3r3

Indexing route collections H-Index Captures all possible transitions between routes via links – Links are shared nodes List edges[r] – – Sorted by primarily by route identifier r i and then by position o – Each node in r before n can reach every node after n in r i r1r1 (A,B,C) r2r2 (F,N,B,L) r3r3 (T,B,N,M) nodeedges list r1r1, r2r2,, r3r3

Indexing route collections H-Index Captures all possible transitions between routes via links – Links are shared nodes List edges[r] – – Sorted by primarily by route identifier r i and then by position o – Each node in r before n can reach every node after n in r i r1r1 (A,B,C) r2r2 (F,N,B,L) r3r3 (T,B,N,M) nodeedges list r1r1, r2r2,, r3r3

Indexing route collections H-Index Captures all possible transitions between routes via links – Links are shared nodes List edges[r] – – Sorted by primarily by route identifier r i and then by position o – Each node in r before n can reach every node after n in r i nodeedges list r1r1, r2r2,, r3r3 r1r1 (A,B,C) r2r2 (F,N,B,L) r3r3 (T,B,N,M)

Indexing route collections L-Index Disadvantage of H-Index – Large edges lists – High storage and maintenance cost – Notice: each edges list involves a few distinct links Store links contained in each route List links[r] – – Sorted by link identifier n r1r1 (A,B,C) r2r2 (F,N,B,L) r3r3 (T,B,N,M) nodelinks list r1r1 r2r2, r3r3

Indexing route collections L-Index Disadvantage of H-Index – Large edges lists – High storage and maintenance cost – Notice: each edges list involves a few distinct links Store links contained in each route List links[r] – – Sorted by link identifier n r1r1 (A,B,C) r2r2 (F,N,B,L) r3r3 (T,B,N,M) nodelinks list r1r1 r2r2, r3r3

Evaluating PATH queries Basic idea – Traverse nodes similar to depth-first search – Exploit indices on route collection to terminate search P-Index => method pfsP H-Index => method pfsH L-Index => method pfsL – At each iteration: Pop current node n Check termination condition Access routes containing n, routes[n] from P-Index – For each route, push nodes after n in search stack

Evaluating PATH queries cont. pfsP terminates search – When: current node n is contained in a route before target t – How: joins routes[n] with routes[t] & stops after finding a common route entry S S T T

Evaluating PATH queries cont. pfsP terminates search – When: current node n is contained in a route before target t – How: joins routes[n] with routes[t] & stops after finding a common route entry S S T T n n …

Evaluating PATH queries cont. pfsP terminates search – When: current node n is contained in a route before target t – How: joins routes[n] with routes[t] & stops after finding a common route entry S S T T n n r1r1 r2r2 r3r3 routes[n] = {,, } …

Evaluating PATH queries cont. pfsP terminates search – When: current node n is contained in a route before target t – How: joins routes[n] with routes[t] & stops after finding a common route entry S S T T n n r1r1 r2r2 r3r3 routes[n] = {,, } JOIN routes[T] = {…,,…} …

Evaluating PATH queries cont. pfsP terminates search – When: current node n is contained in a route before target t – How: joins routes[n] with routes[t] & stops after finding a common route entry S S T T n n r1r1 r2r2 r3r3 … o 2 < o T routes[n] = {,, } JOIN routes[T] = {…,,…}

Evaluating PATH queries cont. pfsP terminates search – When: current node n is contained in a route before target t – How: joins routes[n] with routes[t] & stops after finding a common route entry S S T T n n … r1r1 r2r2 rkrk … Answer: path from S to n => part of r 2 from n to T

Evaluating PATH queries cont. pfsH terminates search – When: current node n is contained in a route that is connected with a route containing target t – How: for each route r containing n, joins edges[r] with routes[t] & stops after finding a common route entry S S T T

Evaluating PATH queries cont. pfsH terminates search – When: current node n is contained in a route that is connected with a route containing target t – How: for each route r containing n, joins edges[r] with routes[t] & stops after finding a common route entry S S T T n n …

Evaluating PATH queries cont. pfsH terminates search – When: current node n is contained in a route that is connected with a route containing target t – How: for each route r containing n, joins edges[r] with routes[t] & stops after finding a common route entry S S T T n n r1r1 r2r2 r3r3 routes[n] = {,, } …

Evaluating PATH queries cont. pfsH terminates search – When: current node n is contained in a route that is connected with a route containing target t – How: for each route r containing n, joins edges[r] with routes[t] & stops after finding a common route entry S S T T n n r1r1 r2r2 r3r3 … rXrX rYrY X X Y Y routes[n] = {,, }, edges[r 2 ] = {, }

Evaluating PATH queries cont. pfsH terminates search – When: current node n is contained in a route that is connected with a route containing target t – How: for each route r containing n, joins edges[r] with routes[t] & stops after finding a common route entry S S n n r1r1 r2r2 r3r3 … rXrX rYrY X X Y Y edges[r 2 ] = {, } JOIN routes[T] = {…,,…} T T

Evaluating PATH queries cont. pfsH terminates search – When: current node n is contained in a route that is connected with a route containing target t – How: for each route r containing n, joins edges[r] with routes[t] & stops after finding a common route entry S S n n r1r1 r2r2 r3r3 … rXrX rYrY X X Y Y T T o 2 < o Y2 AND o Y < o T edges[r 2 ] = {, } JOIN routes[T] = {…,,…}

Evaluating PATH queries cont. pfsH terminates search – When: current node n is contained in a route that is connected with a route containing target t – How: for each route r containing n, joins edges[r] with routes[t] & stops after finding a common route entry S S n n r1r1 r2r2 r3r3 … rXrX rYrY X X Y Y T T Answer: path from S to n => part of r 2 from n to Y => part of r Y from Y to T

Evaluating PATH queries cont. pfsL – Visits only the links in a route – Constructs list T of the links before target – Terminates search When: current node n is contained in a route before a link of T How: for each route r containing n, joins links[r] with list T & stops after finding a common link entry S S T T

Evaluating PATH queries cont. S S rYrY Y Y T = { } T T pfsL – Visits only the links in a route – Constructs list T of the links before target – Terminates search When: current node n is contained in a route before a link of T How: for each route r containing n, joins links[r] with list T & stops after finding a common link entry

Evaluating PATH queries cont. S S n n … rYrY Y Y T T T = { } pfsL – Visits only the links in a route – Constructs list T of the links before target – Terminates search When: current node n is contained in a route before a link of T How: for each route r containing n, joins links[r] with list T & stops after finding a common link entry

Evaluating PATH queries cont. S S n n … pYpY Y Y routes[n] = {,, }, T = { } T T r1r1 r2r2 rkrk pfsL – Visits only the links in a route – Constructs list T of the links before target – Terminates search When: current node n is contained in a route before a link of T How: for each route r containing n, joins links[r] with list T & stops after finding a common link entry

Evaluating PATH queries cont. S S n n … pYpY Y Y links[r 2 ] = {…, } JOIN T = { } T T r1r1 r2r2 r3r3 pfsL – Visits only the links in a route – Constructs list T of the links before target – Terminates search When: current node n is contained in a route before a link of T How: for each route r containing n, joins links[r] with list T & stops after finding a common link entry

Evaluating PATH queries cont. S S n n r1r1 r2r2 r3r3 … rYrY X X Y Y T T o 2 < o Y2 links[r 2 ] = {…, } JOIN T = { } pfsL – Visits only the links in a route – Constructs list T of the links before target – Terminates search When: current node n is contained in a route before a link of T How: for each route r containing n, joins links[r] with list T & stops after finding a common link entry

Evaluating PATH queries cont. S S n n r1r1 r2r2 rkrk … rYrY X X Y Y … T T Answer: path from S to n => part of r 2 from n to Y => part of r Y from Y to T pfsL – Visits only the links in a route – Constructs list T of the links before target – Terminates search When: current node n is contained in a route before a link of T How: for each route r containing n, joins links[r] with list T & stops after finding a common link entry

Evaluating FJP queries Basic idea – Traverse nodes similar to uniform-cost search – Compute lower bound of the answer, a candidate answer Using P-Index => method M P, L-Index => method M L Triggers early termination condition Prunes search space – At each iteration: Pop current node n Check termination condition against candidate answer Update candidate answer through n Access routes containing n, routes[n] from P-Index – For each route, push nodes after n in search queue iff expanding them would give answer better than candidate

Handling frequent updates P-Index, H-Index, L-Index as inverted files on disk – Updates -> adding new routes – Not consider each new route separately – Batch updates, consider set of new routes Basic idea: – Build memory resident P-Index, H-Index, L-Index for new routes – Merge disk-based indices with memory resident ones

Outline Introduction Existing work Proposed framework Experiments – Index creation – Query evaluation – Updates Conclusions

Setup Synthetic route collections – Number of routes |R| = {50k, 100k, 500k} – Average route length l avg = {5, 10, 50} – Number of distinct nodes |N| = {50k, 100k, 500k} – Number of links |L| = {10k, 30k, 50k, 80k, 100k} – Update factor U (% |R|) = {1%, 5%, 10%} Comparison – PATH queries G PATH Vs pfsP, pfsH, pfsL – FJP queries G FJP Vs M P, M L

Index construction Vary |R|Vary |N|

Evaluating PATH queries Vary |R|

Evaluating FJP queries Vary |R|

Updates

Outline Introduction Existing work Proposed framework Experiments Conclusions – Summary – Future work

To sum up… Focus of my thesis: – Evaluating queries that find paths on large route collections – Route collections are stored on disk and they are frequently updated Current work: – A framework for evaluating PATH / FJP queries involving: Depth-first / uniform-cost search P-Index, H-Index, L-Index Methods for handling frequent updates

Further work Three directions: ①Address other kind of updates – Remove routes – Insert nodes in routes – as dynamic pickup and delivery problem is solved – Update time intervals of nodes ②Evaluate other types of queries –Trip planning or optimal sequence like queries Each node is an instance of a class in set C, e.g. {Museum,Stadium,Restaurant} Find a path passing through a Museum, then a Stadium and finally a Restaurant ③Combine query evaluation with keyword search –Starting and ending node given as set of keywords –Find a path passing through a Restaurant relevant to “sea food, lobster”

Thank you Evaluating queries on route collections: – P. Bouros, Fewer-Jumps Path Queries under Temporal Constraints, TR – P. Bouros, Evaluting Path Queries over Frequently Updated Routes, TR – P. Bouros, Evaluating Path Queries over Route Collections, ICDE’10 PhD Workshop. – P. Bouros, S. Skiadopoulos, T. Dalamagas, D. Sacharidis and T. Sellis, Evaluating reachability queries over path collections, SSDBM’09. – P. Bouros, T. Dalamagas, S. Skiadopoulos and T. Sellis, Evaluating “Find a Path” Reachability Queries, ECAI’08 Workshop. Other work: – D. Sacharidis, P. Bouros, and T. Sellis, Caching Dynamic Skyline Queries, SSDBM’08. – T. Dalamagas, P. Bouros, T. Galanis, M. Eirinaki and T. Sellis, Mining User Navigation Patterns for Personalizing Topic Directories, CIKM’07 Workshop

Outline Introduction Existing work Proposed framework Experiments Conclusions

Thank you