Geometric Approximation Using Coresets Pankaj K. Agarwal Department of Computer Science Duke University
� ✎ ✑ ✒ � ✓ ✔ ✕ ✖ ✍ ✑ ✍ ☞ ✎ ✗ ✄ ✚ ✛ ✎ ✓ ✔ ✕ ✖ ✍ � ✍ ☞ ✎ ✎ � ✆ ✁ ✌ ✁ ✆ ✝ ✞ ✟ ✠ ✞ ✡ ☛ ✞ ☞ ✆ � ✍ ✁ ✄ ✎ ✆ ✏ Kinetic Geometry : Set of moving points in ✂☎✄ Maintain the diameter (width, smallest enclosing disk) of . ✫ [A., Guibas, Hershberger, Veach] Diametral pair can change times Kinetic data structure with events ✫ Can we maintain the approximate diameter of more efficiently? Is there a small coreset s.t. ? ✍✙✘ ✫ Kinetic bounding box hierarchies? Geometric Approximation Using Coresets 1
� ✍ ✆ ✆ ✳ ✘ ✎ ✏ ✁ ✄ ✛ ✣ ✤ � ✣ ✎ ✑ ✒ � ✣ ✤ ✍ ✑ ✎ ✍ � ✎ ✎ ✍ ✝✰ ✖ ✁ � ✆ ✣ ✤ ✍ ✍ ✎ ✟ ✕ ✦ ✧ � ✔★ ✕ ✩ ✬ ✪ ✫ ✖ Shape Fitting : Set of points in ✂✢✜ r r O ✫ Fit a cylinder through I Find a cylinder ✣✥✤ ✭✯✮ Optimal solution: [A., Aronov, ✁✲✱ Sharir] -approximation: ✫ Can we compute an -approximation of δ in linear time? Is there is a small coreset so that approximates ? ✣✴✤ Geometric Approximation Using Coresets 2
� ✸ ✁ ✾ ✆ ✹ ✷ ✛ Geometry in Streaming Model t=1 t=2 t=3 t=4 ✫ An incoming stream of points in ✂✶✵ ✫ Maintain certain geometric/statistical measures of the input stream Diameter, smallest enclosing disk, -clustering ✫ Use space and processing time ✻✽✼ ✧✯✺ ✫ Much work done on maintaining a summary of 1D data ✫ Little work on multidimensional geometric data [A., Krishnan, Mustafa, Venkatasubramanian], [Hershberger, Suri], [Bagchi, Chaudhary, Eppstein, Goodrich] ✫ How much storage and processing time (per point) needed to maintain -approx of smallest disk enclosing ? Maintain a core set ! Geometric Approximation Using Coresets 3
❊ ❈ ❉ � ❉ ✚ ❉ ❆ ✿ ❅ ❉ ❉ ❅ ❉ ❈ ❆ ❈ ❈ ❋ ✛ ❑ ❅ ● � ❍ ✧ ❑ ■ ❉ ❉ ✹ ❈ ✟ ✍ � ✎ ❀ ▲ ✭ ✆ ❄ ✛ ✿ � ❅ ✒ � ✛ ✛ ❆ ❇ ❀ ❈ ❈ ❈ ✸ -Approximation and Random Sampling , : Set system (range space) ✫ ✰❁❀ ✒❃❂ : VC-dimension of -approximation if for all ✫ ✫ A random subset of size ❍❏■ is an -approximation of with high probability [Vapnik-Chervonenkis] ✫ Efficient deterministic algorithms for computing an -approximation [Matouˇ sek, Chazelle] Geometric Approximation Using Coresets 4
� ❉ � ✍ ✎ ✆ ❅ ✖ ❉ ✛ ❊ ❆ ✕ � ❅ ✔ � ✓ ✆ ✓ ✔ ✕ ✖ ✍ ✍ ✛ ✎ ❀ � ▲ � ✆ � ❅ ✂ ✄ ✆ ✟ ✎ ▼ ❆ ❊ � ❉ ❆ ✆ ◆ ✆ ❅ ❅ -Approximations ✫ An -approximation is a coreset of in a combi- natorial sense : Set of points in is a disk : an -approximation of ✰❁❀ approximates is not a coreset of in a metric/geometric sense ✫ does not approximate A best-fit circle for does not approximate the best-fit circle for What about other sampling schemes? Geometric Approximation Using Coresets 5
✆ ✛ ✆ ✛ Unified Framework for Coresets ✫ Notion of coreset is problem specicific ✫ Is there a unified framework that constructs coresets for a wide class of problems? Random subset is an -approximation for a large class of range spaces! Easy to compute Define the notion of -kernel ✫ Core set for a wide class of problems Geometric Approximation Using Coresets 6
� ✑ ❱ ✍ ❨ � ✛ � ✒ ✛ ✑ ❬ ✝ ✰ ❱ ❩ ✭ ✫ ✰ ✎ ✖ ❭ ▲ ✼ ❳ ✵ ❲ ❇ ❱ ✎ ✗ � ✰ ❱ ✍ ❨ ✎ ✛ ✚ ✔★ ✬ ✚ ❯ ❨ ❬ ❳ ✵ ❲ ❇ ❱ ❚ ❱ P ❙ P ❘ ◗ ✵ ✂ ✍ ✼ ✰ ✰ ❱ � ✬ ✎ ✟ ✖ ✫ ✪ ✝ ✕ -Kernels : Set of points in ω (u,Q) ❖✙P ω (u,S) u Directional width: For , ✭✥❩ -kernel: is an -kernel of if ✍✙✘ Geometric Approximation Using Coresets 7
✎ � ❛ ❜ � ❝ ✚ ✘ ✰ ✡ ✘ ❞ ✵ ▲ ❜ ❵ ✍ � ✎ ✎ � ✑ ✍ ✛ ❜ �❡ ❜ ✍ ✑ ✛ ✄ ✜ ❳ ✒ ✂ ✵ ✛ ❪ ❫ ✛ � ✘ ❴ ✛ ❳ ✵ ✻ ✼ ✾❵ ✵ ✛ ❴ ✘ ✡ ✁ ✄ Computing -Kernels Theorem A: [AHV, YAPV, Ch] , . We can compute an -kernel of of size in time . Lemma 1: affine transform s.t. ✫ Unit hypercube is the smallest box enclosing is fat ✫ is an -kernel of is an -kernel of ✫ Geometric Approximation Using Coresets 8
✾ ❳ ❴ ✛ ✵ ❳ ✜ ❵ ✄ � ▲ ✘ ❴ ✛ ✵ ✼ ❵ ✑ ✑ ❢ ❣ ❂ ❢ ✄ ✘ ❴ ✛ ✻ ✵ ❳ ✼ ✘ ✡ ✁ � ✘ ❞ ✵ ✘ ✛ ❪ ❫ ✚ ✛ ❝ ✁ ✰ ✘ ❴ ✛ ✻ ✵ ❳ ✼ ✾ ❵ ✄ ✡ Computing -Kernels Lemma 2: : Set of fat points in , . We can compute an -kernel of of size in time . Sketch: Algorithm in two phases ε ✫ Compute -size approximation B ✫ Draw a sphere of radius centered at origin q ✫ Draw a grid of size on ✫ For each grid point , select its nearest neigh- CH(Q) bor in (Suffices to compute approximate NN.) Geometric Approximation Using Coresets 9
♠ ♥ ✈ q s r r r s r r r ♦ ✇ ♠ q q ♠ s ✉ q ✉ q ♠ ✉ s r s ♣ r ♥ ♦ s ✈ ✛ r ✇ q r r s r t r ♦ ♣ ✇ t ♣ s ♣ ✇ ✉ ♥ ✈ ✇ ♣ q ♦ q s ♥ ♣ ✈ ✉ s ♦ q ♥ s ✈ r r r s r r r q ♠ q ♥ ♠ ♠ q ♣ r s r r r ♣ ♠ ✈ ✇ ✉ q ♠ q s ✇ r ♠ s q r r s r r r ✈ s q s r q r t t ♥ ✉ s ✉ ✉✈ ♦ t r ♣ ✈ ✇ q r r s r r r q r s q ♥ q ✛ ❤ ❫ ✐ ❫❥ ♣ ✉ s ✈ q ❦ r ❧ ♠ ❦ ❧ ♥ ❦ ❧ ♦ ❦ ❧ ♣ q r s ✈ ✈ ♠ ✈ ♣ s ♣ ✈ ♦ q ✈ t s ♥ t r q r s r r r ♦ ✈ ♦ ✉ ♣ s ♣ ♠ ♠ ♥ ♠ ♠ s ✈ t ♠ ✇ ✉ s ✉ q ♦ q s r r r s r r r q r r ✫ Computing Kernel Computation clustered cylinder sphere Input Type -kernels for Geometric Approximation Using Coresets Input Size on various synthetic inputs Kernel Size 10
⑤ ⑧ ⑧ ⑦ ⑤ ⑩ ⑤ ⑦ ④ ④ ④ ⑤ ⑦ ⑤ ⑩⑧ ⑦ ④ ❶ ⑤ ④ ⑤ ⑤ ⑤ ⑤ ⑥ ⑤ ⑩ ⑦ ■ ⑦ ❷ ❶ ② ⑩ ⑩ ⑤ ⑤⑧ ■ ⑩ ⑦ ⑤ ④ ⑤ ⑦ ⑤ ⑤ ③ ⑦ ⑤ ⑤ ⑤ ⑤ ④ ⑦ ⑤ ⑤⑧ ⑥ ⑤ ⑤ ⑤ ⑥ ④ ⑦ ⑧ ⑤ ⑧ ⑩ ⑧ ⑦ ④ ② ⑦ ⑤ ⑤ ⑤❷ ⑥ ④ ② ⑧ ⑦ ④ ⑦ ⑤ ④ ■ ⑤ ⑦ ⑤ ⑧ ⑤ ⑤ ⑦ ⑦ ③ ❷ ⑦ ❶ ④ ⑤ ⑤ ⑥ ④ ② ⑦ ⑨ ⑤ ⑤ ⑤ ③ ⑤ ⑦ ⑦ ⑤ ④ ⑦ ⑤ ④ ⑤ ⑤ ⑦ ③ ⑤ ⑦ ⑤ ④ ⑤ ⑤ ⑤ ④ ⑤ ⑤ ⑦ ⑤ ④ ⑧ ⑦ ⑤ ❶ ⑤ ⑤ ⑥ ⑤ ⑤ ④ ⑤ ⑥ ⑤ ⑦ ② ⑤ ⑤ ⑥ ⑤ ⑤ ④ ⑤ ⑤ ② ⑦ ⑩ ⑤ ④ ⑦ ⑤ ⑦ ⑤⑨ ⑩ ④ ⑤ ⑨ ⑦ ⑤ ⑤ ⑦ ⑨ ⑤ ④ ⑤ ⑦ ⑤ ② ⑤ ⑦ ④ ① ⑨ ④ ⑦ ⑤ ❶ ③ P ⑦ ② ① P ■ ① P ❷ ④ ⑤ ⑦ ③ ⑤ ⑦ ⑤ ④ ⑤ ⑤ ⑤ ⑤⑧ ⑦ ⑤ ⑤ ⑤ ⑤ ⑥ ⑦ ⑧❶ ③❷ ⑤ ⑤ ⑦ ⑤ ⑤⑧ ⑦ ⑤ ⑤ ⑤ ⑤ ⑥ ⑤ ④ ⑤ ■ ④ ⑦ ❷ ④ ④ ③ ② ⑦ ■ ⑤ ⑦ ⑤ ⑤ ⑧ ⑤ ⑦ ⑤ ③ ⑦ ■ ⑦ ⑥ ■ ⑦ ⑩ ⑤ ⑤ ⑤ ⑤ ⑤ ⑤ ⑤ ⑥ ④ ■ ■ ⑨ ⑦ ■ ⑦ ③ ■ ⑦ ⑩ ④ ⑨ ⑧ ④ ⑤ ❶ ⑤ ⑦ ⑧ ④ ④ ⑤ Kernel Computation: Running Time Input Input Type Size Prepr Query Prepr Query Prepr Query sphere cylinder clustered ✫ Prepr: Time (in secs.) in converting input into a fat set and prepro- cessing for nearest-neighbor (NN) queries ✫ Query: Time (in secs.) in answering NN queries ✫ Experiments run on Pentium IV 3.6GHz processor with 2GB RAM Geometric Approximation Using Coresets 11
✉ s ♥ ❸ ♠ ✇ ♥ ♦ ✛ r ✈ ♥ ❸ r q r ♥ ❸ r ♥ ♦ s ✈ ♥ ✇ ♠ r r r ❸ r t ♦ q ❸ ✉ ♠ r r q ♦ ♣ r ❸ q ♦ r ❫❥ ✐ ❫ ❤ ✛ ❸ r ✉ ♣ q r ❸ r ✉ q ❸ r ✉ ♥ t s ✇ ✈ ✇ Kernel Computation ✫ Computing -kernels for on 3D models Input Input Running Time Kernel Diameter Type Size Prepr Query Size Error bunny dragon buddha Geometric Approximation Using Coresets 12
Experimental Results: Approximation Error ✫ Tradeoff between kernel size and approximation error 0.45 0.45 Bunny: 35,947 vertices 2D 0.4 Dragon: 437,645 vertices 0.4 4D 6D 0.35 0.35 8D Approximation Error Approximation Error 0.3 0.3 0.25 0.25 0.2 0.2 0.15 0.15 0.1 0.1 0.05 0.05 0 0 0 100 200 300 400 500 0 100 200 300 400 500 600 700 Kernel Size Kernel Size Geometric Approximation Using Coresets 13
Recommend
More recommend