fast smallest enclosing ball computation in high
play

Fast Smallest-Enclosing-Ball Computation in High Dimensions Martin - PowerPoint PPT Presentation

Fast Smallest-Enclosing-Ball Computation in High Dimensions Martin Kutz FU Berlin joint work with Bernd G artner and Kaspar Fischer, ETH Z urich Martin Kutz Smallest Enclosing Balls The Smallest Enclosing Ball given: finite point set


  1. Fast Smallest-Enclosing-Ball Computation in High Dimensions Martin Kutz FU Berlin joint work with Bernd G¨ artner and Kaspar Fischer, ETH Z¨ urich Martin Kutz — Smallest Enclosing Balls

  2. The Smallest Enclosing Ball given: finite point set S in R d Martin Kutz — Smallest Enclosing Balls 1

  3. The Smallest Enclosing Ball given: finite point set S in R d wanted: smallest ball B = B ( c, r ) := { x : || x − c || ≤ r } containing S Martin Kutz — Smallest Enclosing Balls 2

  4. The Smallest Enclosing Ball given: finite point set S in R d wanted: smallest ball B = B ( c, r ) := { x : || x − c || ≤ r } containing S Call this unique minimal B the smallest enclosing ball of S , denoted seb ( S ) . Martin Kutz — Smallest Enclosing Balls 3

  5. Applications • visibility culling and bounding sphere hierarchies in 3D computer graphics • clustering (e.g. for support-vector machines) — many dimensions • nearest neighbor search Martin Kutz — Smallest Enclosing Balls 4

  6. Previous Work • Welzl proposed randomized combinatorial algorithm, implemented by G¨ artner, fast for d ≤ 30 , impractical above. • Quadratic-programming approach by G¨ artner & Sch¨ onherr, uses exact arithmetic, up to d = 300 . Martin Kutz — Smallest Enclosing Balls 5

  7. Previous Work • Welzl proposed randomized combinatorial algorithm, implemented by G¨ artner, fast for d ≤ 30 , impractical above. • Quadratic-programming approach by G¨ artner & Sch¨ onherr, uses exact arithmetic, up to d = 300 . • General-purpose QP-solver CPLEX, solves d ≤ 3,000 . Martin Kutz — Smallest Enclosing Balls 6

  8. Previous Work • Welzl proposed randomized combinatorial algorithm, implemented by G¨ artner, fast for d ≤ 30 , impractical above. • Quadratic-programming approach by G¨ artner & Sch¨ onherr, uses exact arithmetic, up to d = 300 . • General-purpose QP-solver CPLEX, solves d ≤ 3,000 . • Zhou, Toh, and Sun use interior-point method to find approximate solution, up to d = 10,000 . • Kumar, Mitchell, Yildrum compute approximation with core sets, results given up to d = 1,400 . Martin Kutz — Smallest Enclosing Balls 7

  9. Our Algorithm • simple combinatorial algorithm (not approximation) Martin Kutz — Smallest Enclosing Balls 8

  10. Our Algorithm • simple combinatorial algorithm (not approximation) • similar to LP simplex-method • equipped with pivot scheme to avoid cycling Martin Kutz — Smallest Enclosing Balls 9

  11. Our Algorithm • simple combinatorial algorithm (not approximation) • similar to LP simplex-method • equipped with pivot scheme to avoid cycling • C ++ floating-point implementation: solves several thousand points in a few thousand dimensions Martin Kutz — Smallest Enclosing Balls 10

  12. Our Algorithm • simple combinatorial algorithm (not approximation) • similar to LP simplex-method • equipped with pivot scheme to avoid cycling • C ++ floating-point implementation: solves several thousand points in a few thousand dimensions • idea not completely new; Hopp & Reeve presented similar algorithm but without proofs, some details unclear, 3D only Martin Kutz — Smallest Enclosing Balls 11

  13. The Basic Idea: Deflating a Ball Iteratively shrink an enclosing Ball B = B ( c, T ) represented by • a current center c , • an affinely independent subset T ⊆ S of points at a common distance from c — the support set Martin Kutz — Smallest Enclosing Balls 12

  14. The Basic Idea: Deflating a Ball Iteratively shrink an enclosing Ball B = B ( c, T ) represented by • a current center c , • an affinely independent subset T ⊆ S of points at a common distance from c — the support set Invariants: T ⊂ ∂B ( c, T ) S ⊂ B ( c, T ) Martin Kutz — Smallest Enclosing Balls 13

  15. 2D “Example” Martin Kutz — Smallest Enclosing Balls 14

  16. 2D “Example” Martin Kutz — Smallest Enclosing Balls 15

  17. 2D “Example” Martin Kutz — Smallest Enclosing Balls 16

  18. 2D “Example” Martin Kutz — Smallest Enclosing Balls 17

  19. 2D “Example” Martin Kutz — Smallest Enclosing Balls 18

  20. 2D “Example” Martin Kutz — Smallest Enclosing Balls 19

  21. 2D “Example” Martin Kutz — Smallest Enclosing Balls 20

  22. 2D “Example” Martin Kutz — Smallest Enclosing Balls 21

  23. Termination Criterion Martin Kutz — Smallest Enclosing Balls 22

  24. Termination Criterion Lemma (Seidel) . Let T be set of points on boundary of some ball B with center c . Then B = seb ( T ) c ∈ conv ( T ) . ⇐ ⇒ Martin Kutz — Smallest Enclosing Balls 23

  25. How to Shrink Moving Step [ Precondition c �∈ aff ( T ) ] Move c orthogonally towards aff ( T ) , i.e., heading for closest point in aff ( T ) . aff ( T ) Martin Kutz — Smallest Enclosing Balls 24

  26. How to Shrink Moving Step [ Precondition c �∈ aff ( T ) ] Move c orthogonally towards aff ( T ) , i.e., heading for closest point in aff ( T ) . For any fixed point c ′ on this path, T stays on sphere around c ′ . Especially, our target point is the center of the unique sphere through T in aff ( T ) , called circumcenter of T . aff ( T ) Martin Kutz — Smallest Enclosing Balls 25

  27. How to Shrink Moving Step [ Precondition c �∈ aff ( T ) ] Move c orthogonally towards aff ( T ) , i.e., heading for closest point in aff ( T ) . For any fixed point c ′ on this path, T stays on sphere around c ′ . Especially, our target point is the center of the unique sphere through T in aff ( T ) , called circumcenter of T . Stop movement when shrinking boundary hits new point of S , insert it into T ; otherwise just stop with c in aff ( T ) . aff ( T ) Martin Kutz — Smallest Enclosing Balls 26

  28. How to Shrink Dropping Step + Necessary if c ∈ aff ( T ) \ conv ( T ) . Must remove a point from T . − + Martin Kutz — Smallest Enclosing Balls 27

  29. How to Shrink Dropping Step + Necessary if c ∈ aff ( T ) \ conv ( T ) . Must remove a point from T . Pick one with negative coefficient in affine representation � � λ p p , λ p = 1 . c = p ∈ T p ∈ T − + Martin Kutz — Smallest Enclosing Balls 28

  30. How to Shrink Dropping Step + Necessary if c ∈ aff ( T ) \ conv ( T ) . Must remove a point from T . Pick one with negative coefficient in affine representation � � λ p p , λ p = 1 . c = p ∈ T p ∈ T Afterwards, c lies outside the new aff ( T ) , so it we can move again. − The next move will not recollect the + dropped point. Martin Kutz — Smallest Enclosing Balls 29

  31. The Whole Algorithm c := any point of S ; T := { p } , with some p ∈ S at maximal distance from c ; while c �∈ conv ( T ) do [ Invariant: B ( c, T ) ⊃ S , ∂B ( c, T ) ⊃ T , and T affinely independent ] if c ∈ aff ( T ) then drop T -point with negative coefficient in aff. rep. of c ; [ Invariant: c �∈ aff ( T ) ] Martin Kutz — Smallest Enclosing Balls 30

  32. The Whole Algorithm c := any point of S ; T := { p } , with some p ∈ S at maximal distance from c ; while c �∈ conv ( T ) do [ Invariant: B ( c, T ) ⊃ S , ∂B ( c, T ) ⊃ T , and T affinely independent ] if c ∈ aff ( T ) then drop T -point with negative coefficient in aff. rep. of c ; [ Invariant: c �∈ aff ( T ) ] move c towards aff ( T ) , stop when boundary hits new point q ∈ S or c reaches aff ( T ) ; if point stopped us then T := T ∪ { q } ; end while ; Martin Kutz — Smallest Enclosing Balls 31

  33. Our Example Again Martin Kutz — Smallest Enclosing Balls 32

  34. Our Example Again Martin Kutz — Smallest Enclosing Balls 33

  35. Our Example Again Martin Kutz — Smallest Enclosing Balls 34

  36. Our Example Again Martin Kutz — Smallest Enclosing Balls 35

  37. Our Example Again Martin Kutz — Smallest Enclosing Balls 36

  38. Our Example Again + − + Martin Kutz — Smallest Enclosing Balls 37

  39. Our Example Again + + Martin Kutz — Smallest Enclosing Balls 38

  40. Our Example Again Martin Kutz — Smallest Enclosing Balls 39

  41. Our Example Again + + + Martin Kutz — Smallest Enclosing Balls 40

  42. Martin Kutz — Smallest Enclosing Balls 41

  43. Martin Kutz — Smallest Enclosing Balls 42

  44. Martin Kutz — Smallest Enclosing Balls 43

  45. + − + Martin Kutz — Smallest Enclosing Balls 44

  46. + + Martin Kutz — Smallest Enclosing Balls 45

  47. Correctness & Termination Correctness “clear” from invariants. Martin Kutz — Smallest Enclosing Balls 46

  48. Correctness & Termination Correctness “clear” from invariants. while c �∈ conv ( T ) do [ Invariant: B ( c, T ) ⊃ S , ∂B ( c, T ) ⊃ T , and T affinely independent ] if c ∈ aff ( T ) then drop T -point with negative coefficient in aff. rep. of c ; [ Invariant: c �∈ aff ( T ) ] move c towards aff ( T ) , stop when boundary hits new point q ∈ S or c reaches aff ( T ) ; if point stopped us then T := T ∪ { q } ; end while ; Martin Kutz — Smallest Enclosing Balls 47

  49. Correctness & Termination Correctness “clear” from invariants. Termination more complicated. Martin Kutz — Smallest Enclosing Balls 48

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