Download presentation
Presentation is loading. Please wait.
Published bySusan Barnett Modified over 8 years ago
1
Αποτίμηση Ερωτημάτων σε Συλλογές Διαδρομών (Evaluating Queries on Route Collections) Παναγιώτης Μπούρος Ενδιάμεση Κρίση Επιβλέπων: Ι. Βασιλείου
2
Outline Introduction – Route collections, queries & frequent updates Existing work Proposed framework Experiments Conclusions
3
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
4
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
5
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
6
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
7
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
8
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
9
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
10
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
11
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
12
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
13
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
14
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
15
Outline Introduction Existing work – Graph-based solutions for PATH queries FJP queries Proposed framework Experiments Conclusions
16
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
17
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)
18
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)
19
Outline Introduction Existing work Proposed framework – PATH & FJP queries – Indices, algorithms & methods for handling updates Experiments Conclusions
20
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
21
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
22
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
23
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
24
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
25
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
26
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)
27
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
28
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
29
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
30
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
31
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 …
32
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] = {,, } …
33
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] = {…,,…} …
34
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] = {…,,…}
35
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
36
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
37
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 …
38
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] = {,, } …
39
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 ] = {, }
40
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
41
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] = {…,,…}
42
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
43
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
44
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
45
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
46
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
47
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
48
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
49
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
50
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
51
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
52
Outline Introduction Existing work Proposed framework Experiments – Index creation – Query evaluation – Updates Conclusions
53
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 dfs @ G PATH Vs pfsP, pfsH, pfsL – FJP queries Dijkstra @ G FJP Vs M P, M L
54
Index construction Vary |R|Vary |N|
55
Evaluating PATH queries Vary |R|
56
Evaluating FJP queries Vary |R|
57
Updates
58
Outline Introduction Existing work Proposed framework Experiments Conclusions – Summary – Future work
59
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
60
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”
61
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
62
Outline Introduction Existing work Proposed framework Experiments Conclusions
63
Thank you
Similar presentations
© 2024 SlidePlayer.com Inc.
All rights reserved.