Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


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

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


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

Similar presentations


Ads by Google