HalfSpace Intersections Randomized algorithm and expected run time

  • Slides: 18
Download presentation
Half-Space Intersections Randomized algorithm and expected run time analysis

Half-Space Intersections Randomized algorithm and expected run time analysis

Problem Definition – 2 D n Given n half-planes as linear inequalities, we wish

Problem Definition – 2 D n Given n half-planes as linear inequalities, we wish to find a boundary where they all intersect

Problem Definition – 3 D n n We extend our problem to 3 D

Problem Definition – 3 D n n We extend our problem to 3 D The intersection is a convex polyhedron This polyhedron is represented as a graph with degree 3 inter(S): the intersection of a set S of half-spaces wpcontent. answers. com/wikipedia/commons/thumb/6/65/Half_//: http Space. svg/300 px-Half_Space. svg. png

Further Assumptions n inter(S) is bounded. If not – there’s a point at infinity

Further Assumptions n inter(S) is bounded. If not – there’s a point at infinity which bounds it n No 3 vertices are collinear n Intersection of planes and spaces can be computed in constant time n Deciding if a point is inside a half-space can be computed in constant time

Algorithm Outline n n Randomize a permutation of the set S of half spaces

Algorithm Outline n n Randomize a permutation of the set S of half spaces For : n Add half space hi to inter(Si-1) by n n removing all the vertices in adding new vertices on the boundary of

Addition of a Half Space n n n At step i we have a

Addition of a Half Space n n n At step i we have a bidirectional pointer from every to some When we add hi we start at the conflicting vertex and search the graph until we enter hi We destroy all the vertices we encounter and create new ones on the face of

Addition of a Half Space

Addition of a Half Space

Pointer Update n Recall: the pointer is bidirectional n When we delete a vertex

Pointer Update n Recall: the pointer is bidirectional n When we delete a vertex v pointing to a half-space h ∈ S Si we have to find a new vertex w, such that n We perform BFS along until we encounter vertices inside inter(Si). This is our w.

Number of Vertices Created n Backwards analysis: suppose we delete vertices from inter(Si) and

Number of Vertices Created n Backwards analysis: suppose we delete vertices from inter(Si) and get inter(Si-1) n The convex polyhedron inter(Si) has i faces and O(i) vertices (because the degree is bounded by 3) n If we choose one of i half-spaces to delete, the expected number of vertices we delete is n Hence: the expected number of vertices created at the addition of hi is constant

Search Cost Analysis n When adding a half-space, we perform a BFS starting from

Search Cost Analysis n When adding a half-space, we perform a BFS starting from the pointed vertex n Time – linear in # of deleted vertices n Each deleted vertex was created once: we only count creations n How many vertices are created in total?

Total # of Vertices Created n Total vertices created when adding hi: n c(H,

Total # of Vertices Created n Total vertices created when adding hi: n c(H, h): # of conflict vertices between inter(H) and h n Backwards analysis – the expectation over all hi is bounded by: since the degree of each vertex is bounded by 3

Total # of Vertices Created n hi+1 is chosen randomly, so: n The expected

Total # of Vertices Created n hi+1 is chosen randomly, so: n The expected # of vertices is bounded by: n We saw the algorithm runs in time linear to the number of vertices created, so this expression also bounds the run time of the algorithm

Bounding the Total Run Time n c(Si, hi+1) is also the expected number of

Bounding the Total Run Time n c(Si, hi+1) is also the expected number of vertices deleted by the addition of hi+1

Bounding the Total Run Time n n Let tc(v) be the time v is

Bounding the Total Run Time n n Let tc(v) be the time v is created and td(v) be the time v is destroyed Then: for all the vertices v created in the algorithm

Bounding the Total Run Time n Obviously, tc(v) ≤ td(v) – 1. Therefore: Constant

Bounding the Total Run Time n Obviously, tc(v) ≤ td(v) – 1. Therefore: Constant n Recall that the expected number of vertices created at each iteration is constant!

Bounding the Total Run Time n The total run time of the algorithm is:

Bounding the Total Run Time n The total run time of the algorithm is:

Convex Hull in 3 D n n n Using duality we can reduce the

Convex Hull in 3 D n n n Using duality we can reduce the problem of convex hull in 3 D to finding half-space intersection (in 3 D) We just saw how to compute the halfspace intersection in O(nlogn) time 3 D Convex Hull problem takes also O(nlogn) time to compute