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

Recommend


More recommend