VIEWS: 4 PAGES: 18 POSTED ON: 1/16/2013
Common Intersection of Half-Planes in R2 2 PROBLEM (Common Intersection of half- planes in R2) Given n half-planes H1, H2,..., Hn in R2 compute their intersection H1H2 ...Hn. There is a simple O(n2) algorithm for computing the intersection of n half-planes in R2. Theorem: The intersection of n half-planes in R2 can be found in (n log n) time, and this is optimal. Common Intersection of Half-Planes in R2 1 Theorem: The intersection of n half-planes in R2 can be found in (n log n) time, and this is optimal. Proof. (1)To show upper bound, we solve it by Divide-and-Conquer T(n) = 2T(n/2) + O(n) = O(n log n) Merge the solutions to sub-problems solutions by finding the intersection of two resulting convex polygons. (2)To prove the lower bound we show that Sorting O(n) Common intersection of half-planes. Given n real numbers x1,..., xn Let Hi: y 2xix – xi2 Once P = H1H2 ...Hn is formed, we may read off the x.'s in sorted Order by reading the slope of successive edges of P. Linear Programming in R2 14 PROBLEM (2-variable LP) Minimize ax + by, subject to aix + biy + ci 0, i= 1,...,n. 2-variable LP O(n) Common intersection of half-planes in R2 Theorem: A linear program in two variables and n constraints can be solved in O(n log n) time. Linear Programming in R2 13 Theorem: A linear program in two variables and n constraints can be solved in (n). It can be solved by Prune-and-Search technique. This technique not only discards redundant constraints (i.e. those that are also irrelevant to the half-plane intersection task) but also those constraints that are guaranteed not to contain a vertex extremizing the objective function (referred to as the optimum vertex). Linear Programming in R2 12 The 2-variable LP problem Minimize ax + by subject to aix + biy + ci 0, i= 1,...,n. (LP1) can be transformed by setting Y=ax+by & X=x as follows: O(n) Minimize Y subject to iX + iY + ci 0, i= 1,...,n. (LP2) where i=(ai-(a/b)bi) & i= bi/b. Linear Programming in R2 11 In the new form we have to compute the smallest Y of the vertices of the convex polygon P (feasible region) determined by the constraints. Y P X Optimum vertex Linear Programming in R2 10 To avoid the construction to the entire boundary of P, we proceed as follows. Depending upon whether i is zero, negative, or positive we partition the index set {1, 2, …, n} into sets I0, I, I+ . Y F(X) P F+(X) u1 u2 X Linear Programming in R2 9 I0: All constraints in I0 are vertical lines and determine the feasible interval for X u1X u2 u1 = max{-ci/i: iI0, i<0} u2 = min{-ci/i: iI0, i>0} I+: All constraints in I+ define a piecewise upward- convex function F+ = miniI+(i X+ i), where i = - (i / i) & i = - (ci / i) I-: All constraints in I- define a piecewise downward- convex function F- = miniI-(i X+ i), where i = - (i / i) & i = - (ci / i) Linear Programming in R2 8 Our problem so becomes: O(n) Minimize F-(X) subject to F-(X) F+(X) (LP3) u1Xu2 Given X’ of X, the primitive, called evaluation, F+(X’) & F-(X’) can be executed in O(n) if H(X’) = F-(X’) - F+(X’) > 0, then X’ infeasible if H(X’) = F-(X’) - F+(X’) 0, then X’ feasible Linear Programming in R2 7 Given X’ of X in [u1, u2] , we are able to reach one of the following conclusions in time O(n) X’ infeasible & no solution to the problem; X’ infeasible & we know in which side of X’ (right or left) any feasible value of X may lies; X’ feasible & we know in which side of X’ (right or left) the minimum of F-(X) lies; X’ achieves the minimum of F-(X); Linear Programming in R2 6 We should try to choose abscissa X’ where evaluation takes place s.t. if the algorithm does not immediately terminate, at least a fixed fraction of currently active constraints can be pruned. We get the overall running time T(n) i k(1-)i-1n<kn/=O(n) Linear Programming in R2 5 We show that the value =1/4 as follows: At a generic stage assume the stage has M active constraints let I+& I- be the index set as defined earlier, with | I+|+| I-|=M. We partition each of I+& I- into pairs of constraints. For each pair i, j of I+ , O(M) If i = j (i.e. the corresponding straight lines are parallel) then one can be eliminated. (Fig a) Otherwise, let Xij denote the abscissa of their intersection If (Xij < u1 or Xij > u1) then one can be eliminated. (Fig b) If (u1 Xij u2) then we retain Xij with no elimination. (Fig c) For each pair i, j of I- , it is similar to I+ O(M) Linear Programming in R2 4 Xij < u1 u2 u1 u2 < Xij Fig a Fig b Fig c Linear Programming in R2 3 For all pairs, neither member of which has been eliminated, we compute the abscissa of their abscissa of their intersection. Thus, if k constraints have been eliminated, we have obtained a set S of (M-k)/2 intersection abscissae. O(M) Find the median X1/2 of S O(M) If X1/2 is not the extreminzing abscissa, then We test which side of X1/2 the optimum lies. O(M) So half of the Xij‘s lie in the region which are known not to contain the optimum. For each Xij in the region, one constraint can be eliminated O(M) (Fig d) This concludes the stage, with the result that at least k+ [(M-k)/2]/2 M/4 constraints have been eliminated. Linear Programming in R2 2 Y F(X) P F+(X) u1 Xij u2 X X1/2 Eliminated Fig d: optimal lies on the left side of X1/2 Linear Programming in R2 1 Prune & Search Algorithm for 2-variable LP problem Transform (LP1) to (LP2) & (LP3) O(M) For each pair of constraints if (i= i or Xij<u1 or Xij>u2), then eliminate one constraint O(M) Let S be all the pairs of constraints s.t. u1Xij u2, Find the median X1/2 of S & test which side of X1/2 the optimum lies O(M) Half of the Xij‘s lie in the region which are known not to contain the optimum. For each Xij in the region, one constraint can be eliminated. O(M) Common Intersection Common Intersection of half-planes in R2: (n log n) 2-varialbe Linear Programming: (n) We must point out that explicit construction of the feasible polytope is not a viable approach to linear programming in higher dimensions because the number of vertices can grow exponentially with dimension. For example, n-dim hypercube has 2n vertices. The size of Common Intersection of half-spaces in Rk is exponential in k, but the time complexity for k- variable linear programming is polynomial in k. These two problems are not equivalent in higher dimensions.