Halfplane Intersection and Linear Programming
Transcript of Halfplane Intersection and Linear Programming
![Page 1: Halfplane Intersection and Linear Programming](https://reader033.fdocuments.us/reader033/viewer/2022051114/62774d4d44e0e7263c2bef7a/html5/thumbnails/1.jpg)
Halfplane Intersectionand
Linear Programming
Dan Halperin, Tel Aviv University
Figures and pseudocode taken from:
CGAA: Chapter 4 in Computational Geometry Algorithms and Applications, de Berg et al
![Page 2: Halfplane Intersection and Linear Programming](https://reader033.fdocuments.us/reader033/viewer/2022051114/62774d4d44e0e7263c2bef7a/html5/thumbnails/2.jpg)
Overview
• The casting problem
• Half-plane intersection
• Linear programming (LP) in low dimensions
• Minimum enclosing disc
• The casting problem, take II (later on in the semester)
![Page 3: Halfplane Intersection and Linear Programming](https://reader033.fdocuments.us/reader033/viewer/2022051114/62774d4d44e0e7263c2bef7a/html5/thumbnails/3.jpg)
Credits
• CGAA: Chapter 4 in Computational Geometry Algorithms and Applications, Linear Programming, by de Berg et al
• L5vK: Lecture 5 in Computational Geometry, Casting a polyhedron, by Marc van Kreveld
![Page 4: Halfplane Intersection and Linear Programming](https://reader033.fdocuments.us/reader033/viewer/2022051114/62774d4d44e0e7263c2bef7a/html5/thumbnails/4.jpg)
Slides, Part I
• Lecture 5 in Computational Geometry, Casting a polyhedron, by Marc van Kreveld (Slides4a):• The casting problem
• Half-plane intersection
• Linear programming (LP) in low dimensions
• Supplements, here:• The space of directions
• Probabilistic analysis of LP2D
• Unbounded LP2D
• LP3D
![Page 5: Halfplane Intersection and Linear Programming](https://reader033.fdocuments.us/reader033/viewer/2022051114/62774d4d44e0e7263c2bef7a/html5/thumbnails/5.jpg)
The space of directions
![Page 6: Halfplane Intersection and Linear Programming](https://reader033.fdocuments.us/reader033/viewer/2022051114/62774d4d44e0e7263c2bef7a/html5/thumbnails/6.jpg)
[blog.weatherflow.com]
![Page 7: Halfplane Intersection and Linear Programming](https://reader033.fdocuments.us/reader033/viewer/2022051114/62774d4d44e0e7263c2bef7a/html5/thumbnails/7.jpg)
Representing directions in the plane
• Using the unit circle 𝑆1
• The point 𝑝 represents the vector from the origin to 𝑝
![Page 8: Halfplane Intersection and Linear Programming](https://reader033.fdocuments.us/reader033/viewer/2022051114/62774d4d44e0e7263c2bef7a/html5/thumbnails/8.jpg)
Representing upward directions
• Using the line 𝑦 = 1
• The point 𝑝′ represents the vector from the origin to 𝑝′
![Page 9: Halfplane Intersection and Linear Programming](https://reader033.fdocuments.us/reader033/viewer/2022051114/62774d4d44e0e7263c2bef7a/html5/thumbnails/9.jpg)
Representing directions in (3-)space
• Using the unit sphere 𝑆2
• Upward directions: the plane 𝑧 = 1
![Page 10: Halfplane Intersection and Linear Programming](https://reader033.fdocuments.us/reader033/viewer/2022051114/62774d4d44e0e7263c2bef7a/html5/thumbnails/10.jpg)
LP2D randomized, boundedAnalysis
![Page 11: Halfplane Intersection and Linear Programming](https://reader033.fdocuments.us/reader033/viewer/2022051114/62774d4d44e0e7263c2bef7a/html5/thumbnails/11.jpg)
![Page 12: Halfplane Intersection and Linear Programming](https://reader033.fdocuments.us/reader033/viewer/2022051114/62774d4d44e0e7263c2bef7a/html5/thumbnails/12.jpg)
Running time analysis
• Random permutation: 𝑂(𝑛)
• Line 5, the `easy’ case, 𝑣𝑖 − 1 ∉ 𝐻𝑖 : 𝑂(𝑛) (𝑣 subscript 𝑖 minus 1)
• It remains to estimate the running time of all the `hard’ cases
• Let 𝑋𝑖 be the indicator random variable, which is 1 if Step 𝑖 is a hard case and 0 otherwise
• The running time of all the hard cases: σ𝑖=1𝑛 𝑂 𝑖 𝑋𝑖
• Randomized analysis−the expected value of the running time 𝐸(σ𝑖=1
𝑛 𝑂 𝑖 𝑋𝑖)
![Page 13: Halfplane Intersection and Linear Programming](https://reader033.fdocuments.us/reader033/viewer/2022051114/62774d4d44e0e7263c2bef7a/html5/thumbnails/13.jpg)
• In what follows, we assume that the first two half-planes ℎ1, ℎ2 are fixed, so our randomized analysis focuses on steps 𝑖 = 3,… , 𝑛
![Page 14: Halfplane Intersection and Linear Programming](https://reader033.fdocuments.us/reader033/viewer/2022051114/62774d4d44e0e7263c2bef7a/html5/thumbnails/14.jpg)
Running time analysis, cont’d
• Randomized analysis−the expected value of the running time 𝐸(σ𝑖=3
𝑛 𝑂 𝑖 𝑋𝑖)
• Using linearity of expectation, 𝐸(σ𝑖=3𝑛 𝑂 𝑖 𝑋𝑖) = σ𝑖=3
𝑛 𝑂 𝑖 𝐸(𝑋𝑖)
• 𝐸 𝑋𝑖 = ?
• The expected value of an indicator random variable is the probability that 𝑋𝑖 = 1
• Let’s start with 𝑋𝑛
![Page 15: Halfplane Intersection and Linear Programming](https://reader033.fdocuments.us/reader033/viewer/2022051114/62774d4d44e0e7263c2bef7a/html5/thumbnails/15.jpg)
The last step
• What is the probability that 𝑋𝑛 = 1?
• Pr[𝑋𝑛 = 1]≤2
𝑛−2
• Why at most?• more than two lines meet at 𝑣𝑛• 𝑣𝑛 is defined by ℎ1 or ℎ2
[CGAA]
![Page 16: Halfplane Intersection and Linear Programming](https://reader033.fdocuments.us/reader033/viewer/2022051114/62774d4d44e0e7263c2bef7a/html5/thumbnails/16.jpg)
The 𝑖th step
• What is the probability that 𝑋𝑖 = 1?
• Let’s first assume that the set of half-planes ℎ3 … ℎ𝑖 is fixed
• Then the previous argument holds and the probability is ≤2
𝑖−2
• But every subset of 𝑖 − 2 half-planes has the same probability to be those ℎ3 … ℎ𝑖
• Hence, Pr[𝑋𝑖 = 1]≤2
𝑖−2
![Page 17: Halfplane Intersection and Linear Programming](https://reader033.fdocuments.us/reader033/viewer/2022051114/62774d4d44e0e7263c2bef7a/html5/thumbnails/17.jpg)
Summary
• 𝐸(σ𝑖=3𝑛 𝑂 𝑖 𝑋𝑖) = σ𝑖=3
𝑛 𝑂 𝑖 𝐸(𝑋𝑖) ≤ σ𝑖=3𝑛 𝑂 𝑖
2
𝑖−2= 𝑂(𝑛)
• Together with the other costs, the algorithm runs in expected 𝑂(𝑛) time
![Page 18: Halfplane Intersection and Linear Programming](https://reader033.fdocuments.us/reader033/viewer/2022051114/62774d4d44e0e7263c2bef7a/html5/thumbnails/18.jpg)
LP2D unbounded
![Page 19: Halfplane Intersection and Linear Programming](https://reader033.fdocuments.us/reader033/viewer/2022051114/62774d4d44e0e7263c2bef7a/html5/thumbnails/19.jpg)
Possible outcomes of LP2D
• We now consider also the case where the program may be unbounded
• Possible output:• The optimal (maximal) solution, as before
• The program is infeasible, as before
• The program is unbounded: a ray along which the solution gets arbitrarily large values
![Page 20: Halfplane Intersection and Linear Programming](https://reader033.fdocuments.us/reader033/viewer/2022051114/62774d4d44e0e7263c2bef7a/html5/thumbnails/20.jpg)
Overall scheme for general LP2D
• We will start by testing for the unbounded case, with possible outcomes:• The program is infeasible, stop
• The program is unbounded, with the desired ray, stop
• The program is bounded, together with two witness half-planes ℎ1, ℎ2 for the boundedness, continue to the previous, bounded, procedure
• Notice that our guarantee that the program is bounded does not preclude the case that it is infeasible, which will be found by the previous (bounded) procedure
![Page 21: Halfplane Intersection and Linear Programming](https://reader033.fdocuments.us/reader033/viewer/2022051114/62774d4d44e0e7263c2bef7a/html5/thumbnails/21.jpg)
Notation
• LP2D(𝐻, Ԧ𝑐)
• 𝐻 = {ℎ1, … , ℎ𝑛}
• Ԧ𝑐 is the objective vector
• The LP is unbounded if there is a ray 𝜌 fully contained in the feasible region and such that the objective function grows arbitrarily as we proceed along 𝜌 away from its terminus 𝑝
• We denote the ray’s direction by Ԧ𝑑
• 𝜌 = {𝑝 + 𝜆 Ԧ𝑑: 𝜆 > 0}
![Page 22: Halfplane Intersection and Linear Programming](https://reader033.fdocuments.us/reader033/viewer/2022051114/62774d4d44e0e7263c2bef7a/html5/thumbnails/22.jpg)
Notation, cont’d
• For a half-plane ℎ ∈ 𝐻 , Ԧ𝜂 (ℎ) is the normal to the line defining the half-plane and pointing into the feasible region of ℎ
![Page 23: Halfplane Intersection and Linear Programming](https://reader033.fdocuments.us/reader033/viewer/2022051114/62774d4d44e0e7263c2bef7a/html5/thumbnails/23.jpg)
Necessary conditions for unboundedness
𝜌 = {𝑝 + 𝜆 Ԧ𝑑: 𝜆 > 0}
• Ԧ𝑑 ∙ Ԧ𝑐 > 0
• for each half-plane ℎ ∈ 𝐻 , Ԧ𝜂 (ℎ) ∙ Ԧ𝑑 ≥ 0
Let 𝐻′ = {ℎ ∈ 𝐻: Ԧ𝜂 (ℎ) ∙ Ԧ𝑑 = 0}, the we also require the following boundary condition:
• the linear program 𝐻′, Ԧ𝑐 is feasible
![Page 24: Halfplane Intersection and Linear Programming](https://reader033.fdocuments.us/reader033/viewer/2022051114/62774d4d44e0e7263c2bef7a/html5/thumbnails/24.jpg)
Conditions for unboundedness
Claim: (𝐻, Ԧ𝑐) is unbounded iff there is a direction Ԧ𝑑 with Ԧ𝑑 ∙ Ԧ𝑐 > 0 such that for each ℎ ∈ 𝐻 , Ԧ𝜂 (ℎ) ∙ Ԧ𝑑 ≥ 0 , and the linear program 𝐻′, Ԧ𝑐 is feasible
• We showed that the conditions are necessary. We will show that they are sufficient by constructing the witness ray 𝜌
![Page 25: Halfplane Intersection and Linear Programming](https://reader033.fdocuments.us/reader033/viewer/2022051114/62774d4d44e0e7263c2bef7a/html5/thumbnails/25.jpg)
Constructing the ray 𝜌
• Assume Ԧ𝑐 = (0,1)
• Then the ray must be directed upward, and we can represent the possible directions Ԧ𝑑 by the line 𝑦 = 1, Ԧ𝑑 =(dx,1)
• Every constraint of the form Ԧ𝜂 (ℎ) ∙ Ԧ𝑑 ≥ 0 becomes a half-line, ray, on the line 𝑦 = 1
• The valid directions:
The intersection of all
these rays
![Page 26: Halfplane Intersection and Linear Programming](https://reader033.fdocuments.us/reader033/viewer/2022051114/62774d4d44e0e7263c2bef7a/html5/thumbnails/26.jpg)
The valid directions
• Recall
[L5vK]
![Page 27: Halfplane Intersection and Linear Programming](https://reader033.fdocuments.us/reader033/viewer/2022051114/62774d4d44e0e7263c2bef7a/html5/thumbnails/27.jpg)
• Assume first that the intersection is not empty
• We take the direction at the left endpoint of the interval (if it is bounded only on the right, we take the right endpoint)
• Denote it by Ԧ𝑑
• We first need to check that Ԧ𝑑 is valid (relevant only if the interval is a single point)
• The validity check is in the original plane, where we aim to construct the ray 𝜌
• The test: is the linear program 𝐻′, Ԧ𝑐 is feasible
![Page 28: Halfplane Intersection and Linear Programming](https://reader033.fdocuments.us/reader033/viewer/2022051114/62774d4d44e0e7263c2bef7a/html5/thumbnails/28.jpg)
Is the linear program 𝐻′, Ԧ𝑐 is feasible?
• Recall: 𝐻′ = {ℎ ∈ 𝐻: Ԧ𝜂 (ℎ) ∙ Ԧ𝑑 = 0}
• Outcome 1: If infeasible, report that the original LP infeasible and stop
![Page 29: Halfplane Intersection and Linear Programming](https://reader033.fdocuments.us/reader033/viewer/2022051114/62774d4d44e0e7263c2bef7a/html5/thumbnails/29.jpg)
If 𝐻′, Ԧ𝑐 is feasible
• Outcome 2: Stick to the left wall of the feasible region and construct the ray there
![Page 30: Halfplane Intersection and Linear Programming](https://reader033.fdocuments.us/reader033/viewer/2022051114/62774d4d44e0e7263c2bef7a/html5/thumbnails/30.jpg)
If no valid direction Ԧ𝑑 exists
• Namely 𝑝𝑙 > 𝑝𝑟, then the half-planes inducing 𝑝𝑙 and 𝑝𝑟 are witnesses to the boundedness of the LP
• Outcome 3: Go to the bounded procedure and start with these two half-planes as ℎ1 and ℎ2
![Page 31: Halfplane Intersection and Linear Programming](https://reader033.fdocuments.us/reader033/viewer/2022051114/62774d4d44e0e7263c2bef7a/html5/thumbnails/31.jpg)
LP3D
![Page 32: Halfplane Intersection and Linear Programming](https://reader033.fdocuments.us/reader033/viewer/2022051114/62774d4d44e0e7263c2bef7a/html5/thumbnails/32.jpg)
The input
• LP3D(𝐻, Ԧ𝑐)
• 𝐻 = ℎ1, … , ℎ𝑛 , half-spaces• ℎ𝑖 is bounded by the plane 𝑔𝑖
• Ԧ𝑐 is the objective vector
• Assume we have already run LP3DUnbounded, and obtained three witnesses to the boundedness of LP3D(𝐻, Ԧ𝑐)
• Let’s rename these three half-space ℎ1, ℎ2, ℎ3• They define an optimum 𝑣3
![Page 33: Halfplane Intersection and Linear Programming](https://reader033.fdocuments.us/reader033/viewer/2022051114/62774d4d44e0e7263c2bef7a/html5/thumbnails/33.jpg)
The incremental step
• We now add ℎ4• If 𝑣3 ∈ ℎ4 then 𝑣4: = 𝑣3• Else, 𝑣4 lies on 𝑔4
• How do we find 𝑣4?
[gdbooks/3dcollisions]
![Page 34: Halfplane Intersection and Linear Programming](https://reader033.fdocuments.us/reader033/viewer/2022051114/62774d4d44e0e7263c2bef7a/html5/thumbnails/34.jpg)
THE END