1 / 44

COMP5331

COMP5331. Multi-Criteria Decision Making. Prepared by Raymond Wong Presented by Raymond Wong raywong@cse. Multi-Criteria Decision Making. Skyline Algorithm. y. 10. e. 9. c. 8. d. 7. g. f. 6. 5. 4. h. n. l. 3. m. 2. i. 1. 0. x. 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.

richman
Download Presentation

COMP5331

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. COMP5331 Multi-Criteria Decision Making Prepared by Raymond Wong Presented by Raymond Wong raywong@cse

  2. Multi-Criteria Decision Making • Skyline • Algorithm

  3. y 10 e 9 c 8 d 7 g f 6 5 4 h n l 3 m 2 i 1 0 x 1 2 3 4 5 6 7 8 9 10 We want to find a hotel near to Disneyland. 1. Skyline Distance from the Disneyland Hotel ID Price of Hotel How can we find a hotel by considering TWO criteria at the SAME time? Objective: to find a hotel with (1) low price, and(2) short distance from Disneyland

  4. y 10 e 9 c 8 d 7 g f 6 5 4 h n l 3 m 2 i 1 0 x 1 2 3 4 5 6 7 8 9 10 We want to find a hotel near to Disneyland. 1. Skyline Distance from the Disneyland Hotel ID Price of Hotel This is because hotel i dominates all other hotels Hotel i has(1) the lowest price (2) the shortest distance from DisneylandHotel i is a skyline point. Both distance and price of hotel i are smaller than or equal tothose of all other hotels (≠hotel i) In other words, there is no hotel which dominateshotel i. How can we find a hotel by considering TWO criteria at the SAME time? Objective: to find a hotel with (1) low price, and(2) short distance from Disneyland This is the formal definition of skyline points. Point p is a skyline point if there is no hotel which dominates point p

  5. y y 10 10 9 9 8 8 7 7 6 6 5 5 4 4 h 3 3 h 2 2 i i 1 1 0 0 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 10 x x 1. Skyline Consider other examples Does i dominate h? Does i dominate h? Yes No

  6. 10 10 y y 9 9 8 8 7 7 6 6 5 5 4 4 3 3 2 2 1 1 i i h h 0 0 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 10 x x 1. Skyline Consider other examples Does i dominate h? Does i dominateh? No No

  7. 10 10 y 9 9 8 8 7 7 6 6 5 5 4 4 3 3 2 2 1 1 h i 0 0 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 10 x 1. Skyline Consider other examples y Does i dominate h? Does i dominate h? Yes No h i x IMPORTANT!!! Definition:Hotel i dominates hotel f if both distance and price of hotel i are smaller than or equal tothose of hotel f ANDboth distance and price of hotel i are NOT equal tothose of hotel f

  8. y 10 e b a 9 c 8 d 7 g f 6 5 4 h n l 3 m 2 i k 1 0 x 1 2 3 4 5 6 7 8 9 10 We want to find a hotel near to Disneyland. 1. Skyline Distance from the Disneyland Price of Hotel Hotel ID How can we find a hotel by considering TWO criteria at the SAMEtime? Objective: to find a hotel with (1) low price, and(2) short distance from Disneyland

  9. y 10 e b a 9 c 8 d 7 g f 6 5 4 h n l 3 m 2 i k 1 0 x 1 2 3 4 5 6 7 8 9 10 We want to find a hotel near to Disneyland. 1. Skyline Distance from the Disneyland Price of Hotel Hotel ID Hotels a, i and k are the skyline points. There is no hotel which dominates hotel a. There is no hotel which dominates hotel i. There is no hotel which dominates hotel k. How can we find a hotel by considering TWO criteria at the SAME time? Objective: to find a hotel with (1) low price, and(2) short distance from Disneyland

  10. y 10 e b a 9 c 8 d 7 g f 6 5 4 h n l 3 m 2 i k 1 0 x 1 2 3 4 5 6 7 8 9 10 We want to find a hotel near to Disneyland. 1. Skyline Distance from the Disneyland Price of Hotel Hotel ID Hotel h is NOT a skyline point. This is because hotel i dominates hotel h. That is, both distance and price of hotel i are smaller or equal to than those of hotel h. How can we find a hotel by considering TWO criteria at the SAME time? Objective: to find a hotel with (1) low price, and(2) short distance from Disneyland

  11. y 10 e b a 9 c 8 d 7 g f 6 5 4 h n l 3 m 2 i k 1 0 x 1 2 3 4 5 6 7 8 9 10 We want to find a hotel near to Disneyland. 1. Skyline Distance from the Disneyland Price of Hotel Hotel ID Hotels a, i and k are the skyline points. There is no hotel which dominates hotel a. There is no hotel which dominates hotel i. There is no hotel which dominates hotel k. How can we find a hotel by considering TWOcriteria at the SAME time? Objective: to find a hotel with (1) low price, and(2) short distance from Disneyland

  12. y y i 10 10 e b a 9 9 c 8 8 d 7 7 g f 6 6 h 5 5 n 4 4 l m 3 3 2 2 k 1 1 0 0 x x 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 10 1. Skyline Consider other examples Which are the skyline points? Which are the skyline points? e b a c d g f n l h m k i

  13. y y 10 10 e b e a b 9 9 a c c 8 8 d d 7 7 g f g 6 6 f 5 5 4 4 h n l h n l 3 3 m m 2 2 i k i k 1 1 0 0 x x 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 10 1. Skyline Consider other examples Hotels a, i, h and k are the skyline points. Hotels a, i and k are the skyline points.

  14. y 10 e b a 9 c 8 d 7 g f 6 5 4 h n l 3 m 2 i k 1 0 x 1 2 3 4 5 6 7 8 9 10 Why Skyline? Hotels a, i and k are the skyline points. We return all “possible” hotels which customers are interested We remove all hotels which customers are not interested. Different customers may have different weights on different dimensions. e.g., Customer 1 weighs x (distance) higher  prefers a Score function = 0.9x + 0.1y Customer 2 weighs y (price) higher  prefers k Score function = 0.1x + 0.9y Skyline points cover all possible choices of customers (if we do not know the score function)

  15. y 10 e b a 9 c 8 d 7 g f 6 5 4 h n l 3 m 2 i k 1 0 x 1 2 3 4 5 6 7 8 9 10 1. Skyline Back to our original example Hotels a, i and k are the skyline points. How can we find the skyline points efficiently? We can build an index for this data set (e.g. R-tree).

  16. 10 9 8 7 6 5 4 3 2 e6 e7 R 1 0 1 2 3 4 5 6 7 8 9 10 d e f g h i m n N7 N6 e1 e2 e3 e4 e5 l k a b c N1 N2 N3 N4 N5 2. R-tree y e N1 b N2 We obtain an R-tree from the data set. a c N6 d g f N3 h n l N7 m N5 N4 i k x

  17. 10 9 8 7 6 5 4 3 2 e6 e7 R 1 0 1 2 3 4 5 6 7 8 9 10 d e f g h i m n N7 N6 e1 e2 e3 e4 e5 l k a b c N1 N2 N3 N4 N5 2. R-tree You don’t need to know the details of R-tree y e N1 b N2 Max no of entries M= 3 Min no of entries m= 2 a c N6 d g f N3 h n l N7 m N5 N4 i k x

  18. y 10 10 9 9 8 8 N6 7 7 6 6 5 5 4 4 3 3 2 2 1 1 0 0 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 10 x 3. Algorithm of Finding Skylines • Definition of Distance Distance of N6 = 5+1 = 6 y Distance of i = 2+3=5 3 5 i 2 x 1

  19. 3. Algorithm of Finding Skylines • Algorithm (without R-tree) • Algorithm (with R-tree)

  20. 3. Algorithm of Finding Skylines • Algorithm (without R-tree) • Input: D: a set of processing data points • S Ф // S is a set of skylines • While D ≠Ф • Find point P with the minimum distance value (according to the distance defined in the previous slide) • Check whether P is dominated by a point in S • If P is NOT dominated by any point in S (i.e. P is a skyline point) • Insert P into S • Remove P from D As “minimum” is used, we can make use of the heap data structure.

  21. 3. Algorithm of Finding Skylines • Algorithm (without R-tree) • Input: D: a set of processing data points • S Ф // S is a set of skylines • While D ≠Ф • Find point P with the minimum distance value (according to the distance defined in the previous slide) • Check whether P is dominated by a point in S • If P is NOT dominated by any point in S (i.e. P is a skyline point) • Insert P into S • Remove P from D Insert all points in D into heapaccording to the distance defined before heap≠Ф Remove top entry P fromheap

  22. y 10 e b a 9 c 8 d 7 g f 6 5 4 h n l 3 m 2 i k 1 0 x 1 2 3 4 5 6 7 8 9 10 3. Algorithm of Finding Skylines S={ } i Which point has the smallest distance value? i Is it a skyline point? Yes Distance=5 This is because no point dominates i.

  23. y 10 e b a 9 c 8 d 7 g f 6 5 4 h n l 3 m 2 i k 1 0 x 1 2 3 4 5 6 7 8 9 10 3. Algorithm of Finding Skylines S={ } i Which point has the smallestdistance value? i Is it a skyline point? Yes Distance=5 Which point has the 2nd smallestdistance value? h Is it a skyline point? No Distance=7 This is because i dominates h.

  24. y 10 e b a 9 c 8 d 7 g f 6 5 4 h n l 3 m 2 i k 1 0 x 1 2 3 4 5 6 7 8 9 10 3. Algorithm of Finding Skylines S={ } i Which point has the smallest distance value? i Is it a skyline point? Yes Distance=5 Which point has the 2nd smallestdistance value? h Is it a skyline point? No Distance=7 Which point has the 3rd smallestdistance value? m Is it a skyline point? No Distance=8 We continue the steps similarly to find the skyline points. This is because i dominates m.

  25. y 10 e b a 9 c 8 d 7 g f 6 5 4 h n l 3 m 2 i k 1 0 x 1 2 3 4 5 6 7 8 9 10 Rule: When we pick a point p with the smallest distance value, we compare p with each point in S If p is not dominated by any point in S, p is a skyline point. 3. Algorithm of Finding Skylines S={ } i Why can we compare p with the points in S only (not all points in the dataset)? Which point has the smallest distance value? i Is it a skyline point? Yes Distance=5 Which point has the 2nd smallestdistance value? h Is it a skyline point? No Distance=7 Which point has the 3rd smallestdistance value? m We guarantee that all points q which dominate p are processed before p is processed. Thus, there exists a point q dominating p in S (if there are some points dominating p). Is it a skyline point? No Distance=8 We continue the steps similarly to find the skyline points. This is because i dominates m.

  26. y 10 10 e b a 9 9 c 8 8 d 7 7 g f 6 6 5 5 4 4 h n l 3 3 m 2 2 i k 1 1 0 0 x 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 10 y e N1 b N2 a c N6 d g f N3 h n l N7 m N5 N4 i k x 3. Algorithm of Finding Skylines Here, we did not consider the R-tree structure. How can we make use of the R-tree structure for finding skyline points?

  27. y y 10 10 9 9 e N2 8 8 7 7 d 6 6 5 5 f 4 4 3 3 h 2 2 i i 1 1 0 0 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 10 x x 3. Algorithm of Finding Skylines Now, we process MBR N2 Are all hotels/points inside N2 skyline points? • Properties No Now, we process hotel h. Is hotel h a skyline point? This is because i dominates all hotels/points inside N2. No This is because i dominates h. Formally, i dominates N2. Suppose we know that hotel i is a skyline. Both x and y of i are ≦ those of bottom-left corner of MBR Suppose we know that hotel i is a skyline point. Conclusion:We do not need to process every hotels/pointsWe may “prune” a lot of hotels in some MBRs (e.g. N2)

  28. 10 10 y 9 9 8 8 7 7 6 6 5 5 4 4 N N 3 3 2 2 1 1 i 0 0 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 10 x 3. Algorithm of Finding Skylines y Does i dominate N? Does i dominate N? Yes No i x

  29. 10 10 y 9 9 8 8 7 7 6 6 5 5 4 4 N N 3 3 2 2 1 1 i 0 0 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 10 x 3. Algorithm of Finding Skylines y Does i dominate N? Does i dominate N? No No i x

  30. 3. Algorithm of Finding Skylines • Algorithm • Input: R: an R-tree built from the data set • S Ф // S is a set of skylines • Insert all entries of the root R in the heap • while heap ≠Ф • Remove top entry e from heap • If e is dominated by a point in S • Discard e • Else // e is not dominated by any point in S • If e is an internal node • for each child ei of e if ei is not dominated by any point in S insert ei into heap • Else • // e is a data point • Insert ei into S

  31. S Action Heap Contents 10 9 8 7 6 5 4 3 2 e6 e7 R 1 0 1 2 3 4 5 6 7 8 9 10 d e f g h i m n N7 N6 e1 e2 e3 e4 e5 l k a b c N1 N2 N3 N4 N5 3. Algorithm for Finding Skylines Distance of e6=1+5=6 y Access Root <e7, > <e6, > {} 4 6 e N1 b N2 a c N6 d g f N3 h n l N7 m N5 N4 i k x Distance of e7=3+1=4

  32. S Action Heap Contents 10 Expand e7 <e6, 6 > 9 8 7 6 5 4 3 2 e6 e7 R 1 0 1 2 3 4 5 6 7 8 9 10 d e f g h i m n N7 N6 e1 e2 e3 e4 e5 l k a b c N1 N2 N3 N4 N5 e7 is not dominated by any point in S 3. Algorithm for Finding Skylines As e7 is an internal node, expand e7. y Access Root <e7, > <e6, > {} 4 6 <e3, 5 > <e6, 6 > <e5, 8 > <e4, 10 > {} e N1 b N2 a c N6 d g f N3 h n l N7 m N5 N4 i k x

  33. S Action Heap Contents 10 Expand e7 Expand e3 <e6, 6 > <e6,6> <e5,8><e4,10> 9 8 7 6 5 4 3 2 e6 e7 R 1 0 1 2 3 4 5 6 7 8 9 10 d e f g h i m n N7 N6 e1 e2 e3 e4 e5 l k a b c N1 N2 N3 N4 N5 e3 is not dominated by any point in S 3. Algorithm for Finding Skylines As e3 is an internal node, expand e3. y Access Root <e7, > <e6, > {} 4 6 <e3, 5 > <e6, 6 > <e5, 8 > <e4, 10 > {} e N1 b N2 a c <i,5><e6,6><h, 7><e5,8><e4,10><g,11> {} N6 d g f N3 h n l N7 m N5 N4 i k x

  34. S Action Heap Contents 10 Expand e7 Expand e3 <e6, 6 > <e6,6> <e5,8><e4,10> 9 8 7 Insert i <e6,6><h, 7><e5,8><e4,10><g,11> 6 5 4 3 2 e6 e7 R 1 0 1 2 3 4 5 6 7 8 9 10 d e f g h i m n N7 N6 e1 e2 e3 e4 e5 l k a b c N1 N2 N3 N4 N5 i is not dominated by any point in S 3. Algorithm for Finding Skylines As i is a data point, insert i into S. y Access Root <e7, > <e6, > {} 4 6 <e3, 5 > <e6, 6 > <e5, 8 > <e4, 10 > {} e N1 b N2 a c <i,5><e6,6><h, 7><e5,8><e4,10><g,11> {} N6 d {i} g f N3 h n l N7 m N5 N4 i k x

  35. S Action Heap Contents 10 Expand e7 Expand e3 Expand e6 <e6, 6 > <e6,6> <e5,8><e4,10> <h, 7><e5,8> <e4,10><g,11> 9 8 7 Insert i <e6,6><h, 7><e5,8><e4,10><g,11> 6 5 4 3 2 e6 e7 R 1 0 1 2 3 4 5 6 7 8 9 10 d e f g h i m n N7 N6 e1 e2 e3 e4 e5 l k a b c N1 N2 N3 N4 N5 e6 is not dominated by any point in S 3. Algorithm for Finding Skylines As e6 is an internal node, expand e6. y Access Root <e7, > <e6, > {} 4 6 <e3, 5 > <e6, 6 > <e5, 8 > <e4, 10 > {} e N1 b N2 a c <i,5><e6,6><h, 7><e5,8><e4,10><g,11> {} N6 d {i} g f {i} <h, 7><e5,8><e1,9><e4,10><g,11><e2,11> N3 h n l N7 m N5 N4 i k e2 is dominated by i (in S) x

  36. S Action Heap Contents 10 Expand e7 Expand e3 Expand e6 <e6, 6 > <e6,6> <e5,8><e4,10> <h, 7><e5,8> <e4,10><g,11> 9 8 7 Insert i <e6,6><h, 7><e5,8><e4,10><g,11> 6 5 4 Discard h <e5,8><e1,9><e4,10><g,11> 3 2 e6 e7 R 1 0 1 2 3 4 5 6 7 8 9 10 d e f g h i m n N7 N6 e1 e2 e3 e4 e5 l k a b c N1 N2 N3 N4 N5 h is dominated by i (in S) 3. Algorithm for Finding Skylines Discard h y Access Root <e7, > <e6, > {} 4 6 <e3, 5 > <e6, 6 > <e5, 8 > <e4, 10 > {} e N1 b N2 a c <i,5><e6,6><h, 7><e5,8><e4,10><g,11> {} N6 d {i} g f {i} <h, 7><e5,8><e1,9><e4,10><g,11> N3 h n l N7 {i} m N5 N4 i k x

  37. S Action Heap Contents 10 Expand e3 Expand e7 Expand e6 <e6, 6 > <e6,6> <e5,8><e4,10> <h, 7><e5,8> <e4,10><g,11> 9 8 7 Insert i <e6,6><h, 7><e5,8><e4,10><g,11> 6 5 4 Discard e5 Discard h <e5,8><e1,9><e4,10><g,11> <e1,9><e4,10><g,11> 3 2 e6 e7 R 1 0 1 2 3 4 5 6 7 8 9 10 d e f g h i m n N7 N6 e1 e2 e3 e4 e5 l k a b c N1 N2 N3 N4 N5 e5 is dominated by i (in S) 3. Algorithm for Finding Skylines Discard e5 y Access Root <e7, > <e6, > {} 4 6 <e3, 5 > <e6, 6 > <e5, 8 > <e4, 10 > {} e N1 b N2 a c <i,5><e6,6><h, 7><e5,8><e4,10><g,11> {} N6 d {i} g f {i} <h, 7><e5,8><e1,9><e4,10><g,11> N3 h n l N7 {i} m N5 N4 i {i} k x

  38. S Action Heap Contents 10 Expand e3 Expand e7 Expand e6 <h, 7><e5,8> <e4,10><g,11> <e6,6> <e5,8><e4,10> <e6, 6 > 9 8 7 Insert i <e6,6><h, 7><e5,8><e4,10><g,11> 6 5 4 Discard e5 Discard h <e5,8><e1,9><e4,10><g,11> <e1,9><e4,10><g,11> 3 2 e6 e7 R 1 Expand e1 <e4,10><g,11> 0 1 2 3 4 5 6 7 8 9 10 d e f g h i m n N7 N6 e1 e2 e3 e4 e5 l k a b c N1 N2 N3 N4 N5 e1 is not dominated by any point in S 3. Algorithm for Finding Skylines As e1 is an internal node, expand e1 y Access Root <e7, > <e6, > {} 4 6 <e3, 5 > <e6, 6 > <e5, 8 > <e4, 10 > {} e N1 b N2 a c <i,5><e6,6><h, 7><e5,8><e4,10><g,11> {} N6 d {i} g f {i} <h, 7><e5,8><e1,9><e4,10><g,11> N3 h n l N7 {i} m N5 N4 i {i} k <a,10><e4,10><g,11><b,12><c,12> {i} x c is dominated by i (in S)

  39. S Action Heap Contents 10 Expand e6 Expand e7 Expand e3 <e6, 6 > <h, 7><e5,8> <e4,10><g,11> <e6,6> <e5,8><e4,10> 9 8 7 Insert i <e6,6><h, 7><e5,8><e4,10><g,11> 6 5 4 Discard e5 Discard h <e1,9><e4,10><g,11> <e5,8><e1,9><e4,10><g,11> 3 2 e6 e7 R 1 Expand e1 <e4,10><g,11> 0 1 2 3 4 5 6 7 8 9 10 Insert a <e4,10><g,11><b,12> d e f g h i m n N7 N6 e1 e2 e3 e4 e5 l k a b c N1 N2 N3 N4 N5 a is not dominated by any point in S 3. Algorithm for Finding Skylines As a is a data point, insert a into S y Access Root <e7, > <e6, > {} 4 6 <e3, 5 > <e6, 6 > <e5, 8 > <e4, 10 > {} e N1 b N2 a c <i,5><e6,6><h, 7><e5,8><e4,10><g,11> {} N6 d {i} g f {i} <h, 7><e5,8><e1,9><e4,10><g,11> N3 h n l N7 {i} m N5 N4 i {i} k <a,10><e4,10><g,11><b,12> {i} x {i, a}

  40. S Action Heap Contents 10 Expand e3 Expand e7 Expand e6 <e6, 6 > <h, 7><e5,8> <e4,10><g,11> <e6,6> <e5,8><e4,10> 9 8 7 Insert i <e6,6><h, 7><e5,8><e4,10><g,11> 6 5 4 Discard h Discard e5 <e1,9><e4,10><g,11> <e5,8><e1,9><e4,10><g,11> 3 2 e6 e7 R 1 Expand e1 Expand e4 <g,11><b,12> <e4,10><g,11> 0 1 2 3 4 5 6 7 8 9 10 Insert a Insert i <e4,10><g,11><b,12><c,12> <e4,10><g,11><b,12> d e f g h i m n N7 N6 e1 e2 e3 e4 e5 l k a b c N1 N2 N3 N4 N5 e4 is not dominated by any point in S 3. Algorithm for Finding Skylines As e4 is an internal node, expand e4 y Access Root <e7, > <e6, > {} 4 6 <e3, 5 > <e6, 6 > <e5, 8 > <e4, 10 > {} e N1 b N2 a c <i,5><e6,6><h, 7><e5,8><e4,10><g,11> {} N6 d {i} g f {i} <h, 7><e5,8><e1,9><e4,10><g,11> N3 h n l N7 l is dominated by i (in S) {i} m N5 N4 i {i} k <a,10><e4,10><g,11><b,12> {i} x {i, a} <k,10><g,11><b,12><l,14> {i, a}

  41. S Action Heap Contents 10 Expand e7 Expand e3 Expand e6 <e6, 6 > <e6,6> <e5,8><e4,10> <h, 7><e5,8> <e4,10><g,11> 9 8 7 Insert i <e6,6><h, 7><e5,8><e4,10><g,11> 6 5 4 Discard e5 Discard h <e5,8><e1,9><e4,10><g,11> <e1,9><e4,10><g,11> 3 2 e6 e7 R 1 Expand e1 Insert k Expand e4 <g,11><b,12> <k,10><g,11><b,12> <e4,10><g,11> 0 1 2 3 4 5 6 7 8 9 10 Insert a Insert i <e4,10><g,11><b,12><c,12> <e4,10><g,11><b,12> d e f g h i m n N7 N6 e1 e2 e3 e4 e5 l k a b c N1 N2 N3 N4 N5 k is not dominated by any point in S 3. Algorithm for Finding Skylines As k is a data point, insert k y Access Root <e7, > <e6, > {} 4 6 <e3, 5 > <e6, 6 > <e5, 8 > <e4, 10 > {} e N1 b N2 a c <i,5><e6,6><h, 7><e5,8><e4,10><g,11> {} N6 d {i} g f {i} <h, 7><e5,8><e1,9><e4,10><g,11> N3 h n l N7 {i} m N5 N4 i {i} k <a,10><e4,10><g,11><b,12> {i} x {i, a} {i, a} {i, a} {i, a, k}

  42. S Action Heap Contents 10 Expand e6 Expand e7 Expand e3 <e6,6> <e5,8><e4,10> <e6, 6 > <h, 7><e5,8> <e4,10><g,11> 9 8 7 Insert i <e6,6><h, 7><e5,8><e4,10><g,11> 6 5 4 Discard e5 Discard h <e5,8><e1,9><e4,10><g,11> <e1,9><e4,10><g,11> 3 2 e6 e7 R 1 Expand e1 Expand e4 Discard g Insert k <b,12> <g,11><b,12> <e4,10><g,11> <k,10><g,11><b,12> 0 1 2 3 4 5 6 7 8 9 10 Insert i Insert a <e4,10><g,11><b,12> <e4,10><g,11><b,12><c,12> d e f g h i m n N7 N6 e1 e2 e3 e4 e5 l k a b c N1 N2 N3 N4 N5 g is dominated by i (in S) 3. Algorithm for Finding Skylines Discard g y Access Root <e7, > <e6, > {} 4 6 <e3, 5 > <e6, 6 > <e5, 8 > <e4, 10 > {} e N1 b N2 a c <i,5><e6,6><h, 7><e5,8><e4,10><g,11> {} N6 d {i} g f {i} <h, 7><e5,8><e1,9><e4,10><g,11> N3 h n l N7 {i} m N5 N4 i {i} k <a,10><e4,10><g,11><b,12> {i} x {i, a} {i, a} {i, a, k} {i, a, k}

  43. S Action Heap Contents 10 Expand e7 Expand e3 Expand e6 <h, 7><e5,8> <e4,10><g,11> <e6, 6 > <e6,6> <e5,8><e4,10> 9 8 7 Insert i <e6,6><h, 7><e5,8><e4,10><g,11> 6 5 4 Discard h Discard e5 <e1,9><e4,10><g,11> <e5,8><e1,9><e4,10><g,11> 3 2 e6 e7 R 1 Expand e4 Discard g Expand e1 Discard b Insert k <e4,10><g,11> <g,11><b,12> <b,12> <k,10><g,11><b,12> 0 1 2 3 4 5 6 7 8 9 10 Insert i Insert a <e4,10><g,11><b,12><c,12> <e4,10><g,11><b,12> d e f g h i m n N7 N6 e1 e2 e3 e4 e5 l k a b c N1 N2 N3 N4 N5 b is dominated by a (in S) 3. Algorithm for Finding Skylines Discard b y Access Root <e7, > <e6, > {} 4 6 <e3, 5 > <e6, 6 > <e5, 8 > <e4, 10 > {} e N1 b N2 a c <i,5><e6,6><h, 7><e5,8><e4,10><g,11> {} N6 d {i} g f {i} <h, 7><e5,8><e1,9><e4,10><g,11> N3 h n l N7 {i} m N5 N4 i {i} k <a,10><e4,10><g,11><b,12> {i} x {i, a} {i, a} {i, a, k} {i, a, k} {i, a, k}

  44. S Action Heap Contents 10 Expand e6 Expand e7 Expand e3 <e6,6> <e5,8><e4,10> <h, 7><e5,8> <e4,10><g,11> <e6, 6 > 9 8 7 Insert i <e6,6><h, 7><e5,8><e4,10><g,11> 6 5 4 Discard h Discard e5 <e1,9><e4,10><g,11> <e5,8><e1,9><e4,10><g,11> 3 2 e6 e7 R 1 Expand e4 Insert k Discard g Expand e1 Discard b <b,12> <g,11><b,12> <k,10><g,11><b,12> <e4,10><g,11> 0 1 2 3 4 5 6 7 8 9 10 Insert i Insert a <e4,10><g,11><b,12><c,12> <e4,10><g,11><b,12> d e f g h i m n N7 N6 e1 e2 e3 e4 e5 l k a b c N1 N2 N3 N4 N5 3. Algorithm for Finding Skylines y Access Root <e7, > <e6, > {} 4 6 <e3, 5 > <e6, 6 > <e5, 8 > <e4, 10 > {} e N1 b N2 a c <i,5><e6,6><h, 7><e5,8><e4,10><g,11> {} N6 d {i} g f {i} <h, 7><e5,8><e1,9><e4,10><g,11> N3 h n l N7 {i} m N5 N4 i {i} k <a,10><e4,10><g,11><b,12> {i} x {i, a} {i, a} {i, a, k} {i, a, k} {i, a, k}

More Related