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

Recommend


More recommend