approximate nearest line search in high dimensions
play

Approximate Nearest Line Search in High Dimensions Sepideh Mahabadi - PowerPoint PPT Presentation

Approximate Nearest Line Search in High Dimensions Sepideh Mahabadi 1 The NLS Problem Given: a set of lines in 2 The NLS Problem Given: a set of lines in Goal: build a data structure s.t.


  1. Net Module β€’ Intuition: sampling points from each line finely enough to get a set of points 𝑄 , and building an 𝐡𝑂𝑂(𝑄, πœ—) should suffice to find the approximate closest line. 38

  2. Net Module β€’ Intuition: sampling points from each line finely enough to get a set of points 𝑄 , and building an 𝐡𝑂𝑂(𝑄, πœ—) should suffice to find the approximate closest line. Lemma: β€’ Let 𝑦 be the separation parameter: distance between two adjacent samples on a line β€’ Then – Either the returned line β„“ π‘ž is an approximate closest line – Or 𝑒𝑗𝑑𝑒 π‘Ÿ, β„“ π‘ž ≀ 𝑦/πœ— 39

  3. Parallel Module - Intuition β€’ All lines in 𝑀 are parallel 42

  4. Parallel Module - Intuition β€’ All lines in 𝑀 are parallel β€’ Data structure: – Project all lines onto any hyper-plane 𝑕 which is perpendicular to all the lines to get point set 𝑄 – Build ANN data structure 𝐡𝑂𝑂(𝑄, πœ—) 43

  5. Parallel Module - Intuition β€’ All lines in 𝑀 are parallel β€’ Data structure: – Project all lines onto any hyper-plane 𝑕 which is perpendicular to all the lines to get point set 𝑄 – Build ANN data structure 𝐡𝑂𝑂(𝑄, πœ—) β€’ Query algorithm: – Project the query on 𝑕 to get π‘Ÿβ€² – Find the approximate closest point to π‘Ÿβ€² , i.e., π‘ž = 𝐡𝑂𝑂 𝑄 π‘Ÿ β€² – Return the corresponding line to π‘ž 44

  6. Parallel Module All lines in 𝑀 are πœ€ -close to a base line β„“ 𝑐 β€’ Project the lines onto a hyper-plane 𝑕 which is β€’ perpendicular to β„“ 𝑐 Query is close enough to 𝑕 β€’ β€’ Use the same data structure and query algorithm 45

  7. Parallel Module All lines in 𝑀 are πœ€ -close to a base line β„“ 𝑐 β€’ Project the lines onto a hyper-plane 𝑕 which is β€’ perpendicular to β„“ 𝑐 Query is close enough to 𝑕 β€’ β€’ Use the same data structure and query algorithm πΈπœ— Lemma : if 𝑒𝑗𝑑𝑒 π‘Ÿ, 𝑕 ≀ πœ€ , then Either the returned line β„“ π‘ž is an approximate closest β€’ line Or 𝑒𝑗𝑑𝑒 π‘Ÿ, β„“ π‘ž ≀ 𝐸 β€’ 46

  8. Parallel Module All lines in 𝑀 are πœ€ -close to a base line β„“ 𝑐 β€’ Project the lines onto a hyper-plane 𝑕 which is β€’ perpendicular to β„“ 𝑐 Query is close enough to 𝑕 β€’ β€’ Use the same data structure and query algorithm πΈπœ— Lemma : if 𝑒𝑗𝑑𝑒 π‘Ÿ, 𝑕 ≀ πœ€ , then Either the returned line β„“ π‘ž is an approximate closest β€’ line Or 𝑒𝑗𝑑𝑒 π‘Ÿ, β„“ π‘ž ≀ 𝐸 β€’ Thus, for a set of almost parallel lines, we can use a set of parallel modules to cover a bounded region. 47

  9. General Case β€’ Input lines can have any configuration β€’ Divergent Case Input lines are 𝑃(πœ—) -far from each other β€’ β€’ Almost Parallel Case Input lines are all 𝑃(πœ—) -close to each other β€’ ALGORITHMS 51

  10. Outline of the Algorithms β€’ Input : a set of π‘œ lines 𝑇 52

  11. Outline of the Algorithms β€’ Input : a set of π‘œ lines 𝑇 β€’ Randomly choose a subset of π‘œ/2 lines π‘ˆ 53

  12. Outline of the Algorithms β€’ Input : a set of π‘œ lines 𝑇 β€’ Randomly choose a subset of π‘œ/2 lines π‘ˆ β€’ Solve the problem over π‘ˆ to get a line β„“ π‘ž 54

  13. Outline of the Algorithms β€’ Input : a set of π‘œ lines 𝑇 β€’ Randomly choose a subset of π‘œ/2 lines π‘ˆ β€’ Solve the problem over π‘ˆ to get a line β„“ π‘ž β€’ For logπ‘œ iterations – Use β„“ π‘ž to find a much closer line β„“ π‘ž β€² Improvement β€² – Update β„“ π‘ž with β„“ π‘ž step 55

  14. Outline of the Algorithms β€’ Input : a set of π‘œ lines 𝑇 β€’ Randomly choose a subset of π‘œ/2 lines π‘ˆ β€’ Solve the problem over π‘ˆ to get a line β„“ π‘ž β€’ For logπ‘œ iterations – Use β„“ π‘ž to find a much closer line β„“ π‘ž β€² Improvement β€² – Update β„“ π‘ž with β„“ π‘ž step 56

  15. Outline of the Algorithms β€’ Input : a set of π‘œ lines 𝑇 β€’ Randomly choose a subset of π‘œ/2 lines π‘ˆ β€’ Solve the problem over π‘ˆ to get a line β„“ π‘ž β€’ For logπ‘œ iterations – Use β„“ π‘ž to find a much closer line β„“ π‘ž β€² Improvement β€² – Update β„“ π‘ž with β„“ π‘ž step Why? 57

  16. Outline of the Algorithms β€’ Input : a set of π‘œ lines 𝑇 β€’ Randomly choose a subset of π‘œ/2 lines π‘ˆ β€’ Solve the problem over π‘ˆ to get a line β„“ π‘ž β€’ For logπ‘œ iterations – Use β„“ π‘ž to find a much closer line β„“ π‘ž β€² Improvement β€² – Update β„“ π‘ž with β„“ π‘ž step Let β„“ 1 , … , β„“ log π‘œ be the log π‘œ closest lines to π‘Ÿ in the set 𝑇 58

  17. Outline of the Algorithms β€’ Input : a set of π‘œ lines 𝑇 β€’ Randomly choose a subset of π‘œ/2 lines π‘ˆ β€’ Solve the problem over π‘ˆ to get a line β„“ π‘ž β€’ For logπ‘œ iterations – Use β„“ π‘ž to find a much closer line β„“ π‘ž β€² Improvement β€² – Update β„“ π‘ž with β„“ π‘ž step Let β„“ 1 , … , β„“ log π‘œ be the log π‘œ closest lines to π‘Ÿ in the set 𝑇 With high probability at least one of {β„“ 1 , … , β„“ log π‘œ } are sampled in π‘ˆ – 𝑒𝑗𝑑𝑒 π‘Ÿ, β„“ π‘ž ≀ 𝑒𝑗𝑑𝑒 π‘Ÿ, β„“ log π‘œ (1 + πœ—) – log π‘œ improvement steps suffices to find an approximate closest line 59

  18. Improvement Step Given a line β„“ , how to improve it, i.e., find a closer line? 60

  19. Improvement Step Given a line β„“ , how to improve it, i.e., find a closer line? β€’ Data structure β€’ Query Processing Algorithm 61

  20. General Case β€’ Search among all lines that are πœ— -far from current line using Divergent Case 62

  21. General Case β€’ Search among all lines that are πœ— -far from current line using Divergent Case β€’ Search among the lines that are almost parallel to line found in previous step using Almost Parallel Case 63

  22. Divergent Case Assume any two lines are πœ— -far; they diverge quickly. 64

  23. Divergent Case Assume any two lines are πœ— -far; they diverge quickly. β€’ Let β„“ be the current line, and β„“ βˆ— be the closest line to π‘Ÿ β€’ Let 𝑦 = 𝑒𝑗𝑑𝑒(π‘Ÿ, β„“) β€’ 𝑒𝑗𝑑𝑒 π‘Ÿ, β„“ βˆ— ≀ 𝑦 65

  24. Divergent Case Assume any two lines are πœ— -far; they diverge quickly. β€’ Let β„“ be the current line, and β„“ βˆ— be the closest line to π‘Ÿ β€’ Let 𝑦 = 𝑒𝑗𝑑𝑒(π‘Ÿ, β„“) β€’ 𝑒𝑗𝑑𝑒 π‘Ÿ, β„“ βˆ— ≀ 𝑦 – All potential β„“ βˆ— intersect 𝐢(π‘Ÿ, 𝑦) 66

  25. Divergent Case Assume any two lines are πœ— -far; they diverge quickly. β€’ Let β„“ be the current line, and β„“ βˆ— be the closest line to π‘Ÿ β€’ Let 𝑦 = 𝑒𝑗𝑑𝑒(π‘Ÿ, β„“) β€’ 𝑒𝑗𝑑𝑒 π‘Ÿ, β„“ βˆ— ≀ 𝑦 – All potential β„“ βˆ— intersect 𝐢(π‘Ÿ, 𝑦) – Good news: we can build a net module inside 𝐢 π‘Ÿ, 𝑦 with separation parameter 𝑦ϡ 2 to improve over β„“ 67

  26. Divergent Case Assume any two lines are πœ— -far; they diverge quickly. β€’ Let β„“ be the current line, and β„“ βˆ— be the closest line to π‘Ÿ β€’ Let 𝑦 = 𝑒𝑗𝑑𝑒(π‘Ÿ, β„“) β€’ 𝑒𝑗𝑑𝑒 π‘Ÿ, β„“ βˆ— ≀ 𝑦 – All potential β„“ βˆ— intersect 𝐢(π‘Ÿ, 𝑦) – Good news: we can build a net module inside 𝐢 π‘Ÿ, 𝑦 with separation parameter 𝑦ϡ 2 to improve over β„“ – Bad news: we don’t know this ball in advance 68

  27. Divergent Case contd. What we know: β€’ 𝑒𝑗𝑑𝑒 β„“,β„“ βˆ— ≀ 2𝑦 β€’ Let π‘Ÿβ€² be the projection of π‘Ÿ on β„“ 69

  28. Divergent Case contd. What we know: β€’ 𝑒𝑗𝑑𝑒 β„“,β„“ βˆ— ≀ 2𝑦 β€’ Let π‘Ÿβ€² be the projection of π‘Ÿ on β„“ 70

  29. Divergent Case contd. What we know: β€’ 𝑒𝑗𝑑𝑒 β„“,β„“ βˆ— ≀ 2𝑦 β€’ Let π‘Ÿβ€² be the projection of π‘Ÿ on β„“ 𝑦 – 𝐷𝑄 β„“β†’β„“ βˆ— is not farther than πœ— from π‘Ÿβ€² since they are πœ— -far 71

  30. Divergent Case contd. What we know: β€’ 𝑒𝑗𝑑𝑒 β„“,β„“ βˆ— ≀ 2𝑦 β€’ Let π‘Ÿβ€² be the projection of π‘Ÿ on β„“ 𝑦 – 𝐷𝑄 β„“β†’β„“ βˆ— is not farther than πœ— from π‘Ÿβ€² since they are πœ— -far π’š – π‘ͺ(𝒓 β€² , 𝑷 𝝑 ) touches all such lines 72

  31. Data Structure For each β„“ ∈ 𝑇 β€’ Sort all lines β„“β€² according to their distance from β„“ 73

  32. Data Structure For each β„“ ∈ 𝑇 β€’ Sort all lines β„“β€² according to their distance from β„“ For all 1 ≀ 𝑗 ≀ π‘œ , let 𝑇 𝑗 be the 𝑗 π‘’β„Ž closest lines β€’ 74

  33. Data Structure For each β„“ ∈ 𝑇 β€’ Sort all lines β„“β€² according to their distance from β„“ For all 1 ≀ 𝑗 ≀ π‘œ , let 𝑇 𝑗 be the 𝑗 π‘’β„Ž closest lines β€’ – Sort all lines in 𝑇 𝑗 such as β„“β€² according to the position of 𝐷𝑄 β„“β†’β„“β€² 75

  34. Data Structure For each β„“ ∈ 𝑇 β€’ Sort all lines β„“β€² according to their distance from β„“ For all 1 ≀ 𝑗 ≀ π‘œ , let 𝑇 𝑗 be the 𝑗 π‘’β„Ž closest lines β€’ – Sort all lines in 𝑇 𝑗 such as β„“β€² according to the position of 𝐷𝑄 β„“β†’β„“β€² – For each interval of lines 𝐡 in sorted 𝑇 𝑗 76

  35. Data Structure For each β„“ ∈ 𝑇 β€’ Sort all lines β„“β€² according to their distance from β„“ For all 1 ≀ 𝑗 ≀ π‘œ , let 𝑇 𝑗 be the 𝑗 π‘’β„Ž closest lines β€’ – Sort all lines in 𝑇 𝑗 such as β„“β€² according to the position of 𝐷𝑄 β„“β†’β„“β€² – For each interval of lines 𝐡 in sorted 𝑇 𝑗 β€’ Find smallest ball 𝐢 𝐡 (o A , r A ) with its center on β„“ which intersects all lines in 𝐡 𝑦 -> ( 𝑠 𝐡 ≀ 𝑃( πœ— )) 77

  36. Data Structure For each β„“ ∈ 𝑇 β€’ Sort all lines β„“β€² according to their distance from β„“ For all 1 ≀ 𝑗 ≀ π‘œ , let 𝑇 𝑗 be the 𝑗 π‘’β„Ž closest lines β€’ – Sort all lines in 𝑇 𝑗 such as β„“β€² according to the position of 𝐷𝑄 β„“β†’β„“β€² – For each interval of lines 𝐡 in sorted 𝑇 𝑗 β€’ Find smallest ball 𝐢 𝐡 (o A , r A ) with its center on β„“ which intersects all lines in 𝐡 𝑦 -> ( 𝑠 𝐡 ≀ 𝑃( πœ— )) β€’ Construct a net module inside of the ball 𝐡 /πœ— 2 ) with separation 𝑠 𝐡 πœ— 3 of 𝐢(𝑝 𝐡 , 𝑠 𝐡 /(πœ— 2 𝑠 𝐡 πœ— 3 )) = 𝑃(π‘œ/πœ— 5 )) (#samples = O( π‘œ 𝑠 78

  37. Data Structure For each β„“ ∈ 𝑇 β€’ Sort all lines β„“β€² according to their distance from β„“ For all 1 ≀ 𝑗 ≀ π‘œ , let 𝑇 𝑗 be the 𝑗 π‘’β„Ž closest lines β€’ – Sort all lines in 𝑇 𝑗 such as β„“β€² according to the position of 𝐷𝑄 β„“β†’β„“β€² – For each interval of lines 𝐡 in sorted 𝑇 𝑗 β€’ Find smallest ball 𝐢 𝐡 (o A , r A ) with its center on β„“ which intersects all lines in 𝐡 𝑦 -> ( 𝑠 𝐡 ≀ 𝑃( πœ— )) β€’ Construct a net module inside of the ball 𝐡 /πœ— 2 ) with separation 𝑠 𝐡 πœ— 3 of 𝐢(𝑝 𝐡 , 𝑠 𝐡 /(πœ— 2 𝑠 𝐡 πœ— 3 )) = 𝑃(π‘œ/πœ— 5 )) (#samples = O( π‘œ 𝑠 β€’ Construct an unbounded module outside 1 of 𝐢 𝐡 𝑝 𝐡 , πœ— 2 𝑠 𝐡 79

  38. Query Processing Algorithm Given query point π‘Ÿ 80

  39. Query Processing Algorithm Given query point π‘Ÿ Project π‘Ÿ on β„“ to get π‘Ÿβ€² – Use binary search to find the set 𝐡 of all lines – β„“β€² that are within distance 2𝑦 of β„“ , and that 𝐷𝑄 β„“β†’β„“ β€² is within distance 2𝑦/πœ— of π‘Ÿβ€² 81

  40. Query Processing Algorithm Given query point π‘Ÿ Project π‘Ÿ on β„“ to get π‘Ÿβ€² – Use binary search to find the set 𝐡 of all lines – β„“β€² that are within distance 2𝑦 of β„“ , and that 𝐷𝑄 β„“β†’β„“ β€² is within distance 2𝑦/πœ— of π‘Ÿβ€² 82

  41. Query Processing Algorithm Given query point π‘Ÿ Project π‘Ÿ on β„“ to get π‘Ÿβ€² – Use binary search to find the set 𝐡 of all lines – β„“β€² that are within distance 2𝑦 of β„“ , and that 𝐷𝑄 β„“β†’β„“ β€² is within distance 2𝑦/πœ— of π‘Ÿβ€² Let 𝐢 𝐡 (𝑝 𝐡 , 𝑠 𝐡 ) be the corresponding ball – 83

  42. Query Processing Algorithm Given query point π‘Ÿ Project π‘Ÿ on β„“ to get π‘Ÿβ€² – Use binary search to find the set 𝐡 of all lines – β„“β€² that are within distance 2𝑦 of β„“ , and that 𝐷𝑄 β„“β†’β„“ β€² is within distance 2𝑦/πœ— of π‘Ÿβ€² Let 𝐢 𝐡 (𝑝 𝐡 , 𝑠 𝐡 ) be the corresponding ball – 𝑠 𝐡 If 𝑦 ∈ 𝐢 𝐡 (𝑝 𝐡 , πœ— 2 ) use net module: – β€’ Find approximate closest line -> done! β€’ Or find a line with distance at most 𝐡 πœ— 2 ≀ π‘¦πœ— ( 𝑠 𝑠 𝐡 ≀ 𝑦/πœ—) -> we improved 84

  43. Query Processing Algorithm Given query point π‘Ÿ Project π‘Ÿ on β„“ to get π‘Ÿβ€² – Use binary search to find the set 𝐡 of all lines – β„“β€² that are within distance 2𝑦 of β„“ , and that 𝐷𝑄 β„“β†’β„“ β€² is within distance 2𝑦/πœ— of π‘Ÿβ€² Let 𝐢 𝐡 (𝑝 𝐡 , 𝑠 𝐡 ) be the corresponding ball – 𝑠 𝐡 If 𝑦 ∈ 𝐢 𝐡 (𝑝 𝐡 , πœ— 2 ) use net module: – β€’ Find approximate closest line -> done! β€’ Or find a line with distance at most 𝐡 πœ— 2 ≀ π‘¦πœ— ( 𝑠 𝑠 𝐡 ≀ 𝑦/πœ—) -> we improved – Otherwise use unbounded module to find the approximate closest line -> done! 85

  44. Almost Parallel All lines are 2πœ— -close to each other. For each line β„“ slab β€’ Partition the space into slabs using perpendicular hyperplanes to β„“ s.t. for any pair of lines β„“ 1 , β„“ 2 : 86

  45. Almost Parallel All lines are 2πœ— -close to each other. For each line β„“ β€’ Partition the space into slabs using perpendicular hyperplanes to β„“ s.t. for any pair of lines β„“ 1 , β„“ 2 : – In each slab the relative order of dist 𝐼 β„“,𝑝 β„“, β„“ 1 and 𝑒𝑗𝑑𝑒 𝐼 β„“,𝑝 (β„“, β„“ 2 ) on the hyper-plane remains the same as we move 𝑝 on β„“ in the slab There is a unique ordering of the lines 87

  46. Almost Parallel All lines are 2πœ— -close to each other. For each line β„“ β€’ Partition the space into slabs using perpendicular hyperplanes to β„“ s.t. for any pair of lines β„“ 1 , β„“ 2 : – In each slab the relative order of dist 𝐼 β„“,𝑝 β„“, β„“ 1 and 𝑒𝑗𝑑𝑒 𝐼 β„“,𝑝 (β„“, β„“ 2 ) on the hyper-plane remains the same as we move 𝑝 on β„“ in the slab There is a unique ordering of the lines – 𝑒𝑗𝑑𝑒 𝐼 β„“,𝑝 β„“ 1 ,β„“ 2 on the hyper-plane is monotone 88

  47. Almost Parallel All lines are 2πœ— -close to each other. For each line β„“ β€’ Partition the space into slabs using perpendicular hyperplanes to β„“ s.t. for any pair of lines β„“ 1 , β„“ 2 : – In each slab the relative order of dist 𝐼 β„“,𝑝 β„“, β„“ 1 and 𝑒𝑗𝑑𝑒 𝐼 β„“,𝑝 (β„“, β„“ 2 ) on the hyper-plane remains the same as we move 𝑝 on β„“ in the slab There is a unique ordering of the lines – 𝑒𝑗𝑑𝑒 𝐼 β„“,𝑝 β„“ 1 ,β„“ 2 on the hyper-plane is monotone The minimum ball intersecting any prefix of lines have its center on the boundary of slab 89

  48. Almost Parallel All lines are 2πœ— -close to each other. For each line β„“ β€’ Partition the space into slabs using perpendicular hyperplanes to β„“ s.t. for any pair of lines β„“ 1 , β„“ 2 : – In each slab the relative order of dist 𝐼 β„“,𝑝 β„“, β„“ 1 and 𝑒𝑗𝑑𝑒 𝐼 β„“,𝑝 (β„“, β„“ 2 ) on the hyper-plane remains the same as we move 𝑝 on β„“ in the slab There is a unique ordering of the lines – 𝑒𝑗𝑑𝑒 𝐼 β„“,𝑝 β„“ 1 ,β„“ 2 on the hyper-plane is monotone The minimum ball intersecting any prefix of lines have its center on the boundary of slab. β€’ 𝑃 π‘œ 2 slabs suffices 90

  49. Data Structure in Each Slab For each 𝑗 , let 𝐢(𝑝, 𝑠) be the smallest ball β€’ touching the closest 𝑗 π‘’β„Ž lines s.t. 𝑝 ∈ β„“ . We know 𝑝 would be on the boundary of slab. 91

  50. Data Structure in Each Slab For each 𝑗 , let 𝐢(𝑝, 𝑠) be the smallest ball β€’ touching the closest 𝑗 π‘’β„Ž lines s.t. 𝑝 ∈ β„“ . We know 𝑝 would be on the boundary of slab. 92

  51. Data Structure in Each Slab For each 𝑗 , let 𝐢(𝑝, 𝑠) be the smallest ball β€’ touching the closest 𝑗 π‘’β„Ž lines s.t. 𝑝 ∈ β„“ . We know 𝑝 would be on the boundary of slab. 93

  52. Data Structure in Each Slab For each 𝑗 , let 𝐢(𝑝, 𝑠) be the smallest ball β€’ touching the closest 𝑗 π‘’β„Ž lines s.t. 𝑝 ∈ β„“ . We know 𝑝 would be on the boundary of slab. β€’ Let πœ€ 0 > β‹― > πœ€ 𝑒 be all pairwise angles 𝑠 𝑠 Let 𝑆 0 = πœ—πœ€ 0 , … , 𝑆 𝑒 = β€’ πœ—πœ€ 𝑒 Consider the balls 𝐢 𝑝, 𝑆 0 , … , 𝐢 𝑝, 𝑆 𝑒 β€’ 94

  53. Data Structure in Each Slab For each 𝑗 , let 𝐢(𝑝, 𝑠) be the smallest ball β€’ touching the closest 𝑗 π‘’β„Ž lines s.t. 𝑝 ∈ β„“ . We know 𝑝 would be on the boundary of slab. β€’ Let πœ€ 0 > β‹― , > be all pairwise angles 𝑠 𝑠 Let 𝑆 0 = πœ—πœ€ 0 , … , 𝑆 𝑒 = β€’ πœ—πœ€ 𝑒 Consider the balls 𝐢 𝑝, 𝑆 0 , … , 𝐢 𝑝, 𝑆 𝑒 β€’ β€’ Build net module inside 𝐢 𝑝, 𝑆 0 95

  54. Data Structure in Each Slab For each 𝑗 , let 𝐢(𝑝, 𝑠) be the smallest ball β€’ touching the closest 𝑗 π‘’β„Ž lines s.t. 𝑝 ∈ β„“ . We know 𝑝 would be on the boundary of slab. β€’ Let πœ€ 0 > β‹― > πœ€ 𝑒 be all pairwise angles 𝑠 𝑠 Let 𝑆 0 = πœ—πœ€ 0 , … , 𝑆 𝑒 = β€’ πœ—πœ€ 𝑒 Consider the balls 𝐢 𝑝, 𝑆 0 , … , 𝐢 𝑝, 𝑆 𝑒 β€’ β€’ Build net module inside 𝐢 𝑝, 𝑆 0 96

  55. Data Structure in Each Slab For each 𝑗 , let 𝐢(𝑝, 𝑠) be the smallest ball β€’ touching the closest 𝑗 π‘’β„Ž lines s.t. 𝑝 ∈ β„“ . We know 𝑝 would be on the boundary of slab. β€’ Let πœ€ 0 > β‹― > πœ€ 𝑒 be all pairwise angles 𝑠 𝑠 Let 𝑆 0 = πœ—πœ€ 0 , … , 𝑆 𝑒 = β€’ πœ—πœ€ 𝑒 Consider the balls 𝐢 𝑝, 𝑆 0 , … , 𝐢 𝑝, 𝑆 𝑒 β€’ β€’ Build net module inside 𝐢 𝑝, 𝑆 0 For each ball 𝐢(𝑝, 𝑆 𝑗 ) β€’ – Build unbounded module on it 97

  56. Data Structure in Each Slab For each 𝑗 , let 𝐢(𝑝, 𝑠) be the smallest ball β€’ touching the closest 𝑗 π‘’β„Ž lines s.t. 𝑝 ∈ β„“ . We know 𝑝 would be on the boundary of slab. β€’ Let πœ€ 0 > β‹― > πœ€ 𝑒 be all pairwise angles 𝑠 𝑠 Let 𝑆 0 = πœ—πœ€ 0 , … , 𝑆 𝑒 = β€’ πœ—πœ€ 𝑒 Consider the balls 𝐢 𝑝, 𝑆 0 , … , 𝐢 𝑝, 𝑆 𝑒 β€’ β€’ Build net module inside 𝐢 𝑝, 𝑆 0 For each ball 𝐢(𝑝, 𝑆 𝑗 ) β€’ – Build unbounded module on it – For each line β„“ 𝑐 β€’ Build a set of parallel modules with β„“ 𝑐 as their base line for all the lines that are πœ€ 𝑗 -close to β„“ 𝑐 , so that they cover the space between 𝐢(𝑝, 𝑆 𝑗 ) and 𝐢(𝑝, 𝑆 𝑗+1 ) with separation 𝑆 𝑗+1 πœ— 98

  57. Query Processing Algorithm β€’ Given π‘Ÿ , find the right slab, and retrieve all candidate lines β€’ Using binary search find 𝑠 99

  58. Query Processing Algorithm β€’ Given π‘Ÿ , find the right slab, and retrieve all candidate lines β€’ Using binary search find 𝑠 β€’ Find largest 𝑗 such that π‘Ÿ βˆ‰ 𝐢(𝑝, 𝑆 𝑗 ) 100

  59. Query Processing Algorithm β€’ Given π‘Ÿ , find the right slab, and retrieve all candidate lines β€’ Using binary search find 𝑠 β€’ Find largest 𝑗 such that π‘Ÿ βˆ‰ 𝐢(𝑝, 𝑆 𝑗 ) β€’ Use the unbounded module of 𝐢(𝑝, 𝑆 𝑗 ) to find a line β„“ β€² , we know – Either β„“β€² is an approximate closest line -> done – It is πœ€ 𝑗+1 -close to β„“ βˆ— 101

  60. Query Processing Algorithm β€’ Given π‘Ÿ , find the right slab, and retrieve all candidate lines β€’ Using binary search find 𝑠 β€’ Find largest 𝑗 such that π‘Ÿ βˆ‰ 𝐢(𝑝, 𝑆 𝑗 ) β€’ Use the unbounded module of 𝐢(𝑝, 𝑆 𝑗 ) to find a line β„“ β€² , we know – Either β„“β€² is an approximate closest line -> done – It is πœ€ 𝑗+1 -close to β„“ βˆ— β€’ Use the parallel modules of β„“ β€² to find an approximate closest line. -> done 102

  61. Query Processing Algorithm β€’ Given π‘Ÿ , find the right slab, and retrieve all candidate lines β€’ Using binary search find 𝑠 β€’ Find largest 𝑗 such that π‘Ÿ βˆ‰ 𝐢(𝑝, 𝑆 𝑗 ) β€’ Use the unbounded module of 𝐢(𝑝, 𝑆 𝑗 ) to find a line β„“ β€² , we know – Either β„“β€² is an approximate closest line -> done – It is πœ€ 𝑗+1 -close to β„“ βˆ— β€’ Use the parallel modules of β„“ β€² to find an approximate closest line. -> done 103

  62. Summary β€’ Nearest Line Search Problem 104

  63. Summary β€’ Nearest Line Search Problem β€’ Modules: unbounded, net, parallel 105

  64. Summary β€’ Nearest Line Search Problem β€’ Modules: unbounded, net, parallel β€’ Use of random sampling 106

  65. Summary β€’ Nearest Line Search Problem β€’ Modules: unbounded, net, parallel β€’ Use of random sampling β€’ How to improve given a line 107

  66. Summary β€’ Nearest Line Search Problem β€’ Modules: unbounded, net, parallel β€’ Use of random sampling β€’ How to improve given a line β€’ Bounds of our algorithm – Polynomial Space: 𝑃 1 𝑃 1 1 𝑒𝑂 𝑂 = 𝑃 𝑂 + 𝑒 𝑃 πœ—2 Γ— 𝒯 , πœ— πœ— πœ— – Poly-logarithmic query time : 𝑃 1 𝑃 1 𝑒 log 𝑂 𝑃 1 Γ— 𝒰( 𝑂 1 , πœ—) = 𝑒 + log 𝑂 + πœ— πœ— 108

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend