Eran Geva

advertisement
Divide and Conquer
Subject
• Series-Parallel Digraphs
• Planarity testing
Series-Parallel Digraphs
Series-Parallel Digraphs
•
•
•
•
Graph with a source and sink nodes
Source and sink are called poles
Defined recursively
Base case:
An edge with source and sink vertices
source
sink
Series composition of digraphs
• Identifying the sink of one and the source of
the other as one vertex
Parallel composition of digraphs
• Identifying as one vertex both their sources
• Identifying as one vertex both their sinks
Decomposition trees
•
•
•
•
Associating SP digraphs with Parse Trees
Binary trees
S-nodes, P-nodes and Q-nodes
Defined recursively
Decomposition trees
• G is a single edge so T is a single Q-node
Q
Decomposition trees
• G is a parallel composition of G1 and G2
where T1 and T2 are their parse trees
so T has P-node root with children T1 and T2
P
T1
T2
Decomposition trees
• G is a series composition of G1 and G2
where T1 and T2 are their parse trees
so T has S-node root with children T1 and T2
S
T1
T2
Decomposition trees
• If a node has the same type as his parent
it will be the right child
• T is unique for G
• If G has n nodes then T has O(n) nodes
• T can be created in O(n) time so will be
assumed to be part of the input
Components
• Let C be a maximal path same node type on T
• Let u1 … uk children of C not on C
• Component is the part of G associated with a
subsequence ui .. uj where 1 ≤ i ≤ j ≤ k
• Component is closed when C is of S-nodes
• Otherwise it is open
Closed component
Open component
Not a component
Right-pushed embedding
• (u, v) is transitive in G if there is another path
from u to v
• Drawing transitive edge (u, v) on the right of
all components with u and v poles
• O(n2) drawing area
Δ-SP-Draw
• Upward embedding of SP-digraph
• Drawing inside a bounding triangle Δ(Γ) which
is isosceles (‫ )שווה שוקיים‬and right-handed
• Series – one above the other
• Parallel – one to the right of the other
Δ-SP-Draw invariants
1. Inside an isosceles right-angled triangle Δ(Γ)
2. Top
= Sink
=t
t
Left
= nothing
Bottom = Source = s
3. If (s, u) exist then
between slopes –π/2 and –π/4
there’s nothing but s
4. If (v, t) exist then
between slopes π/2 and π/4
there’s nothing but t
v
u
s
Δ-SP-Draw
Δ-SP-Draw – base
• If G is a single edge
• Draw it as a vertical edge with length 2
• Bounding triangle Δ(Γ) will have width 1
t
G
s
Δ-SP-Draw – series
•
•
•
•
If G is a series composition of G1 and G2
Recursively draw Γ1 and Γ2
Translate Γ2 so G2’s sink is on G1’s source
Extend bounding triangle Δ(Γ) accordingly
G1
G2
Δ-SP-Draw – parallel
• If G is a parallel composition of G1 and G2
• Recursively draw Γ1 and Γ2
• Translate Γ2 to the “prescribed-region” of G2
(right of the dashes)
• Extend bounding triangle Δ(Γ)
G2
accordingly
G1
• Move sources and sinks to
upper and lower corners of Δ(Γ)
“prescribed-region”
• (v, t) and (s, u) are rightmost
edges on G1
• λv and λu are rays parallel
to G1’s bounding triangle
• G2 will be translated to
G1
anywhere on the right of
λv, λu and κ.
κ
λv
t
v
G2
u
s
λu
Lemma 3.3
• Let u and v be neighbors of the source
so (s, u) is left of (s, v)
• Let λu and λv be rays of slope -π/4
from u and v
• If invariant 3 holds
u
v
then λu is below λv
λv
s
λu
Lemma 3.3 – outcome
• If G2 is placed to the right of G1 and above λu
where (s, u) is the rightmost edge of s on G1
• Then no vertex of G2 is in the wedge limited
by the –π/4 ray from the neighbors of s
u
• Hence if invariant 3 is held on
G1 and G2 it is also held on G
• Symmetrically invariant 4 can be proved
s
Therefore
• Proving Invariants 3 and 4 guarantee that
s and t can be moved as described in the
algorithm without creating crossings.
• Invariant 2 states that left corner
of Δ(Γ) is always empty,
so G2’s left corner can be
on the base of G1.
Area of the triangle
• So the base of resulting triangle is equals the
sum of bases of both triangles.
• For a graph with n vertices
the length of the base is 2n.
• So the area needed is O(n2)
Calculating distances
We’ll describe Γ by:
b = length of the base
b‘ = vertical distance to λu
b‘’ = vertical distance to λv
κ
b’
λv
t
v
b
u
s
b’’
λu
Parallel distances
To describe parallel combinations we’ll use:
Δx = horizontal distance from
Δ(Γ1) to Δ(Γ2)
Δy = vertical distance from
Δx
bottom ray of Δ(Γ1) to
left corner of Δ(Γ2)
Δy
Δ-SP-label
input : decomposition tree T of G
output : labeling b, b’, b’’ for each subtree of T
if root = Q-node then
b(T) = b’(T) = b’’(T) = 2
else
Δ-SP-label of T1 and T2 (the subtrees)
if root = S-node then
b(T) = b(T1) + b(T2)
b’(T) = b(T1)
b’’(T) = b(T2)
else root = P-node then
b(T) = b(T1) + b(T2)+2Δx
if T2 is Q-node (transitive edge) then
b’(T) = b’’(T) = b(T)
else
b’’(T) = b(T1) + 2Δx – Δy + b’’(T2)
b’(T) = b’(T2) + Δy
Δ-SP-label
•
•
•
•
Δx can be 0
Δy can be b’(T1)
The area needed is O(n2)
The algorithm runs in O(n)
and needs O(n) space
end of Series-Parallel Digraphs
Planarity Testing
Planarity Testing
• Graph is planar if E = 3V - 6 (Euler formula)
• Graph is planar iff all its connected
components are planar
• Graph is planar iff all its biconnected (connected
by 2 edges per vertex) components are planar
• Preprocessing into connected and biconnected components –
the problem is restricted to biconnected graphs
Partitioning into Pieces
• Let a biconnected graph G contain a cycle C
• Classify each edge of G not on C:
if 2 edges have a path between them with no
vertex of C, they have the same class.
• Subgraph induced by edges in a class is called
a piece of G.
Partitioning into
Pieces
Attachments
• Vertices of piece P which are also on cycle C
are called attachments
• Since G is biconnected each piece has at least
2 attachments
• Cycle C induce a circular ordering on the
attachments of P
Separating cycle
• Cycle C is separating if it has at least 2 pieces
• If is has one or no pieces it is nonseparating
nonseparating
separating
Lemma 3.4
•
•
•
•
Let G be a biconnected graph
Let C be a nonseparating cycle of G
Let P be a piece on C
If P is not a path then G has a separating
cycle C’ consisting of subpath of C and
a path of P
Lemma 3.4 proof
• Let u and v be 2 attachments of P that are
consecutive in the circular ordering.
• Let γ be a subpath of C between u and v
without any attachments.
• Since P is connected there is a
path π in P between u and v.
• Let C’ be the cycle obtained from C
by replacing γ with π.
• Now γ is a piece on G with respect to C’
• Let e be an edge on P not π.
• e exist Because P is not a path.
• So there is a piece of C’ other
C’
than γ which contains e.
• Thus C’ is a separating cycle in G.
π
γ
e
C
Interlacement
• Each piece can be drawn either entirely
inside or outside of the cycle
• Interlacing pieces are ones that can’t be
drawn on the same side of C without crossing
Interlacing pieces
Interlacement graph
• Vertices are pieces on G with cycle C
• Edges are pairs of pieces that interlace – can’t
reside on the same side of C
P3
C
P1
P2
P1
P3
P4
P4
P2
Interlacement to planarity
• If G is planar graph then its interlacement
graph must be bipartite
P3
C
P2
P1
P1
P3
P4
P4
P2
Theorem 3.8
• A biconnected graph G with cycle C is planar
iff
• For each piece P, adding P to C is planar
• The interlacement graph of pieces of G with
cycle C is bipartite
Planarity testing
0. Count edges and check Euler's formula
1. Find pieces of G
2. For each piece P that is not a path
test planarity by recursion
3. Compute interlacement graph of the pieces
4. Test if the interlacement graph is bipartite
Preliminaries
•
•
•
•
The algorithm receives a biconnected graph G
G has n vertices and at most 3n-6 edges
Also received is a separating cycle C
Returns whether G is planar or not
Finding pieces
• Finding the pieces of G with respect to C by
computing the connected components of
G without C.
• Takes O(n)
Testing piece P planarity
For each piece P that is not a path:
• Let P’ be graph of adding P to C
• Let C’ be cycle in P’ by replacing
part of C with a path in P
• Since P’ is biconnected
and C’ is separating
– test planarity recursively
• Takes O(E(P’))
P2
Computing interlacement graph
For each 2 pieces P, Q
• P, Q’s attachments are numbered along C
• If attachments are not continuous in region
for each piece then P, Q are interlaced
1
4
1
2
3
2
3
Computing interlacement graph
• Checking one piece vs. all others takes O(n)
• All vs. all takes O(n2)
• Interlacement graph has O(n) vertices and
O(n2) edges
• Checking if it’s bipartite takes O(n2)
Overall runtime
• Each recursive invocation takes O(n2)
• Each recursion is associated with at least one
edge of G
• There are O(n) edges
• Runtime is O(n3)
Download