Lecture 5: Casting a polyhedron

62
1/62 Introduction Common intersection computation Linear programming in 2D Casting a polyhedron Computational Geometry Lecture 5: Casting a polyhedron Computational Geometry Lecture 5: Casting a polyhedron

Transcript of Lecture 5: Casting a polyhedron

Page 1: Lecture 5: Casting a polyhedron

1/62

IntroductionCommon intersection computation

Linear programming in 2D

Casting a polyhedron

Computational Geometry

Lecture 5: Casting a polyhedron

Computational Geometry Lecture 5: Casting a polyhedron

Page 2: Lecture 5: Casting a polyhedron

2/62

IntroductionCommon intersection computation

Linear programming in 2D

Automated manufacturingCasting in 2D

CAD/CAM systems

CAD/CAM systems allow youto design objects and test howthey can be constructed

Many objects are constructedused a mold

Computational Geometry Lecture 5: Casting a polyhedron

Page 3: Lecture 5: Casting a polyhedron

3/62

IntroductionCommon intersection computation

Linear programming in 2D

Automated manufacturingCasting in 2D

Casting

Computational Geometry Lecture 5: Casting a polyhedron

Page 4: Lecture 5: Casting a polyhedron

4/62

IntroductionCommon intersection computation

Linear programming in 2D

Automated manufacturingCasting in 2D

Casting

A general question: Given anobject, can it be made with aparticular design process?

For casting, can the object beremoved from its cast withoutbreaking the cast?

Computational Geometry Lecture 5: Casting a polyhedron

Page 5: Lecture 5: Casting a polyhedron

5/62

IntroductionCommon intersection computation

Linear programming in 2D

Automated manufacturingCasting in 2D

Casting

Objects to be made are 3D polyhedra

The boundary is like a planar graph, butthe coordinates of vertices are 3D

We can use a doubly-connected edge listwith three coordinates in each vertexobject

Computational Geometry Lecture 5: Casting a polyhedron

Page 6: Lecture 5: Casting a polyhedron

6/62

IntroductionCommon intersection computation

Linear programming in 2D

Automated manufacturingCasting in 2D

Casting in 2D

First the 2D version: can we removea 2D polygon from a mold?

Computational Geometry Lecture 5: Casting a polyhedron

Page 7: Lecture 5: Casting a polyhedron

7/62

IntroductionCommon intersection computation

Linear programming in 2D

Automated manufacturingCasting in 2D

Casting in 2D

Certain removal directions may be good while others are not

Computational Geometry Lecture 5: Casting a polyhedron

Page 8: Lecture 5: Casting a polyhedron

8/62

IntroductionCommon intersection computation

Linear programming in 2D

Automated manufacturingCasting in 2D

Casting in 2D

What top facet should we use?

When can we even begin to movethe object out?

What kind of movements do weallow?

Computational Geometry Lecture 5: Casting a polyhedron

Page 9: Lecture 5: Casting a polyhedron

9/62

IntroductionCommon intersection computation

Linear programming in 2D

Automated manufacturingCasting in 2D

Casting in 2D

Assume the top facet is fixed; we cantry all

Let us consider translations only

An edge of the polygon should notdirectly run into the coinciding moldedge

Computational Geometry Lecture 5: Casting a polyhedron

Page 10: Lecture 5: Casting a polyhedron

10/62

IntroductionCommon intersection computation

Linear programming in 2D

Automated manufacturingCasting in 2D

Casting in 2D

Observe: For a given top facet, ifthe object can be translated oversome (small) distance, then it can betranslated all the way out

Consider a point p that at firsttranslates away from its mold side,but later runs into the mold . . .

Computational Geometry Lecture 5: Casting a polyhedron

Page 11: Lecture 5: Casting a polyhedron

11/62

IntroductionCommon intersection computation

Linear programming in 2D

Automated manufacturingCasting in 2D

Casting in 2D

A polygon can be removed from itscast by a single translation if andonly if there is a direction so thatevery polygon edge does not crossthe adjacent mold edge

Sequences of translations do nothelp; we would not be able toconstruct more shapes than by asingle translation

Computational Geometry Lecture 5: Casting a polyhedron

Page 12: Lecture 5: Casting a polyhedron

12/62

IntroductionCommon intersection computation

Linear programming in 2D

Automated manufacturingCasting in 2D

Circle of directions

We need a representation ofdirections in 2D

Every polygon edge requires theremoval direction to be in asemi-circle

⇒ compute the common intersectionof a set of circular intervals(semi-circles)

Computational Geometry Lecture 5: Casting a polyhedron

Page 13: Lecture 5: Casting a polyhedron

13/62

IntroductionCommon intersection computation

Linear programming in 2D

Automated manufacturingCasting in 2D

Line of directions

We only need to represent upwarddirections: we can use points on theline y = 1

Every polygon edge requires theremoval direction to be in a half-line

⇒ compute the common intersectionof a set of half-lines in 1D

Computational Geometry Lecture 5: Casting a polyhedron

Page 14: Lecture 5: Casting a polyhedron

14/62

IntroductionCommon intersection computation

Linear programming in 2D

Automated manufacturingCasting in 2D

Common intersection of half-lines

The common intersection of a set of half-lines in 1D:

Determine the endpoint pl of the rightmost left-boundedhalf-line

Determine the endpoint pr of the leftmost right-boundedhalf-line

The common intersection is [pl,pr] (can be empty)

Computational Geometry Lecture 5: Casting a polyhedron

Page 15: Lecture 5: Casting a polyhedron

15/62

IntroductionCommon intersection computation

Linear programming in 2D

Automated manufacturingCasting in 2D

Common intersection of half-lines

The algorithm takes only O(n) time for n half-lines

Note: we need not sort the endpoints

Computational Geometry Lecture 5: Casting a polyhedron

Page 16: Lecture 5: Casting a polyhedron

16/62

IntroductionCommon intersection computation

Linear programming in 2D

Casting in 3DCommon intersection of half-planesIncremental common intersection

Casting in 3D

Can we do something similarin 3D?

Again each facet must notmove into the correspondingmold facet

Computational Geometry Lecture 5: Casting a polyhedron

Page 17: Lecture 5: Casting a polyhedron

17/62

IntroductionCommon intersection computation

Linear programming in 2D

Casting in 3DCommon intersection of half-planesIncremental common intersection

Representing directions in 3D

The circle of directions for 2Dbecomes a sphere of directionsfor 3D; the line of directionsfor 2D becomes a plane ofdirections for 3D: take z = 1

Which directions representedin the plane does a facet ruleout as removal directions?

x

y

z

Computational Geometry Lecture 5: Casting a polyhedron

Page 18: Lecture 5: Casting a polyhedron

18/62

IntroductionCommon intersection computation

Linear programming in 2D

Casting in 3DCommon intersection of half-planesIncremental common intersection

Directions in 3D

Consider the outward normalvectors of all facets

An allowed removal directionmust make an angle of at leastπ/2 with every facet (exceptthe topmost one)

⇒ every facet in 3D makes ahalf-plane in z = 1 invalid

Computational Geometry Lecture 5: Casting a polyhedron

Page 19: Lecture 5: Casting a polyhedron

19/62

IntroductionCommon intersection computation

Linear programming in 2D

Casting in 3DCommon intersection of half-planesIncremental common intersection

Common intersection of half-planes

We get: common intersection of half-planes in the plane

The problem of deciding castability of a polyhedron with nfacets, with a given top facet, where the polyhedron must beremoved from the cast by a single translation, can be solvedby computing the common intersection of n−1 half-planes

Computational Geometry Lecture 5: Casting a polyhedron

Page 20: Lecture 5: Casting a polyhedron

20/62

IntroductionCommon intersection computation

Linear programming in 2D

Casting in 3DCommon intersection of half-planesIncremental common intersection

Common intersection of half-planes

Half-planes in the plane:

y≥ m · x+ c

y≤ m · x+ c

x≥ c

x≤ c

Computational Geometry Lecture 5: Casting a polyhedron

Page 21: Lecture 5: Casting a polyhedron

21/62

IntroductionCommon intersection computation

Linear programming in 2D

Casting in 3DCommon intersection of half-planesIncremental common intersection

An approach

Take the first set:

y≥ m · x+ c

Sort by angle, and add incrementally

Computational Geometry Lecture 5: Casting a polyhedron

Page 22: Lecture 5: Casting a polyhedron

22/62

IntroductionCommon intersection computation

Linear programming in 2D

Casting in 3DCommon intersection of half-planesIncremental common intersection

Computational Geometry Lecture 5: Casting a polyhedron

Page 23: Lecture 5: Casting a polyhedron

23/62

IntroductionCommon intersection computation

Linear programming in 2D

Casting in 3DCommon intersection of half-planesIncremental common intersection

Computational Geometry Lecture 5: Casting a polyhedron

Page 24: Lecture 5: Casting a polyhedron

24/62

IntroductionCommon intersection computation

Linear programming in 2D

Casting in 3DCommon intersection of half-planesIncremental common intersection

Computational Geometry Lecture 5: Casting a polyhedron

Page 25: Lecture 5: Casting a polyhedron

25/62

IntroductionCommon intersection computation

Linear programming in 2D

Casting in 3DCommon intersection of half-planesIncremental common intersection

Computational Geometry Lecture 5: Casting a polyhedron

Page 26: Lecture 5: Casting a polyhedron

26/62

IntroductionCommon intersection computation

Linear programming in 2D

Casting in 3DCommon intersection of half-planesIncremental common intersection

Computational Geometry Lecture 5: Casting a polyhedron

Page 27: Lecture 5: Casting a polyhedron

27/62

IntroductionCommon intersection computation

Linear programming in 2D

Casting in 3DCommon intersection of half-planesIncremental common intersection

Computational Geometry Lecture 5: Casting a polyhedron

Page 28: Lecture 5: Casting a polyhedron

28/62

IntroductionCommon intersection computation

Linear programming in 2D

Casting in 3DCommon intersection of half-planesIncremental common intersection

Computational Geometry Lecture 5: Casting a polyhedron

Page 29: Lecture 5: Casting a polyhedron

29/62

IntroductionCommon intersection computation

Linear programming in 2D

Casting in 3DCommon intersection of half-planesIncremental common intersection

Computational Geometry Lecture 5: Casting a polyhedron

Page 30: Lecture 5: Casting a polyhedron

30/62

IntroductionCommon intersection computation

Linear programming in 2D

Casting in 3DCommon intersection of half-planesIncremental common intersection

Computational Geometry Lecture 5: Casting a polyhedron

Page 31: Lecture 5: Casting a polyhedron

31/62

IntroductionCommon intersection computation

Linear programming in 2D

Casting in 3DCommon intersection of half-planesIncremental common intersection

Incremental common intersection

The boundary of the valid region is apolygonal convex chain that isunbounded at both sides

The next half-plane has a steeperbounding line and will alwayscontribute to the next valid region

Computational Geometry Lecture 5: Casting a polyhedron

Page 32: Lecture 5: Casting a polyhedron

32/62

IntroductionCommon intersection computation

Linear programming in 2D

Casting in 3DCommon intersection of half-planesIncremental common intersection

Incremental common intersection

Maintain the contributing boundinglines in increasing angular order

For the new half-plane, remove anyno longer contributing bounding linesfrom the end

Then add the line bounding the newhalf-plane

Computational Geometry Lecture 5: Casting a polyhedron

Page 33: Lecture 5: Casting a polyhedron

33/62

IntroductionCommon intersection computation

Linear programming in 2D

Casting in 3DCommon intersection of half-planesIncremental common intersection

Incremental common intersection

After sorting on angle, this takesonly O(n) time

Question: Why?

The half-planes bounded from abovegive a similar chain

Intersecting the two chains is simplewith a left-to-right scan

Computational Geometry Lecture 5: Casting a polyhedron

Page 34: Lecture 5: Casting a polyhedron

34/62

IntroductionCommon intersection computation

Linear programming in 2D

Casting in 3DCommon intersection of half-planesIncremental common intersection

Incremental common intersection

Half-planes with vertical boundinglines can be added by restricting theregion even more

This can also be done in linear time

Computational Geometry Lecture 5: Casting a polyhedron

Page 35: Lecture 5: Casting a polyhedron

35/62

IntroductionCommon intersection computation

Linear programming in 2D

Casting in 3DCommon intersection of half-planesIncremental common intersection

Result

Theorem: The common intersection of n half-planes in theplane can be computed in O(n logn) time

The common intersection may be empty, or a convex polygonthat can be bounded or unbounded

Computational Geometry Lecture 5: Casting a polyhedron

Page 36: Lecture 5: Casting a polyhedron

36/62

IntroductionCommon intersection computation

Linear programming in 2D

Casting in 3DCommon intersection of half-planesIncremental common intersection

Back to casting

The common intersection of half-planes cannot be computedfaster (we are sorting the lines along the boundary)

The region we compute represents all mold removal directions. . .

. . . but to determine castability, we only need one!

Computational Geometry Lecture 5: Casting a polyhedron

Page 37: Lecture 5: Casting a polyhedron

37/62

IntroductionCommon intersection computation

Linear programming in 2D

TerminologyLP for castingRandomization

Linear programming

We will find the lowest point in the common intersection

Notice that half-planes are linear constraints

Minimize y

Subject toy≥ m1 · x+ c1y≥ m2 · x+ c2

...y≥ mi · x+ ci

y≤ mi+1 · x+ ci+1...

y≤ mn · x+ cn

Computational Geometry Lecture 5: Casting a polyhedron

Page 38: Lecture 5: Casting a polyhedron

38/62

IntroductionCommon intersection computation

Linear programming in 2D

TerminologyLP for castingRandomization

Linear programming

Minimize c1 · x1 + · · ·+ ck · xk

Subject toa1,1 · x1 + · · ·+ak,1 · xk ≤ b1a1,2 · x1 + · · ·+ak,2 · xk ≤ b2

...a1,n · x1 + · · ·+ak,n · xk ≤ bn

where a1,1, . . . ,ak,n, b1, . . . ,bn, c1, . . . ,ck are given coefficients

This is LP with k unknowns (dimensions) and n inequalities

Question: Where are the ≥ inequalities?

Computational Geometry Lecture 5: Casting a polyhedron

Page 39: Lecture 5: Casting a polyhedron

39/62

IntroductionCommon intersection computation

Linear programming in 2D

TerminologyLP for castingRandomization

Terminology

LP with k unknowns (dimensions) and n inequalities:k-dimensional linear programming

The subspace that is the common intersection is thefeasible region. If it is empty, the LP is infeasible

The vector (c1, . . . ,ck)T is the objective vector or cost vector

If the LP has solutions with arbitrarily low cost, then the LPis unbounded

Note: The feasible region may be unbounded while the LP isbounded

Computational Geometry Lecture 5: Casting a polyhedron

Page 40: Lecture 5: Casting a polyhedron

40/62

IntroductionCommon intersection computation

Linear programming in 2D

TerminologyLP for castingRandomization

LP for casting

LP for determining castability of 3D polyhedra is2-dimensional linear programming with n constraints

We only want to decide feasibility, so we can choose anyobjective function

We will make it ourselves easy

Computational Geometry Lecture 5: Casting a polyhedron

Page 41: Lecture 5: Casting a polyhedron

41/62

IntroductionCommon intersection computation

Linear programming in 2D

TerminologyLP for castingRandomization

Incremental LP

Let h1, . . . ,hn be the constraints and`1, . . . , `n their bounding lines

Find any two constraints h1 and h2 where`1 and `2 are non-parallel

Rotate h1 and h2 over an angle α aroundthe origin to make `1∩ `2 the optimalsolution for the objective function thatminimizes y

Rotate all other constraints over α too

`1

`2

`1`2

Computational Geometry Lecture 5: Casting a polyhedron

Page 42: Lecture 5: Casting a polyhedron

42/62

IntroductionCommon intersection computation

Linear programming in 2D

TerminologyLP for castingRandomization

Incremental LP

Solve the LP with the rotated constraints

If the rotated LP is infeasible, then so isthe unrotated version

If the rotated LP gives an optimalsolution (px,py), then rotate it over anangle −α around the origin to get theremoval direction for the original positionof the polyhedron

`1

`2

`1`2

Computational Geometry Lecture 5: Casting a polyhedron

Page 43: Lecture 5: Casting a polyhedron

43/62

IntroductionCommon intersection computation

Linear programming in 2D

TerminologyLP for castingRandomization

Incremental LP

The algorithm adds the constraints h3, . . . ,hn incrementallyand maintains the optimum so far

Let Hi = {h1, . . . ,hi }Let vi be the optimum for Hi (unless we already haveinfeasibility)

Computational Geometry Lecture 5: Casting a polyhedron

Page 44: Lecture 5: Casting a polyhedron

44/62

IntroductionCommon intersection computation

Linear programming in 2D

TerminologyLP for castingRandomization

LP for casting

The incremental step: suppose weknow vi−1 and want to add hi

There are two possibilities:

If vi−1 ∈ hi, then vi = vi−1

If vi−1 6∈ hi, then either the LP isinfeasible, or vi lies on `i

vi−1

hi`i

vi−1

hi`i

Computational Geometry Lecture 5: Casting a polyhedron

Page 45: Lecture 5: Casting a polyhedron

45/62

IntroductionCommon intersection computation

Linear programming in 2D

TerminologyLP for castingRandomization

Incremental LP

hi

`i

hi`i

vi−1 vi−1

hi

`i

vi−1

Computational Geometry Lecture 5: Casting a polyhedron

Page 46: Lecture 5: Casting a polyhedron

46/62

IntroductionCommon intersection computation

Linear programming in 2D

TerminologyLP for castingRandomization

LP for casting

Algorithm LPforCasting(H)1. Let h1, h2, and v2 be as chosen2. for i← 3 to n3. do if vi−1 ∈ hi

4. then vi← vi−15. else vi ←the point p on `i that minimizes y,

subject to the constraints in Hi−1.6. if p does not exist7. then Report that the LP is infeasible,

and quit.8. return vn

Computational Geometry Lecture 5: Casting a polyhedron

Page 47: Lecture 5: Casting a polyhedron

47/62

IntroductionCommon intersection computation

Linear programming in 2D

TerminologyLP for castingRandomization

LP for casting

If vi−1 6∈ hi, how do we find the point p on `i?

hi

`i

vi−1

`i `i

Computational Geometry Lecture 5: Casting a polyhedron

Page 48: Lecture 5: Casting a polyhedron

48/62

IntroductionCommon intersection computation

Linear programming in 2D

TerminologyLP for castingRandomization

Efficiency

If vi−1 ∈ hi, then the incremental steptakes only O(1) time

If vi−1 6∈ hi, then the incremental steptakes O(i) time

The LP-for-casting algorithm takesO(n2) time in the worst case

v2

v3v4v5

vn· · ·

Computational Geometry Lecture 5: Casting a polyhedron

Page 49: Lecture 5: Casting a polyhedron

49/62

IntroductionCommon intersection computation

Linear programming in 2D

TerminologyLP for castingRandomization

Efficiency

v2

v3v4v5

vn· · ·

v2

v3

v4v5

vn

· · ·

v2

v3

v4

v5

vn

· · ·

Computational Geometry Lecture 5: Casting a polyhedron

Page 50: Lecture 5: Casting a polyhedron

50/62

IntroductionCommon intersection computation

Linear programming in 2D

TerminologyLP for castingRandomization

Randomized algorithm

Algorithm RandomizedLPforCasting(H)1. Let h1, h2, and v2 be as chosen2. Let h3,h4, . . . ,hn be in a random order3. for i← 3 to n4. do if vi−1 ∈ hi

5. then vi← vi−16. else vi ←the point p on `i that minimizes y,

subject to the constraints in Hi−1.7. if p does not exist8. then Report that the LP is infeasible,

and quit.9. return vn

Computational Geometry Lecture 5: Casting a polyhedron

Page 51: Lecture 5: Casting a polyhedron

51/62

IntroductionCommon intersection computation

Linear programming in 2D

TerminologyLP for castingRandomization

Putting in random order

The constraints may be given in any order, the algorithm willjust reorder them

Let j be a random integer in [3,n]

Swap hj and hn

Recursively shuffle h3, . . . ,hn−1

Putting in random order takes O(n) time

Computational Geometry Lecture 5: Casting a polyhedron

Page 52: Lecture 5: Casting a polyhedron

52/62

IntroductionCommon intersection computation

Linear programming in 2D

TerminologyLP for castingRandomization

Expected running time

Every one of the (n−2)! orders is equally likely

The expected time taken by the algorithm is the average timeover all orders

1(n−2)!

· ∑Π permutation

time if the random order is Π

Computational Geometry Lecture 5: Casting a polyhedron

Page 53: Lecture 5: Casting a polyhedron

53/62

IntroductionCommon intersection computation

Linear programming in 2D

TerminologyLP for castingRandomization

Expected running time

If the order of the constraints h3, . . . ,hn is random, what is theprobability that vi−1 ∈ hi ?

We use backwards analysis: consider the situation after hi isinserted, and vi is computed (either by vi = vi−1, orsomewhere on `i)

Computational Geometry Lecture 5: Casting a polyhedron

Page 54: Lecture 5: Casting a polyhedron

54/62

IntroductionCommon intersection computation

Linear programming in 2D

TerminologyLP for castingRandomization

Expected running time

vi vi vi

Only if one of the dashed lines was `i, the last step where hi

was added was expensive and took Θ(i) time

Computational Geometry Lecture 5: Casting a polyhedron

Page 55: Lecture 5: Casting a polyhedron

55/62

IntroductionCommon intersection computation

Linear programming in 2D

TerminologyLP for castingRandomization

Expected running time

vi

If hi does not bound the feasible region, or not at vi, then theaddition step was cheap and took Θ(1) time

Computational Geometry Lecture 5: Casting a polyhedron

Page 56: Lecture 5: Casting a polyhedron

56/62

IntroductionCommon intersection computation

Linear programming in 2D

TerminologyLP for castingRandomization

Expected running time

There are i half-planes that could have been one of the linesdefining vi, and i−2 of these are in random order

Since the order was random, each of the i−2 half-planes hasthe same probability to be the last one added, and only ≤ 2 ofthese caused the expensive step

≤ 2 out of i−2 cases: expensive step; Θ(i) time for i-thaddition

≥ i−4 out of i−2 cases: cheap step; Θ(1) time for i-thaddition

Computational Geometry Lecture 5: Casting a polyhedron

Page 57: Lecture 5: Casting a polyhedron

57/62

IntroductionCommon intersection computation

Linear programming in 2D

TerminologyLP for castingRandomization

Expected running time

Expected time for i-th addition at most:

i−4i−2

·Θ(1)+2

i−2·Θ(i) = Θ(1)

Total running time:

Θ(n)+n

∑i=3

Θ(1) = Θ(n) expected time

Computational Geometry Lecture 5: Casting a polyhedron

Page 58: Lecture 5: Casting a polyhedron

58/62

IntroductionCommon intersection computation

Linear programming in 2D

TerminologyLP for castingRandomization

Degenerate cases

The optimal solution may not be unique, if the feasible regionis bounded from below by a horizontal line. How to solve it?

There may be many lines from `3, . . . , `i passing through vi;how does this affect the probability of an expensive step?

Computational Geometry Lecture 5: Casting a polyhedron

Page 59: Lecture 5: Casting a polyhedron

59/62

IntroductionCommon intersection computation

Linear programming in 2D

TerminologyLP for castingRandomization

Degenerate cases

vi

Computational Geometry Lecture 5: Casting a polyhedron

Page 60: Lecture 5: Casting a polyhedron

60/62

IntroductionCommon intersection computation

Linear programming in 2D

TerminologyLP for castingRandomization

Degenerate cases

In degenerate cases, the probability that the last addition wasexpensive is even smaller: 1/(i−2), or 0

Without any adaptations, the running time holds

Computational Geometry Lecture 5: Casting a polyhedron

Page 61: Lecture 5: Casting a polyhedron

61/62

IntroductionCommon intersection computation

Linear programming in 2D

TerminologyLP for castingRandomization

Result

Theorem: Castability of a simple polyhedron with n facets,given a top facet, can be decided in O(n) expected time

Theorem: 2-dimensional linear programming with nconstraints can be solved in O(n) expected time

Question: What does “expected time” mean? Expectationover what?

Computational Geometry Lecture 5: Casting a polyhedron

Page 62: Lecture 5: Casting a polyhedron

62/62

IntroductionCommon intersection computation

Linear programming in 2D

TerminologyLP for castingRandomization

Higher dimensions?

Question: Can you imagine whether we can also solve3-dimensional linear programming efficiently?

Computational Geometry Lecture 5: Casting a polyhedron