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 verticessource 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 parallel composition of G1 and G2
where T1 and T2 are their parse treesso 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 treesso T has S-node root with children T1 and T2
S
T1 T2
Decomposition trees
• If a node has the same type as his parentit 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
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
Left = nothingBottom = Source = s
3. If (s, u) exist then between slopes –π/2 and –π/4there’s nothing but s
4. If (v, t) exist thenbetween slopes π/2 and π/4there’s nothing but t
t
s
v
u
Δ-SP-Draw – base
• If G is a single edge• Draw it as a vertical edge with length 2• Bounding triangle Δ(Γ) will have width 1
G
t
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
• 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 Δ(Γ)
accordingly• Move sources and sinks to
upper and lower corners of Δ(Γ)
Δ-SP-Draw – parallel
G1
G2
“prescribed-region”
• (v, t) and (s, u) are rightmostedges on G1
• λv and λu are rays parallelto G1’s bounding triangle
• G2 will be translated toanywhere on the right of λv, λu and κ.
G1
G2v
u
κ
t
s
λv
λu
Lemma 3.3
• Let u and v be neighbors of the sourceso (s, u) is left of (s, v)
• Let λu and λv be rays of slope -π/4from u and v
• If invariant 3 holdsthen λu is below λv
s
u v
λu
λv
Lemma 3.3 – outcome
• If G2 is placed to the right of G1 and above λuwhere (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
• Hence if invariant 3 is held onG1 and G2 it is also held on G
• Symmetrically invariant 4 can be proveds
u
Therefore
• Proving Invariants 3 and 4 guarantee thats and t can be moved as described in the algorithm without creating crossings.
• Invariant 2 states that left cornerof Δ(Γ) is always empty,so G2’s left corner can beon 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 verticesthe length of the base is 2n.
• So the area needed is O(n2)
Calculating distances
We’ll describe Γ by:b = length of the baseb‘ = vertical distance to λub‘’ = vertical distance to λv
v
u
κ
t
s
λv
λu
b’
b’’
b
Parallel distances
To describe parallel combinations we’ll use:Δx = horizontal distance from
Δ(Γ1) to Δ(Γ2)Δy = vertical distance from
bottom ray of Δ(Γ1) toleft corner of Δ(Γ2)
Δx
Δy
Δ-SP-labelinput : decomposition tree T of Goutput : labeling b, b’, b’’ for each subtree of Tif root = Q-node then
b(T) = b’(T) = b’’(T) = 2else
Δ-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 thenb(T) = b(T1) + b(T2)+2Δxif 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
• 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.
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
separatingnonseparating
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 anda 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
than γ which contains e.• Thus C’ is a separating cycle in G.
C’
C
γ
π
e
Interlacement
• Each piece can be drawn either entirelyinside 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
CP1
P3P2
P4P1 P3
P2P4
Interlacement to planarity
• If G is planar graph then its interlacement graph must be bipartite
CP1
P3
P2
P4
P1P3
P2P4
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 formula1.Find pieces of G2.For each piece P that is not a path
test planarity by recursion3.Compute interlacement graph of the pieces4.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 ofG 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
3
2
1
3
2
4
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)