NP Completeness

Download Report

Transcript NP Completeness

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
Every planar graph can be drawn
in the plane with straight edges
Courtesy Lovasz
Fáry-Wagner
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.
K4
The clique of size 4
PSLG : Definitions
• A plane graph cuts the plane into
regions called faces.
K4
4 faces!
6 edges
4 vertices
v–e +f=?
PSLG
What about K3,3 ?
PSLG
Another example
v–e +f=?
Euler 1752
For any connected planar graph G,
 vertices – edges + faces = 2
Let v = # of vertices
e = # of edges
f = # of faces
Why study PSLGs?
PSLG
Any planar graph can be triangulated
 Draw the planar graph with straight edges
 For every face with more than 3 edges
o Insert new edges
PSLG
Any planar graph can be embedded on
the sphere with ‘straight line’ edges
 Stereographic projection
o Wrapping the plane on a sphere
Courtesy
Hopf
Euler’s Formula: Proof
Sum of angles of a triangle?
What about a triangle on a sphere?
Formula for the spherical excess
Area of a 2-gon = ?
Formula for spherical excess?
Euler’s Formula Proof
2v –f = 4; 3f = 2e; and hence v-e+f = 2
Note that f = O(v) and e=O(v)
Food for thought
Prove that on a torus
 V–e+f=0
In general for g handles
 V-e + f = 2-2g
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.
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.
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.
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
Representing PSLGs
Doubly connected edge list
Winged Edge
Quad Edge
Facet edge
Split edge, Corner edge
obj file format ;)
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?
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
DCEL: Edge record
Quad Edge
Considers the PSLG and its dual
Quad Edge
Edge Record
 Two vertices , two faces
Vertex
 A circular list of adjacent edges
Face
 A circular list of adjacent edges
Quad Edge example
Art Gallery
Visibility inside polygons
When is x visible to
y if both x and y are
inside a polygon P?
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?
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.
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.
3-colorablity of polygon triangulations
If T be a triangulation of a polygon P,
then the vertices of P can be 3-colored.
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
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!
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.
Art Gallery theorem
In the following example you would
use red.
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)?
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.
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)?
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? ??
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.
Point Set Triangulation
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
Back to Polygon Triangulations
Courtesy Martin Held
Polygon Triangulation
Partition the polygon into monotone
pieces O(nlogn)
Triangulate them in O(n) time
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 ).
Monotonicity
in x Implies you can sort all the xcoordinates 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.
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.
Monotone polygons => no cusps
The vertex leftmost from vi…in the chain vi to vk….has to be a cusp.
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)
Polygon Triangulation
Sweep from left to right.
 Remove leftward pointing cusps
Sweep right to left
 Remove rightward pointing cusps
Triangulate all monotone polygons
Regularization
Remove all cusps that point in the
same direction
Regularization
Regularize from left to right removing
all leftward pointing cusps
Exactly in the same way, Regularize
from right to left removing all rightward
pointing cusps
Regularization
Once you find a leftward pointing cusp,
how do you find a diagonal?
A
V
W
B
X
Regularization
Once you find a leftward pointing cusp,
how do you find a diagonal?
A
V
W
B
X
Monotone Polygon Triangulation
Greedy Algorithm
 Sweep from left to right adding diagonals
whenever you can.
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
Vertices on Stack: A Funnel
•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.
Courtesy Nancy Amato
Vertices on Stack: A Funnel
Reflex chain
10
8
3
Last encountered
vertex
4
11
5
2
6
12
1
7
Split off triangle
9
Funnel
Partial Edge
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 Vi
7
6
12
1
5
2
11
Vi
9
4
Stack
pop all
push vj,vk
10
8
3
Vk
Vj
What happens when we encounter a
new vertex?
Case 2: Vj is on the same side as the
reflex chain on the stack
Popped and pushed
Vj
The only interesting case in this case, If Vj extends the reflex chain, we just
need to push it on the stack 
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
Homework
Textbook question 3.11
New Problem
Given a set of half-planes, compute
their intersection in O(nlogn) time.
 How can we do it using what we know?
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 projection
Asserts parallel lines meets at infinity
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
Example
A line contains at least 3 collinear points
of the plane.
A point contains at least 3 coincident lines
of the plane.
Point
 Line
Join
 Intersection
Collinear  Coincident
Duality in higher dimensions?
In space, the terms plane, line, and point
are interchanged with point, line, and
plane, respectively, to yield dual
statements
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*
Characteristics of the duality transform
Property : p lies above l iff l* lies above p*
p = (px, py)
l* = (a,b)
l: y = ax-b
p*: y = pxx - py
(px,apx - b)
p lies above l
py > apx - b
(a, pxa – py)
l* lies above p*
b > pxa – py
iff py > pxa - b
Summary
Observations:
1. Point p on straight line l iff point l * on straight line p *
2. p above l iff l * above p *
New Problem
Given n lines, compute the lower
envelope of these lines in O(nlogn)
time.