71
Computational Geometry Piyush Kumar (Lecture 4: Planar Graphs, Polygons and Art Gallery) Welcome to CIS5930

Computational Geometry Piyush Kumar (Lecture 4: Planar Graphs, Polygons and Art Gallery) Welcome to CIS5930

Embed Size (px)

Citation preview

Page 1: Computational Geometry Piyush Kumar (Lecture 4: Planar Graphs, Polygons and Art Gallery) Welcome to CIS5930

Computational Geometry

Piyush Kumar(Lecture 4: Planar Graphs, Polygons and Art Gallery)

Welcome to CIS5930

Page 2: Computational Geometry Piyush Kumar (Lecture 4: Planar Graphs, Polygons and Art Gallery) Welcome to CIS5930

Definitions

Planar Straight Line Graph No two edges intersect except at

endpoints

Courtesy Lovasz

Every planar graph can be drawnin the plane with straight edges

Fáry-Wagner

Page 3: Computational Geometry Piyush Kumar (Lecture 4: Planar Graphs, Polygons and Art Gallery) Welcome to CIS5930

PSLG

A graph is called planar if it can be drawn in the plane in such a way that no two edges intersect except possibly at endpoints. 4K

The clique of size 4

Page 4: Computational Geometry Piyush Kumar (Lecture 4: Planar Graphs, Polygons and Art Gallery) Welcome to CIS5930

PSLG : Definitions

• A plane graph cuts the plane into regions called faces.

4K

4 faces! 6 edges 4 vertices

v – e + f = ?

Page 5: Computational Geometry Piyush Kumar (Lecture 4: Planar Graphs, Polygons and Art Gallery) Welcome to CIS5930

PSLGWhat about K3,3 ?

Page 6: Computational Geometry Piyush Kumar (Lecture 4: Planar Graphs, Polygons and Art Gallery) Welcome to CIS5930

PSLG

Another example

v – e + f = ?

Page 7: Computational Geometry Piyush Kumar (Lecture 4: Planar Graphs, Polygons and Art Gallery) Welcome to CIS5930

Euler 1752

For any connected planar graph G, vertices – edges + faces = 2

Let v = # of vertices e = # of edges f = # of faces

Page 8: Computational Geometry Piyush Kumar (Lecture 4: Planar Graphs, Polygons and Art Gallery) Welcome to CIS5930

Why study PSLGs?

Page 9: Computational Geometry Piyush Kumar (Lecture 4: Planar Graphs, Polygons and Art Gallery) Welcome to CIS5930

PSLG

Any planar graph can be triangulated Draw the planar graph with straight

edges For every face with more than 3

edgesoInsert new edges

Page 10: Computational Geometry Piyush Kumar (Lecture 4: Planar Graphs, Polygons and Art Gallery) Welcome to CIS5930

PSLG

Any planar graph can be embedded on the sphere with ‘straight line’ edges Stereographic projection

oWrapping the plane on a sphere

Page 11: Computational Geometry Piyush Kumar (Lecture 4: Planar Graphs, Polygons and Art Gallery) Welcome to CIS5930

Euler’s Formula: Proof

Sum of angles of a triangle?

What about a triangle on a sphere?

Courtesy Hopf

Page 12: Computational Geometry Piyush Kumar (Lecture 4: Planar Graphs, Polygons and Art Gallery) Welcome to CIS5930

Formula for the spherical excess

Area of a 2-gon = ?Formula for spherical excess?

Page 13: Computational Geometry Piyush Kumar (Lecture 4: Planar Graphs, Polygons and Art Gallery) Welcome to CIS5930

Euler’s Formula Proof

2v –f = 4; 3f = 2e; and hence v-e+f = 2Note that f = O(v) and e=O(v)

Page 14: Computational Geometry Piyush Kumar (Lecture 4: Planar Graphs, Polygons and Art Gallery) Welcome to CIS5930

Food for thought

Prove that on a torus V – e + f = 0

In general for g handles V-e + f = 2-2g

Page 15: Computational Geometry Piyush Kumar (Lecture 4: Planar Graphs, Polygons and Art Gallery) Welcome to CIS5930

Euler’s formula extensions

In 3D, a polyhedral subdivision can already have e in O(v2) Dehn-Sommerville relations relate the maximum number of edges vertices and faces of various dimensions.

Page 16: Computational Geometry Piyush Kumar (Lecture 4: Planar Graphs, Polygons and Art Gallery) Welcome to CIS5930

Kuratowski’s Theorem [1930]

A graph is planar if and only if it contains no subgraph obtainable from K5 or K3,3 by replacing edges with paths.

Page 17: Computational Geometry Piyush Kumar (Lecture 4: Planar Graphs, Polygons and Art Gallery) Welcome to CIS5930

Graph Coloring

A coloring of a graph is an assignment of colors to the vertices of the graph such that the endpoints of every edge has different colors.

Page 18: Computational Geometry Piyush Kumar (Lecture 4: Planar Graphs, Polygons and Art Gallery) Welcome to CIS5930

Four-Color Theorem [1976]

The vertices of any planar graph can be 4-colored in such a way that no two adjacent vertices receive the same color.

Appel-Haken

Page 19: Computational Geometry Piyush Kumar (Lecture 4: Planar Graphs, Polygons and Art Gallery) Welcome to CIS5930

Representing PSLGs

Doubly connected edge list Winged Edge Quad Edge Facet edgeSplit edge, Corner edge obj file format ;)

Page 20: Computational Geometry Piyush Kumar (Lecture 4: Planar Graphs, Polygons and Art Gallery) Welcome to CIS5930

Obj file format

Drawback: How do you find which all vertices a vertex connects to? What if you wanted to jump from a face to an adjacent one?

Page 21: Computational Geometry Piyush Kumar (Lecture 4: Planar Graphs, Polygons and Art Gallery) Welcome to CIS5930

Half Edges (DCEL)

Vertex List Knows its coordinates Knows one of its incident edges

Face List Pointer to one of its edges

Edges Split the edge into two records

Page 22: Computational Geometry Piyush Kumar (Lecture 4: Planar Graphs, Polygons and Art Gallery) Welcome to CIS5930

DCEL: Edge record

Page 23: Computational Geometry Piyush Kumar (Lecture 4: Planar Graphs, Polygons and Art Gallery) Welcome to CIS5930

Quad Edge

Considers the PSLG and its dual

Page 24: Computational Geometry Piyush Kumar (Lecture 4: Planar Graphs, Polygons and Art Gallery) Welcome to CIS5930

Quad Edge

Edge Record Two vertices , two faces

Vertex A circular list of adjacent edges

Face A circular list of adjacent edges

Page 25: Computational Geometry Piyush Kumar (Lecture 4: Planar Graphs, Polygons and Art Gallery) Welcome to CIS5930

Quad Edge example

Page 26: Computational Geometry Piyush Kumar (Lecture 4: Planar Graphs, Polygons and Art Gallery) Welcome to CIS5930

Art Gallery

Page 27: Computational Geometry Piyush Kumar (Lecture 4: Planar Graphs, Polygons and Art Gallery) Welcome to CIS5930

Visibility inside polygons

When is x visible to y if both x and y are inside a polygon P?

Page 28: Computational Geometry Piyush Kumar (Lecture 4: Planar Graphs, Polygons and Art Gallery) Welcome to CIS5930

Art gallery problem

Art Gallery Problem Art gallery room is a polygon P. A guard can see all around (360

degrees) Place G(n) guards such that they cover

P. What is minimum G(n) that is

occasionally necessary and always sufficient?

Page 29: Computational Geometry Piyush Kumar (Lecture 4: Planar Graphs, Polygons and Art Gallery) Welcome to CIS5930

Theorem

Every simple polygon admits a triangulation with n-2 triangles. Proof: Lemma: Every polygon has a diagonal For a triangle the theorem is true. Use MI now.

Page 30: Computational Geometry Piyush Kumar (Lecture 4: Planar Graphs, Polygons and Art Gallery) Welcome to CIS5930

G(n) from previous theorem

Every n vertex polygon can be guarded using n-2 cameras. (Why?) What if we place the cameras on the diagonals? (n-3 diagonals / 2) What about vertices? If we place a guard on a vertex, it can cover

all the triangles incident on the vertex.

Page 31: Computational Geometry Piyush Kumar (Lecture 4: Planar Graphs, Polygons and Art Gallery) Welcome to CIS5930

3-colorablity of polygon triangulations

If T be a triangulation of a polygon P, then the vertices of P can be 3-colored.

Page 32: Computational Geometry Piyush Kumar (Lecture 4: Planar Graphs, Polygons and Art Gallery) Welcome to CIS5930

Why can we do 3-coloring?

Look at the dual graph of the polygon triangulation.

What is the maximum degree of the dual? Each edge of the dual is associated with a diagonal of the polygon. Removal of each edge of the dual splits the dual into two connected components

Page 33: Computational Geometry Piyush Kumar (Lecture 4: Planar Graphs, Polygons and Art Gallery) Welcome to CIS5930

Why can we do 3-coloring

The dual is a free tree No cycles Every free tree has a leaf (An EAR)

Proof of 3-colorability Use MI For a triangle its trivial For a polygon P, color and remove an

ear, by induction, we are done!

Page 34: Computational Geometry Piyush Kumar (Lecture 4: Planar Graphs, Polygons and Art Gallery) Welcome to CIS5930

The Art Gallery Theorem

Given a simple polygon with n vertices there exists a set of g(n) = floor(n/3) guards that can cover it. Proof: Use vertex guards: the minimum cardinality vertex set of same color in the 3-coloring of the polygon triangulation.

Page 35: Computational Geometry Piyush Kumar (Lecture 4: Planar Graphs, Polygons and Art Gallery) Welcome to CIS5930

Art Gallery theorem

In the following example you would use red.

Page 36: Computational Geometry Piyush Kumar (Lecture 4: Planar Graphs, Polygons and Art Gallery) Welcome to CIS5930

Art Gallery Theorem

Let r <= g <= b be the number of nodes colored with red, green and blue colors (w.l.o.g) Can r > n/3? If not, then r <= n/3 But r has to be an integer So r must be <= floor(n/3)For what kind of Polygon is r = floor(n/3)?

Page 37: Computational Geometry Piyush Kumar (Lecture 4: Planar Graphs, Polygons and Art Gallery) Welcome to CIS5930

Polygon Triangulation

Triangulation of a polygon refers to the decomposition of P into triangles using non-intersecting diagonals such that no more diagonals can be further added. A maximal set of non-intersecting

diagonals.

Page 38: Computational Geometry Piyush Kumar (Lecture 4: Planar Graphs, Polygons and Art Gallery) Welcome to CIS5930

Polygon Triangulation

Naïve algorithm? Find diagonal, add it, recurse T(n) = T(n-1) + O(n2)*n = O(n3)

Less Naïve? Find diagonal using existence

theorem T(n) = T(n-1) + O(n) = O(n2)

What about O(n) or O(nlogn)?

Page 39: Computational Geometry Piyush Kumar (Lecture 4: Planar Graphs, Polygons and Art Gallery) Welcome to CIS5930

History

O(nlogn) Monotone pieces 1978 O(nlogn) D&C 1982 O(nlogn) Plane Sweep 1985 O(nlog*n) Randomized 1991 O(n) Polygon cutting, 1991 O(n) Randomized 2000 O(n) implementable with small constants? ??

Page 40: Computational Geometry Piyush Kumar (Lecture 4: Planar Graphs, Polygons and Art Gallery) Welcome to CIS5930

What about point set triangulation?

A triangulation T of V is a set of triangles such that Each t in T is incident on 3 vertices of V

and does not contain any other vertex If t1, t2 in T => t1 does not intersect t2 T is a decomposition of the convex hull

of V.

Page 41: Computational Geometry Piyush Kumar (Lecture 4: Planar Graphs, Polygons and Art Gallery) Welcome to CIS5930

Point Set Triangulation

Page 42: Computational Geometry Piyush Kumar (Lecture 4: Planar Graphs, Polygons and Art Gallery) Welcome to CIS5930

Point Set triangulation

Can be built using one vertex at a time. Three cases New point outside current convex

hull New point inside triangle New point on an edge of the current

triangulation

Page 43: Computational Geometry Piyush Kumar (Lecture 4: Planar Graphs, Polygons and Art Gallery) Welcome to CIS5930

Back to Polygon Triangulations

Courtesy Martin Held

Page 44: Computational Geometry Piyush Kumar (Lecture 4: Planar Graphs, Polygons and Art Gallery) Welcome to CIS5930

Polygon Triangulation

Partition the polygon into monotone pieces O(nlogn) Triangulate them in O(n) time

Page 45: Computational Geometry Piyush Kumar (Lecture 4: Planar Graphs, Polygons and Art Gallery) Welcome to CIS5930

Monotone polygons

A polygon is x-monotone if the intersection of P with a vertical line is connected ( a point, a line segment or O ).

Page 46: Computational Geometry Piyush Kumar (Lecture 4: Planar Graphs, Polygons and Art Gallery) Welcome to CIS5930

Monotonicity

in x Implies you can sort all the x-coordinates of the vertices in O(n) implies that there are no “cusps”. A reflex vertex is a vertex with internal

angle > π A reflex vertex is a cusp if its neighbors

both lie to the left or to the right of the vertical line.

Page 47: Computational Geometry Piyush Kumar (Lecture 4: Planar Graphs, Polygons and Art Gallery) Welcome to CIS5930

Monotone polygons => no cusps

Th: Any polygon that contains no cusps is monotone. Proof: We will prove that any polygon that is non-monotone has a cusp. Lets assume that P’ is a non-monotone polygon due to its upper chain. Let v1, v2…vk be its upper chain and vi be the first vertex such that v(i+1) lies left to vi.

Page 48: Computational Geometry Piyush Kumar (Lecture 4: Planar Graphs, Polygons and Art Gallery) Welcome to CIS5930

Monotone polygons => no cusps

The vertex leftmost from vi…in the chain vi to vk….has to be a cusp.

Page 49: Computational Geometry Piyush Kumar (Lecture 4: Planar Graphs, Polygons and Art Gallery) Welcome to CIS5930

Polygon Triangulation

First we partition the polygon into polygons without cusps. (Remove all cusps). O(nlogn) Then we triangulate all the monotone polygons. O(n)

Page 50: Computational Geometry Piyush Kumar (Lecture 4: Planar Graphs, Polygons and Art Gallery) Welcome to CIS5930

Polygon Triangulation

Sweep from left to right. Remove leftward pointing cusps

Sweep right to left Remove rightward pointing cusps

Triangulate all monotone polygons

Page 51: Computational Geometry Piyush Kumar (Lecture 4: Planar Graphs, Polygons and Art Gallery) Welcome to CIS5930

Regularization

Remove all cusps that point in the same direction

Page 52: Computational Geometry Piyush Kumar (Lecture 4: Planar Graphs, Polygons and Art Gallery) Welcome to CIS5930

Regularization

Regularize from left to right removing all leftward pointing cuspsExactly in the same way, Regularize from right to left removing all rightward pointing cusps

Page 53: Computational Geometry Piyush Kumar (Lecture 4: Planar Graphs, Polygons and Art Gallery) Welcome to CIS5930

Regularization

Once you find a leftward pointing cusp, how do you find a diagonal?

A

BX

V

W

Page 54: Computational Geometry Piyush Kumar (Lecture 4: Planar Graphs, Polygons and Art Gallery) Welcome to CIS5930

Regularization

Once you find a leftward pointing cusp, how do you find a diagonal?

A

BX

V

W

Page 55: Computational Geometry Piyush Kumar (Lecture 4: Planar Graphs, Polygons and Art Gallery) Welcome to CIS5930

Monotone Polygon Triangulation

Greedy Algorithm Sweep from left to right adding

diagonals whenever you can.

Page 56: Computational Geometry Piyush Kumar (Lecture 4: Planar Graphs, Polygons and Art Gallery) Welcome to CIS5930

Greedy plane sweep

Sort vertices from left to right in O(n) Process vertices from left to right Stack keeps vertices that have been encountered but not yet used in a diagonal. When a vertex is encountered add as many diagonals as you can Each diagonal removes a triangle and a vertex

from the stack

Page 57: Computational Geometry Piyush Kumar (Lecture 4: Planar Graphs, Polygons and Art Gallery) Welcome to CIS5930

Vertices on Stack: A Funnel

Courtesy Nancy Amato

•One boundary is chain of reflex vertices except for rightmost vertex (top of stack).•Other boundary is (partial) edge. (We have not seen bottom endpoint yet).

•Sweepline Invariant: Vertices on the stack conform to this funnel structure.

Page 58: Computational Geometry Piyush Kumar (Lecture 4: Planar Graphs, Polygons and Art Gallery) Welcome to CIS5930

Vertices on Stack: A Funnel

12

3

5

9

11

10

8

6

4

12

7Split off triangle

Funnel

Partial Edge

Reflex chainLast encounteredvertex

Page 59: Computational Geometry Piyush Kumar (Lecture 4: Planar Graphs, Polygons and Art Gallery) Welcome to CIS5930

What happens when we encounter a new vertex?

Case 1: Vj is on the side opposite the reflex chain on the stack Easy case: Can add diagonals from

Vj to all vertices on reflex chain except Vi1

2

3

5

9

11

10

8

6

4

12

7

Vj

Vk

Vi

Stack pop all push vj,vk

Page 60: Computational Geometry Piyush Kumar (Lecture 4: Planar Graphs, Polygons and Art Gallery) Welcome to CIS5930

What happens when we encounter a new vertex?

Case 2: Vj is on the same side as the reflex chain on the stack

VjPopped and pushed

The only interesting case in this case, If Vj extends the reflex chain, we justneed to push it on the stack

Page 61: Computational Geometry Piyush Kumar (Lecture 4: Planar Graphs, Polygons and Art Gallery) Welcome to CIS5930

Case 2

Can add diagonals from Vj to a consecutive set (possibly empty) of vertices in its same reflex chain (starting from the top of the stack/rightmost vertex.

Check each vertex in turn until finding one that does not make a diagonal

Page 62: Computational Geometry Piyush Kumar (Lecture 4: Planar Graphs, Polygons and Art Gallery) Welcome to CIS5930

Homework

Textbook question 3.11

Page 63: Computational Geometry Piyush Kumar (Lecture 4: Planar Graphs, Polygons and Art Gallery) Welcome to CIS5930

New Problem

Given a set of half-planes, compute their intersection in O(nlogn) time. How can we do it using what we

know?

Page 64: Computational Geometry Piyush Kumar (Lecture 4: Planar Graphs, Polygons and Art Gallery) Welcome to CIS5930

Projective Geometry

Basic Elements: Points , Lines and Planes

Studies properties of geometric figures that remain unchanged under projection Lengths and ratios of lengths are NOT invariant under projectionAsserts parallel lines meets at infinity

Page 65: Computational Geometry Piyush Kumar (Lecture 4: Planar Graphs, Polygons and Art Gallery) Welcome to CIS5930

Duality

The most remarkable concept in projective geometry The terms point and line are dual and can be interchanged in any valid statement to yield another valid statement

Page 66: Computational Geometry Piyush Kumar (Lecture 4: Planar Graphs, Polygons and Art Gallery) Welcome to CIS5930

Example

A line contains at least 3 collinear points of the plane. A point contains at least 3 coincident lines of the plane.

Point LineJoin IntersectionCollinear Coincident

Page 67: Computational Geometry Piyush Kumar (Lecture 4: Planar Graphs, Polygons and Art Gallery) Welcome to CIS5930

Duality in higher dimensions?

In space, the terms plane, line, and point are interchanged with point, line, and plane, respectively, to yield dual statements

Page 68: Computational Geometry Piyush Kumar (Lecture 4: Planar Graphs, Polygons and Art Gallery) Welcome to CIS5930

Point Line Duality

Duality is usually denoted by a * in the superscript. A point and line are uniquely determined by two

parameters.

p = (a,b) is mapped to p*: y = ax– b l: y = ax - b is mapped to l* = (a, b)

Characteristics((p*)*) = p

p lies above l iff l* lies above p*p = (px, py) lies on l: y = ax-b iff l* lies on p*

Page 69: Computational Geometry Piyush Kumar (Lecture 4: Planar Graphs, Polygons and Art Gallery) Welcome to CIS5930

Property : p lies above l iff l* lies above p*

p = (px, py)

(px,apx - b)

l: y = ax-b

p lies above lpy > apx - b

l* = (a,b)

p*: y = pxx - py

(a, pxa – py)

l* lies above p*b > pxa – py

iff py > pxa - b

Characteristics of the duality transform

Page 70: Computational Geometry Piyush Kumar (Lecture 4: Planar Graphs, Polygons and Art Gallery) Welcome to CIS5930

Summary

Observations:

1. Point p on straight line l iff point l * on straight line p *

2. p above l iff l * above p *

Page 71: Computational Geometry Piyush Kumar (Lecture 4: Planar Graphs, Polygons and Art Gallery) Welcome to CIS5930

New Problem

Given n lines, compute the lower envelope of these lines in O(nlogn) time.