Simplified o N Algorithms For Planar Graph Embedding Kuratowski Subgraph Isolation and Related Problems
Simplified o N Algorithms For Planar Graph Embedding Kuratowski Subgraph Isolation and Related Problems
John M. Boyer
B.Sc., University of Southern Mississippi, 1990
All rights reserved. This dissertation may not be reproduced in whole or in part, by
photocopying or other means, without permission of the author.
11
ABSTRACT
A graph is pZonor if it can be drawn on the plane with vertices at unique locations
and no edge intersections. Due to the wealth of interest from the computer science
community, there are a number of remarkable but complex 0 (m) planar embedding al
gorithms. This dissertation presents a new method for 0 (n ) planar graph embedding
which avoids some of the complexities of previous approaches. The PC-tree method
of Shih and Hsu has similarities to our algorithm, but the formulation is incorrect
and not 0 (n ) for reasons discussed in this dissertation. Our planarity algorithm oper-
ates directly on an adjacency list representation of a collection of planar biconnected
components, adding one edge at a time to the embedding until the entire graph is
embedded or until a non-planarity condition arises. If the graph is not planar, a new
0 (n ) algorithm is presented that simplifies the extraction of a Kuratowski subgraph
(a subgraph homeomorphic to or Kg). The results are then extended to outer-
planar graphs, which are planar graphs that can be embedded with every vertex along
the external face. In linear time, the algorithms find an outerplanar embedding or a
minimal obstructing subgraph homeomorphic to or K 4 . Finally, modifications
to the outerplanarity and planarity obstruction isolators are presented, resulting in
0 (n) methods for identifying a subgraph homeomorphic to A^2 , 3 or
Examiners:
________________________________
Dr. Jq m Ellis, Departmental Member (Department of Computer Science)
CONTENTS
CONTENTS ............................................................................................................ üi
LIST OF T A B L E S ................................................................................................... vi
LIST OF F IG U R E S ................................................................................................ vü
D E D IC A T IO N ......................................................................................................... xi
1. Introduction................................................. 1
1.1 Further Definitions and Prelim inaries.................. 3
1.2 Review of the Literature . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.3 Contributions of This Dissertation........................................................... 17
1.4 Overview of C hapters................................................................................ 18
5. Walkup .................................................... 78
6 . W alkdow n............................................................. 82
6.1 Merging the Biconnected Components on the S t a c k ............................ 82
6.2 The Walkdown P ro c e d u re ........................... . 85
10. New Outerplanar Graph Testing, Embedding and Obstruction Isolation . . 149
10.1 Outerplanarity Testing and Em bedding................................................. 149
10.2 Isolating a Minimal Subgraph that Obstructs O uterplanarity............ 152
LIST OF TABLES
LIST OF FIG U R E S
1.4 The jiCs non-planarity minor from [8 ], and the corresponding PC-tree at
the beginning of step v .................................................................... 14
6.3 Graph Minors for Non-planarity Conditions of the New Planarity Test.
(a) Non-planarity Minor A for Condition 1. (b) Non-planarity Minor for
Condition 2......................... 92
D E D IC A T IO N
A pmpA G = (y, E) consists of a set y of vertices and a set E of edges, each of which
is associated with a pair of vertices from y . By convention, n indicates the number
of vertices in y, and m indicates the number of edges in E. For a given graph G,
the vertex set V, the edge set E and their sizes, n and m, can be denoted V{G),
E(G), u(G) and Tu(G) . A graph is undirected if its edges consist of unordered pahrs
of vertices, and a graph is directed if its edges consist of ordered pairs of vertices.
Throughout this dissertation, graphs are undirected unless stated otherwise.
In an undirected graph, the vertices associated with an edge are called the end
points of the edge, and an edge is incident to its endpoints. An edge with endpoints
u and V is denoted (m, v ) . A loop is an edge of the form {u , u ), and a m u ltip le edge is
an edge that occurs more than once in E (if there are multiple edges, then E is not a
set but rather a multiset). A m u ltig ra p h is a graph that permits loops and multiple
edges (some texts forbid loops [24]), and a sim p le graph is a graph that forbids loops
and multiple edges. Throughout this dissertation, graphs are simple unless stated
otherwise.
In a graph G, vertex u is adjacent to vertex v, or equivalently u is a neighbor
of u, if {u,v) is an edge in E(G). The subset of vertices adjacent to a vertex u is
called the neighborhood of u. The degree of a vertex u is the number of non-loop
edges containing u as an endpoint plus t^ c e the number of loops of the form (u,u).
In a simple, undirected graph, the degree of a vertex u is equal to the size of its
neighborhood, and each neighbor u of a vertex u is also adjacent to u.
A graph is often drawn using points for the vertices and lines (possibly curved)
for the edges. A pkmor of a graph is a drawing of the graph on a plane
such that the vertices are placed in distinct positions and no two edges intersect
except at cmnmon vertex endpoints. A planar representation of a graph divides the
plane into connected regons, called /ocea, each bounded by edges of the graph [24, p.
6 8 ]. A region of hnite area is called a proper /ace. The erfenW /ace is the plane less
the union of the proper faces and the points occupied by the planar representation
of the graph. Figure 1.1(a) shows an example graph with four vertices and six edges.
Figure 1.1(b) shows a planar representation of the same graph.
(a)
Figure 1.1: A n Exam ple Graph and a Planar R epresentation o f the Graph
Graphs are often used as the underlying mathematical model in a wide variety
of problems in which there are objects, represented by vertices, and associations
between two objects, represented by edges. For example, a given electronic circuit
may be composed of resistors, capacitors and transistors connected together by wires.
A map of a website or a hypertext book could be represented using vertices for the
pages and edges for the hyperlinks. In these example applications, finding a planar
representation of the graph is useful as an answer to whether an electronic circuit
can be arranged on a printed circuit board without creating a short-circuit [32], or
whether a map or content overview of a website or hypertext book can be drawn on
a computer screen without ambiguities arising from crossed edges.
A graph is planar if it is possible to create a planar representation of the graph,
and a non-planar graph is a graph for which there is no planar representation. Simi
larly, a graph is outerplanar if it is possible to create a planar representation of the
graph in which all vertices are endpoints of the bounding edges of the external face.
A planarity testing algorithm determines if a graph has a planar representation. A
pfouor olgonf/im also indicates the clockwise order of the neighbors of each
vertex. Generating the specific vertex positions and edge shapes in a planar repre
sentation is often viewed ^ a separate problem, in part because it is application-
dependent. For example, our notion of what constitutes a suitable rendering of a
graph may differ substantially if the graph represents an electronic circuit versus a
hypertext book. Hence, a data structure in which the representation of each vertex
contains a clockwise-ordered list of its neighbors is called a combmotorW florwr em-
bedding and is considered to be a simple certihcate of planarity that contains snScient
information for subsequent graph drawing algorithms.
In 1930, Kuratowski [41] was the hrst to prove a theorem characterizing the
property of planarity in graphs, which had the eSect of showing that it is also possible
to create a simple certiGcate of non-planarity for non-planar graphs. A suùgruph of
a graph G is a graph such that Ç and Ç E(G). A Kuyufouwti
subgraph is a minimal non-planar subgraph of a graph. A Kuratowski subgraph isolator
is an algorithm that extracts a Kuratowski subgraph from a given non-planar graph.
In some applications, Ending a Kuratowski subgraph is a Erst step in eliminating
problem areas in the graph. For example, in a graph representing an integrated
circuit, the crossed edge in an identified Kuratowski subgraph could be replaced by
a sub circuit of exclusive-or gates [43].
Existing linear time methods for the algorithms defined above are quite complex
[11, 33]. This dissertation provides new, simplified linear time algorithms for planarity
testing, planar embedding and Kuratowski subgraph isolation. The results are then
extended to outerplanar graphs and to other related problems.
(a) Kg (b)K.
Despite the early results of Kuratowski [41] and Wagner [58], the first charac
terization of planarity that lead to a polynomial time planarity testing algorithm is
due to Tutte [55]. Given a subgraph H of a graph G, an H-bridge of G is either 1 ) an
edge not in H whose endpoints are in i f or 2) a component of G —V{H) together with
the edges (and vertices of attachment) that connect it to H. The attachment points
of a bridge are those vertices of the bridge that are in V{H). Some texts (e.g. [24])
require an if-bridge to have more than one attachment point. Given a cycle i f in a
graph G, two if-bridges conflict if they have three common attachment points or if
there are four distinct vertices U]_, %, U3 and in cyclic order on i f such that and
U3 are attachment points in the first bridge and % and are attachment points in
the second bridge. The conflict graph of i f is a graph in which each vertex represents
an ff-bridge of G and each edge (n, u) represents a confiict between the ff-bridges
represented by u and v. According to Tutte, a graph G is planar if and only if, for
every cycle G in G, the confiict graph of G is bipartite. This result was exploited in
the first polynomial time planarity testing algorithm created by Auslander and Barter
[5] (and correctly formulated by Goldstein [25]).
A graph is connecW if, for every pair of vertices u and there exists a path
from u to u in the graph. A graph is dwconnected if there exist vertices u and u for
which there is no path from u to u in the graph. A connected component is a maximal
connected subgraph of a graph. A vertex w is a cut vertex of a graph G if the removal
of V and its incident edges results in a graph with more connected components than
G. Another name for a cut vertex is an articulation point. A cut edge is an edge
whose removal increases the number of connected components in G. Each endpoint
of a cut edge is either a cut vertex or a vertex of degree one. A graph containing one
or more cut vertices is seporoble, and a graph with no cut vertices is Mconnecfed. A
WcounecW component of a graph is a maximal biconnected subgraph. Another name
for biconnected component is fdocA. Figure 1.3(a) illustrates a cut vertex u s^ aratin g
two biconnected components, and Figure 1.3(b) shows the two components that result
when V and its incident edges are removed. Note that v would no longer be a cut
vertex if edge (n, to) were added.
(a) (b)
T h eo rem 1.3 (T arjan [53]) A uerfec u is o cut uertec ^ ond only hos o DP 6 '
child c with lowpoiM(c) > D fF (f) ond there eziata o distinct oerter w not o deacen-
dont o /c in the aome connected component oa o.
incident to a vertex in the DFS subtree rooted at c has for its other endpoint either
u or another vertex in the DFS subtree rooted at c. Thus, every path from c to tu
must contain u. Since removing n destroys all paths between c and tu, t; is a cut
vertex. Conversely, suppose t; is a cut vertex. If u is the DFS tree root, then every
non-descendant of c other than u must be in other DFS subtrees rooted by other DFS
children of v. Any DFS child of v other than c is a suitable choice for tu. On the
other hand, if t; is not the DFS tree root, then any ancestor of u is a suitable choice
for tu. □
Theorem 1.4 (Euler [17]) is a connected simple plonor prop/i with n vertices
ond m edges, then every plonar representation o /G has a number o/ /aces / egual to
m —n + 2 .
Corollary 1.5 1/ G is a simple planar grr^h with n > 2 vertices, then G contains
no more than 3n —6 edges.
Due to Corollary 1.5, algorithms for planarity testing, planar embedding and
Kuratowski subgraph isolation on G (with n > 2) can be restricted to any subgraph
H containing min(3n —5, \E{G)\) edges from G. If G exceeds the edge limit, then H
is guaranteed to be non-planar by Corollary 1.5, so it contains a Kuratowski subgraph
by Theorem 1.1. Thus, a planarity tester, planar embedder or Kuratowski subgraph
isolator that performs constant work per edge achieves 0{n) time.
There also exist problems that are very difficult on graphs in general but which
are solved much more easily on planar or outerplanar graphs, such as graph isomor
phism [27, 29, 31]. For example, a planar graph can be used to model the signihcant
molecular structure of most known chemical compounds using vertices to represent
atoms (or groups of atoms) and edges to represent chemical bonds. Thus, determining
the equivalence of two chemicals can often be reduced to the planar graph isomor-
phism problem [27]. Another example is finding the maximum cut in a graph, which
is NP-complete in general [23] but solved efficiently on planar graphs [26]. In the case
of outerplanar graphs, an example is the algorithm of Ellis, Mata and MacGillivray
[16] for finding the longest path between two vertices of an outerplanar graph, which
achieves linear time on a problem that is NP-Complete even for planar graphs [23].
As well, efficient Kuratowski subgraph isolation is a critical component of nu
merous linear-time graph algorithms, including an isolator for 3 homeomorphs [2 0 ],
an isolator for minors [37], and embedding algorithms for more complex surfaces
than the plane [34, 46, 47]. For example, the linear time K 3 3 homeomorph isolator
of Fellows and Kaschube [20] begins by isolating a Kuratowski subgraph K , which
is either the desired ^ 3 ,3 homeomorph or a K 5 homeomorph. In the latter case, the
algorithm examines the K-bridges of the graph, both recursively and to determine
whether any can be attached to FT to form a 1 ^ 3 , 3 homeomorph.
The wealth of interest in graph planarity has resulted in efficient algorithms for
various computing models and constraints, including both parallel [38] and on-line [6 ]
planar embedders. In addition, various efficient algorithms have been developed for
enumerating, ranking and unranking planar embeddings [10, 36, 57].
The first planarity testing algorithm to achieve linear time b%an with the work
of Auslander and Parter [5] (correctly formulated by Goldstein [25]). The algorithm
obtained a cycle G in the graph, recursively embedded each G-bridge (augmented
with edges to form a path from its first to last attachment point along G), then
determined an embedding in which some of the bridges were attached inside G while
the confiicting bridges were attached outside of G. HopCroft and Tarjan [30] optimized
the algorithm to linear time by exploiting numerous properties of depth first search
11
that allowed them to decompose each bridge into a set of paths to be processed
consecutively by the algorithm. As a result, a number of authors refer to the Hopcroft
and Tarjan algorithm as the pufA addition method [11, 18, 52]. Some corrections
to the algorithm appear in [15], and significant additional details are presented by
Williamson [61, 63] as well as the text by Reingold, Nievergelt and Deo [49].
Despite these resources, it is difficult to envision how the tester achieves linear
time on certain key parts, such as reversing a prior decision about whether to embed
certain bridges (sets of paths) on the inside or outside of C. Indeed, Hopcroft and
Tarjan comment that the challenging part of the algorithm is the creation of good
data structures to efficiently implement this method. Moreover, while the conclusion
of their paper briefly sketches a method for augmenting their tester to create a planar
embedder, over a decade later, Chiba, Nishizeki, Abe, and Ozawa comment that
modifying the Hopcroft and Tarjan algorithm to yield a planar representation “looks
to be fairly complicated; in particular, it is quite difficult to implement a part of the
algorithm for embedding an intractable path” [11, p. 55].
Another planarity test created by Demoucron, Malgrange and Pertuiset [14]
(see [24] for an excellent exposition) also begins with a cycle C and the bridges with
respect to C. Then, it embeds each bridge one at a time, keeping track of the new
faces that develop in the embedding and the faces into which each remaining bridge
can be placed. Rubin [51] describes a method for optimizing this method to achieve
average case linear time and roughly half the running speed of the Hopcroft and
Tarjan method. However, these results are based on empirical tests and no proof is
given that the algorithm achieves linear time in the worst case.
The second method of planarity testing proven to achieve linear time began with
an algorithm some have called the vertex addition method. The original O(n^) version
is due to Lempel, Even and Cederbaum [42]. The algorithm begins by creating an s, t-
numbering for the (biconnected) graph. A property of this numbering is that there is a
path of higher numbered vertices leading from every vertex to the vertex (, which has
the highest number. Thus, there must exist an embedding of the first k vertices such
that the remaining vertices (A + 1 to ^) can be embedded in a single face. The testing
12
algorithm was optimized to linear time by a pair of contributions. Even and Tarjan
[19] optimized s, (-numbering to linear time, while Booth and Lueker [7] developed
the PQ-tree data structure, which allows the planarity test to efSciently maintain
information about the portions of the graph that can be permuted or flipped before
and after embedding each vertex. Chiba, Nishizeki, Abe and Ozawa [1 1 ] augmented
the PQ-tree operations so that a planar embedding is computed as the vertex addition
method operates.
Achieving linear time with the vertex addition method is also quite complex
[33], in part because Booth and Lueker do not include the complete set of optimized
templates required to update the PQ-tree quickly [7, p. 362] but leave them for the
reader to derive. There are non-trivial rules for restricting processing to only the
pertinent portion of the PQ-tree, more rules to prune the tree, then still more details
to increase the efficiency of selecting and applying templates since more than one is
often applied in a reduction.
Linear time Kuratowski subgraph isolation was first solved by Williamson [62].
The method examines the state of the data structures in the Hopcroft and Tarjan
path addition method at the point when a non-planarity condition occurs (when three
bridges mutually confiict). This algorithm is also quite complex, in part because it is
based on path addition. Karabeg [35] developed a linear time Kuratowski subgraph
isolator that exploits non-planarity conditions that arise in PQ-trees. A far simpler
Kuratowski subgraph isolator was developed by Klotz [39]. It only achieves O(u^)
time, but it is useful because it does not dependent on a complex linear time planarity
test algorithm.
A characterization of planar graphs by de Fraysseix and Rosenstiehl [13] could
lead to algorithms for planarity testing and Kuratowski subgraph isolation, though the
paper contains no development of a linear time methodology. The characterization is
important; though, because it discusses planarity from the vantage point of conflicts
between back edges as seen &om a bottom-up view of the depth first search tree.
A preliminary report containing some of the results of this dissertation appeared
in [8 ]. Our work is based on this bottom-up view, though we derived it independently
13
of [13] as the result of trying to eliminate fQ -trees and a, (-numbering while retaining
the aforementioned property of a, (-numbering that all paths lead to the hnal vertex.
Using a bottom-up view of the DFS tree, the hnal vertex is the DFS tree root,
which suggests a bottom-up vertex processing order. While [8 ] contained most of the
information necessary to embed the back edges between each vertex and its depth
first search descendants and to recover a combinatorial planar embedding in linear
time, as an extended abstract it does not contain complete information. Specifically,
it lacks details that define when the root of a biconnected component should be kept
on the external face, and it does not provide the details on how to maintain and use
path information for each biconnected component encountered as the algorithm works
bottom-up from descendants adjacent by a back edge to the vertex being processed.
This dissertation improves on the prior work by presenting a simpler formulation
that does not even need to maintain this path information nor any external face
information for biconnected component roots.
Very recently, a new planarity test was presented by Shih and Hsu [52]. They
develop the notion of a PC-Tree (described below) as a simplification of a PQ-tree, and
their work is critically dependent on a number of the same results that appeared earlier
in Boyer and Myrvold [8 ]. However, since their date of submission was significantly
before the publication of [8 ], there is clearly a case of simultaneous independent
discovery of somewhat similar algorithms.
Unfortunately, the results of Shih and Hsu stated in [52] contain several errors
that negate the proof of correctness of the planarity test and the claim of a fully
defined Kuratowski subgraph isolator. For example, the only PC-tree pattern in [52]
for detecting Æg homeomorphs appears to only detect some ATg minors. According
to [52, p. 185] “we could have three terminal nodes being neighbors of a C-node, in
which case we would get a subgraph homeomorphic to JQ as illustrated in Fig. 6 ".
Figure 1.4(a) depicts the Kg minor pattern appearing in Figure 6 (c) of [8 ] (with a
few cosmetic changes), and Figure 1.4(b) depicts the corresponding PC-tree.
The darkened triangles, called i-subtrees, represent subtrees rooted at a; and y
that have yet to be connected to u by unembedded back edges. Likewise, the whitened
14
(a) (b)
t
I
.
I&
w >-<è
(a) (b) (c)
changes) in Figure 1.5(a). The dashed lines represent, at least in part, unembedded
back edges. Our algorithm would currently be processing the back edges from v to
its descendants. The corresponding PC-tree at the beginning of step v appears in
Figure 1.5(b). In this example, x and y have i-subtrees, w and r have ^‘-subtrees,
and the C-node is a terminal node. Moreover, it is the only terminal node, and the
work of Shih and Hsu [52] contains no theorem, lemma or corollary that detects a
non-planarity condition in this configuration.
In essence, the non-planarity pattern depicted in Figure 1.5 is a counterexample
to the proof of correctness appearing in Theorem 4.1 of [52]. Any reduction of the
PC-tree in Figure 1.5(b) must retain r on the external face due to its f-subtree,
which is infeasible since w must also be kept on the boundary cycle of a biconnected
component due to its f-subtree. This problem negates the claim on p. 188 of Shih and
Hsu [52] that the conditions established by “Lemma 2.5, Corollary 2.6 and Lemmas
3.1 and 3.2 .. . imply a feasible internal embedding for each biconnected component.”
As such. Theorem 4.1 does not establish the Shih-Hsu algorithm as a correct planarity
tester. In collaboration with graduate student Rdland Wiese of the Eberhard-Karls
University of Tubingen [60], this problem was determined to also be applicable when
there are two terminal nodes, as depicted in Figure 1.5(c), because Lemma 3.1 does
16
not apply to the terminal nodes. The problem appears to be an incorrect assumption
in extending Lemma 2.7 and Corollary 2.8 to the case of having terminal nodes that
are C-nodes, whose children cannot be arbitrarily permuted but must instead adhere
to the order given by the representative bounding cycle (RBC).
It is easy to see that these cases have been missed in the processing model for
PC-tree reduction, which is shown in Figure 11 of [52]. This figure shows how to
reduce the PC-tree once it has been determined that a feasible internal embedding
is possible according to the conditions established by Lemma 2.5, Corollary 2 . 6 and
Lemmas 3.1 and 3.2. In Figure 11 (i) and (ii), the first child of u in clockwise direction
below the critical path f leads to an %*-subtree. If it were changed to an i-subtree (a
darkened subtree), then the resulting PC-tree is not reducible.
These additional non-planarity conditions and the non-planarity condition de
scribed by Lemma 3.1 of [52] also have an effect on the complexity analysis. In
accounting for Lemma 3.1, p. 190 of [52] states that “determining which side of an
intermediate C-node w contains ^-subtrees (let v, v' be two neighbors of w in P) we
only have to check the two neighbors of v (or v') in the cyclic list to see which one
has the label i." This may be true under the assumption that the input graph is
planar, but the point of a planarity test (and of Lemma 3.1 in particular) is to deter
mine whether the graph is planar, so some form of additional work must be done to
determine whether the forbidden i-i* subtree pattern has occurred.
In terms of complexity analysis, there are additional concerns pertaining to
the linear time performance of the algorithm as stated in [52]. For example, the
claim that the “RBC will be stored as a circular doubly linked list” [52, p. 184]
cannot be supported. When the representative bounding cycles of C-nodes must be
joined together, the direction of traversal of two consecutive C-nodes may be reversed
depending on which path contained the %-subtrees in each C-node. Joining the RBCs
of two such C-nodes into a circular doubly linked list would require the inversion of
links in the RBC nodes of one of the two C-nodes. It is easy to create planar graphs
in which 0{n^) link inversions occur in total. It is therefore necessary to represent
the RBC with a fist that permits arbitrary link inversions as is done in the algorithms
17
planar graphs and Knratowski's theorem." This dissertation contributes a new linear
time Kuratowski subgraph isolator that diSers from and is more intuitive than prior
strategies described by Boyer and Myrvold [8 ], Shih and Hsu [52], and Williamson
[62]. The algorithm is conceptually as simple as the Kuratowski subgraph isolator
of Karabeg [35], though our implementation details are not as complicated, in part
because they do not involve the augmentation of PQ-tree operations.
A linear time implementation of these algorithms was created in four days for
the planar embedding algorithm plus three days for the Kuratowski subgraph isolator.
The implementation was then tested on hundreds of millions of randomly generated
graphs of up to 1 0 0 vertices plus well over a billion graphs generated with the aid of
McKay’s nauty program [45] (specifically all connected graphs with 11 or fewer ver-
tices). For each graph, the integrity of the resulting combinatorial planar embedding
or Kuratowski subgraph was tested.
In this dissertation, the new theoretical framework developed for planarity is
also extended to produce a linear time outerplanarity testing algorithm distinct from
the algorithm of Brehaut [9], which is based on the Hop croft and Tarjan planarity
test [30]. Moreover, an outerplanar embedding is recovered, or a minimal obstructing
subgraph homeomorphic to or A 4 is isolated if a graph is found not to be outer-
planar. Finally, modifications to the outerplanar and planar obstruction isolators are
described, resulting in linear time algorithms that search a graph to ident% a
or A 3 , 3 homeomorph or determine that the graph has no subgraph homeomorphic to
A 2 3 or A 3 ,3 .
mcluding proo& of correctness and run-time analyses for each functional component.
Chapter 7 presents the key theorems proving the correctness and linear time opera
tion of the new planarity testing algorithm. Chapter 8 describes the data structure
and algorithm modihcations necessary to extract a combinatorial planar embedding
if the input graph is planar, and it proves that these modiGcations result in a linear
time planar embedding algorithm. Chapter 9 describes how to extract a Kuratowski
subgraph in linear time from the state of the data structures at the moment when the
planarity tester discovers that the input graph is non-planar. Chapter 10 extends the
theoretical framework developed in this dissertation for planarity problems to solve
the corresponding outerplanarity problems, and Chapter 11 describes modifications
to the outerplanarity and planarity obstruction isolators that result in linear time
algorithms that search a graph for a Kg 3 or homeomorph. Finally, Chapter
1 2 discusses several future lines of inquiry that can be pursued with the new data
structures and algorithms in this dissertation.
20
Our new planarity algorithm begins with a few preprocessing operations, most of
which are common to all linear time planarity algorithms. The Erst operations are to
create a depth first search tree and to perform the lowpoint calculation as described
in Chapter 1. This assigns a depth first index (DPI) and lowpoint to each vertex. The
vertices are then sorted into ascending DPI order (in linear time). A few additional
data structures and preprocessing operations are required, which will be described as
needed in this chapter, then in more detail in Chapter 3.
After preprocessing the input graph G, the algorithm creates a data structure
G to store the embedding. The data structure G is designed to maintain a collection
of biconnected components. Por each DPS tree edge e of G, the algorithm creates a
singleton biconnected component in G containing only a representation of the tree
edge e, including a structure for each vertex incident to e. Thus, for each vertex
V, G contains a vertex structure for v for each tree edge containing v. In the m a in
loop of the algorithm described below, the multiple vertex structures representing a
vertex v are merged together as back edges are embedded to form larger biconnected
components.
The main loop of the algorithm iterates through each vertex n of G in reverse
DPI order, embedding in G one edge per back edge between n and a descendant of
V in G. The rationale for using reverse DPI order is simply that, for any step v, a
partial embedding can be created in which the remaining unprocessed vertices can
be embedded in the external face because they each have a path of DPS tree edges
leading to the DPS tree root. A high-level outline for our algorithms appears in
Pigure 2.1.
As indicated in the main loop body in Pigure 2 . 1 , embedding a back edge (n, w)
may be accompanied by merging one or more biconnected components that, together
with (n, w), form a single biconnected component. The order in which back edges are
embedded and the details of the biconnected component merge operations are selected
21
such that all vertices with unembedded back edges to v or its ancestors remain on
the external faces of biconnected components in G.
If the input graph G is planar, then all of the back edges are embedded in the
main loop. Since all of the tree edges were embedded in Line 4, G contains a planar
embedding of G. However, if G is non-planar, then the algorithm terminates in some
step V when it cannot embed a back edge to v without also placing a vertex with an
unembedded back edge to a DFS ancestor of v inside of a biconnected component
(such that the uuembedded back edge would have to cross the bounding cycle of the
biconnected component in order to be embedded). When this occurs, our algorithm
adds a few unembedded back edges, then isolates a Kuratowski subgraph in G.
The sections of this chapter describe a more detailed conceptual framework for
22
the algorithm outline given in Figure 2.1. The first few sections discuss preliminary
details of the data structures, while the remaining sections describe the algorithm
operation in more detail, adding to the data structures as necessary. The formal
data structure definition appears in Chapter 3 and the formal descriptions for the
procedures in the algorithm appear in subsequ^t chapters (along with proo 6 of
correctness and run-time analyses).
.w, .W:
this is the edge {u\ v) in Figure 2.2. Thus, the first edge embedded for a biconnected
component is its root edge.
When the algorithm adds a back edge, if the endpoints are in separate bicon
nected components, then the necessary biconnected components are merged together
to form a single connected component, which becomes biconnected when the back
edge is added. In Figure 2.2, this first occurred in step w when the back edge (w, z)
was added to form biconnected component B. In the current step v depicted by
Figure 2.2, the algorithm is ready to embed the back edge (v, z). Since vertex w will
no longer be a point of separation between a child biconnected component B and
its parent biconnected component once the edge is added, the root vertex u/ of B
is merged with its parent copy w. Then, the representative edge for (t;, z) is added,
resulting in a biconnected component that includes z, w and a root copy of v.
The back edge (u, z) is embedded between z and a root copy of u, denoted
In Figure 2.2. When processing u, the ancestors of u have not yet been processed, so
there are no back edges leading to ancestor vertices of u. Hence, u is a cut vertex in
25
the current embedding, and all back edges from v to its descendants are embedded
incident to root copies of u. Earlier, in step tu, the back edge (w, z) was embedded
by adding the edge (tu%z) to form biconnected component labeled B in Figure 2.2.
The edges incident to tu' are only changed to be incident to tu when we merge tu and
tu' as part of embedding the back edge (u, z).
level algorithm outline in Figure 2.1 requires that we be able to determine which
vertices and biconnected components must be kept on the external face as the back
edges of a given vertex u are embedded.
D eS nltion 2.1 parent copy uerter z is externally active the input pruph G con
tains a 6ac& edpe (u, z) where u is an ancestor o/ the current uertea; o beiny processed
6y the main algorithm loop, or ÿ there earists a biconnected component in the em
bedding G rooted by a/ ^a root copy 0 / 3 ^ that contains at least one eademally actioe
parent copy vertex.
.w
(a) (b)
loop processes u, and the back edge (u, z) can be embedded without crossing any
edges.
As shown in Figure 2.4, a vertex z is also considered to be externally active if
there exists a back edge (u, z) where u is a DFS ancestor of the vertex n currently
being processed and z is a descendant of z in another biconnected component of G.
Note that the biconnected components rooted by x' and d' are externally active due
to vertices d and z, respectively. If the back edge (v, w) were embedded such that x
appeared inside the cycle C = [v, . . . , w, . . . , y, . . . , u], then either the back edge
(u, z) or a tree edge in the DPS tree path from z up to z would be required to cross
C (which is why our algorithms do not place externally active vertices inside of the
external face bounding cycles of biconnected components).
Because it is often unnecessary to distinguish why a vertex is externally ac-
tive, many diagrams in this dissertation depict an externally active vertex x as being
directly adjacent to an unprocessed vertex u unless the context demands that a de
scendant of X also be shown. Likewise, the edge (v, w) may be indicative of a path
connecting r and w that includes descendants of tu. In other words, all descendants
are contracted into z or w when there is no conceptual diSerence between connecting
u and z or n and w 1^ a back edge or by a path of tree edges followed by a back edge.
Moreover, the DPS ancestors of the current vertex u (both root copies and parent
28
copies) are contracted into vertex u, and edges such as (a;, w) may represent paths
along the external face whose edges and vertices have been contracted into z or w
for discussion purposes. In essence, the diagrams are graph minors of the embedding
that contain the vertices and edges necessary to illustrate a particular point.
Computationally, it is easy to determine in constant time whether a biconnected
component is externally active using the lowpoint function described in Chapter 1.
Given a biconnected component B rooted by the DFS child tree edge (r', c), B is
externally active if the lowpoint of c is less than the DFI of the current vertex v
whose back edges are being embedded.
Detecting whether a vertex is externally active is nearly as simple as using
the lowpoint function, and lowpoint figures prominently in the computation. The
lowpoint of w is the DPI of the vertex closest to the DFS tree root that is reachable
by a back edge firom w Or ony of its DFS descendants. According to Definition 2.1,
the external activity computation for w excludes any DFS subtree rooted by a child
c that has been merged into the parent biconnected component with w.
External activity can be computed in constant time using the following meth
ods. During initialization of our data structures, each (parent copy) vertex structure
receives a member leostAuceator to store the DFI of the least ancestor adjacent to
29
the vertex by a back edge, which is a value obtained during the lowpoint calculation.
Each vertex structure also receives a doubly linked list of its DFS children sorted
by their lowpoint values, which we call the ,9epomfedDFS"Chüdfÿiaf because a DFS
child c is removed from the list of its DFS parent w when a biconnected component
rooted by the DFS tree edge (w% c) is merged with w. Finally, each vertex structure
receives a reference to indicate its representative node in the SeparatedDFSChüdList
of the DFS parent so that the removal can be done in constant time. A vertex w is
externally active if its leastAncestor meniber is less than f or if the least lowpoint
from the elements of its SeparatedDFSChüdList, which is in the hrst element, is less
than f, where u is the vertex currently being processed.
D efinition 2.3 A biconnected component with root edge (r', c) is pertinent at step v
^ fAe G conWna of feoaf one 6 ocA edge (u, w), where w w in fhe DFS"
enhfree roofed c.
D efinition 2.4 A oerfer to is pertinent in sfey o ÿfh ere acisfa o edge (u, w)
in fhe inpnf graph (7 fhof hos nof 6 een embedded in (7 or ^ G confoins o perfinenf
biconneefed componenf wifh roof w'.
30
Based on Deûnitions 2.3, 2.4 and 2.5, the invocations of the Walknp procedure
identify pertinent vertices and pertinent biconnected components at the beginning of
step V. The members pertinentBicompList and adjacentTo are added to each vertex
structure to store this information. At the beginning of step o, the adjacentTo member
of each vertex structure is greater than v, and the pertinentBicompList of every vertex
is empty. For a back edge (u, w), the Walknp sets the adjacentTo member of to eqnal to
0 . To identify the pertinent biconnected components, the Walknp procednre for back
edge (v, w) performs a loop that begins at the parent copy of w and simultaneously
traverses both paths leading from w around the external face of the biconnected
component B containing w until the root vertex r' of B is encountered. If r' is a root
copy of u, then the Walknp terminates successfully. Otherwise, / is stored in the
pertinentBicompList of the parent copy vertex structure r. Then, the Walkup loop
reiterates starting at r. Thus, for each separation ancestor r of w in G, the root copy
of a biconnected component with c an ancestor of or equal to w is recorded in the
pertinentBicompList of r. For the sake of simplicity, the root copy is appended if the
corresponding biconnected component is externally active and prepended otherwise.
Within each biconnected component visited by Walkup, one of the two paths
between r ' and w becomes part of a new proper face once the back edge (n,w) is
embedded. The Walkup performs external face traversal in parallel to ensure that
each biconnected component root is found with a cost not exceeding twice the size
of the shortest path between / and w around the external face. This helps to ensure
that the total cost of all Walkup operations is a constant multiple of the sum of
degrees of proper faces in the embedding.
The Walknp loop has a second stopping condition due to a necessary optimiza
tion. In order to achieve linear time, the cumulative work done by all Walkup calls for
the back edges of v must not exceed a constant multiple of the number of bounding
edges in new proper faces formed during step u. However, it is possible for the back
31
© t
©
between v' and s along the external face such that it removes w from the external face
(if the adjacentTo member of a does equal u, then tu is removed &om the external
face when the back edge (u% a) is embedded). A short-circuit edge may not exist in
the input graph, or it may form a multiple edge in G, but each short-circuit edge is
specially marked for easy removal after the main loop in Figure 2.1 is finished. Short-
circuit edges are added as an optimization to help achieve linear time (see Section 2.9
for details).
If, in the second task, the Walkdown determines that the pertinentBicompList
of tu is non-empty, then the Walkdown obtains the root tu' of a pertinent child bicon
nected component with preference for the root of an internally active child biconnected
component if any are in the list. Since, according to Section 2.5, the Walkup prepends
the roots of internally active biconnected components and appends the roots of exter
nally active pertinent child biconnected components, the Walkdown simply obtains
w' by taking the first element of the pertinentBicompList of w.
The Walkdown pushes onto the above mentioned stack the root w' obtained
from the pertinentBicompList of tu, then traversal descends to the vertex tu'. The
direction in which to continue traversal from tu' must then be selected. Due to
short-circuit edges embedded by the Walkdown in prior steps of the algorithm, the
immediate neighbors of tu' along the external face are not inactive. If both neighbors
are internally active, then either direction can be used to continue traversal. If only
one external face neighbor of tu' is internally active, then traversal proceeds in the
direction of the internally active neighbor. If both neighbors are externally active,
then traversal proceeds in the direction of a pertinent nei^bor. If both neighbors
are externally active and non-pertinent (i.e. both are stopping vertices), then the
input graph is non-planar and the Walkdown terminates (see Section 2.8 for details
on isolating a Kuratowski subgraph).
We now consider an example to help illustrate the behavior of the Walkdown.
In this example, the Walkdown must embed iwo back edges, (u', tu) and («', y). When
the first Walkdown traversal begins, the biconnected component B contains only the
root edge (u', c). Since the algorithm calls Walkdown immediately after all Walkup
36
calls have been completed, Figure 2.5 from Section 2.5 exemplifies the state of our data
structures at the beginning of a Walkdown on B (except that short-circuit edges are
not depicted). The Walkdown proceeds from v' to c, where it finds a pertinent child
biconnected component with root c'. The Walkdown descends to c', and obtains the
first active vertices w and r along both external face paths extending from d. Since
both are externally active and pertinent, w is selected arbitrarily. The Walkdown
merges the root copy c' with c and embeds the back edge (u', w). Figure 2.6 depicts
the result of this operation (short-circuit edges are not depicted as they are not
germane to correctness, though they do expedite the process of obtaining w and r).
Once the back edge to w is embedded, the Walkdown determines that it cannot
proceed further beyond w because w is a stopping vertex and must remain on the
external face. The Walkdown begins the second traversal at v' to walk down the
opposing path (the one that does not lead to w). This path always begins with
revisiting c. In this example, the second Walkdown leads to vertex r. Since the
Walkup will have recorded r ' as a pertinent child biconnected component of r, the
Walkdown pushes r ' onto the stack. However, the shorter and more natural direction
of continued traversal would appear to be the path leading through z to %/, but this
37
path cannot be used because the Walkdown traversal cannot proceed beyond z since
it is externally active. Instead, the Walkdown traversal selects the path through x
to y because y is internally active. Note that, due to short-circuit edges (see Section
2.9), lengthy paths such as ( / , ..., x, ..., y) axe covered by a short-circuit edge [r', y)
along the external face.
Since the direction of travel used to enter r opposes the direction of travel used
to exit r', the biconnected component rooted at r' must be flipped before it is merged
with r. Figure 2.7 depicts the result of the flip and merge operation as well as the
embedding of the back edge
In general, a biconnected component Be must be merged with its parent bi-
connected component Bp such that the path from the root of Be to the next vertex
becomes part of the proper face formed when Walkdown embeds the back edge that
biconnects vertices in Bp with those in Be- For example, in Figure 2.7 we flipped the
biconnected component rooted at r' so that the path from r' through x to y would
become part of the proper face formed when r and r ' were merged and the back edge
(ï;', y) was embedded.
To decide whether a biconnected component should be flipped, the Walkdown
compares the direction of traversal used to enter a cut vertex r with the direction
38
of traversal used to exit r'. These pieces of information are pushed onto the stack
when r ' is pushed so that the stack has all information necessary to properly merge
biconnected components when the next back edge is embedded.
Further details pertaining to flipping biconnected components appears in Sec-
tion 2.10. Detailed pseudo-code for the Walkdown operation appears in Chapter 6 .
Detailed pseudo-code for the main algorithm loop, including the first inner loop that
invokes Walkup for each back edge and the second inner loop that invokes Walkdown
for each DFS tree child edge {v‘^, c) with pertinent vertex c, appears in Chapter 7.
(a) (b)
graph. Most importantly, we prove that if none of the conditions occur that result in
one of the four additional minor patterns, then the assumption of an unembedded edge
{v, vj) at the end of step v contradicts specific behaviors of the Walkdown. This proof
relies primarily on the order of decisions made in selecting a direction of traversal
from a pertinent child biconnected component root as well as the fact that a back
edge to a vertex w is embedded before exploring any of its externally active pertinent
child biconnected components.
The five non-planarity minor patterns identified in our proof of correctness are
depicted in Figure 2.9. They can be used as the basis of a Kuratowski subgraph
isolator. The edges in these patterns are typically representative of paths in the
input graph, many of which can be found by following paths in the depth first search
40
tree, paths around the external faces of biconnected components, or the blocking path
through B appearing in three of the patterns. Since ^ 3 3 is a subgraph of the patterns
in Figures 2.9(b-d), the portions of the input graph indicated by some of the edges in
those patterns must be omitted in order to isolate a ^^3 , 3 homeomorph. Furthermore,
the pattern in Figure 2.9(e) represents a minor in the input graph, so a few
additional tests must be performed to determine whether a K 5 or K 3 3 homeomorph
occurs. The details of these operations appear in Chapter 9.
At step V, all vertices not labeled with Arabic numerals are joined into a single
biconnected component by embedding the back edge (u, ?/). Successive steps of our
algorithm process the numbered vertices in descending order. For each such step
i> 0 , the biconnected component containing the tree edge (%,%4 - 1 ) must be merged
with the child biconnected component rooted by ($ 4- 1)'. Before the merge can
occur, the Walkdown must descend to the child biconnected component and choose a
direction of traversal that leads to a pertinent vertex, with preference for an internally
41
.w .
/
/
nected components containing y, r and w in order to embed the back edge (v,w).
Then, the Walkdown continues along from w to r. It examines the pertinent child
biconnected component rooted at r'. For the sake of contradiction, suppose the Walk-
down selected x to be the next vertex in the traversal since it is pertinent. The result
is that the biconnected component rooted at r ' would not be hipped before being
merged. After the Walkdown embeds the back edge (n,x), vertex x becomes a stop
ping vertex. The second Walkdown traversal would begin again at the root copy of
u and encounter y as a stopping vertex. Thus, the back edge (u, z) would not be
embedded. However, the Walkdown should not fail to embed this edge because the
graph in Figure 2.11 is planar. If the Walkdown operates as describe in Section 2.7,
then vertex d is selected instead of z because d is internally active.
Our planar embedding algorithm short-circuits an inactive vertex w by adding
a short circuit edge (u', a;) under the following conditions: 1 ) o' is the root of an
externally active biconnected component H, 2) w and z are in B, and 3) z does
43
not have an nnembedded back edge to n. The ghort-circnit edge appears along the
external face and forms a degree three proper face with the path (n', (n%to), tu,
(tu,3 ); z). A short-circuit edge may be a multiple edge with any other edge (tree
edge, back edge or short-circuit edge). However, there are fewer than n short-circuit
edges created during embedding because each short-circuit edge can be associated
with the inactive vertex it removes from the external face. Moreover, since a short-
circuit edge to z is only added under the special conditions listed above, both faces
divided by a short-circuit edge are at least degree three (in the hnal embedding).
Thus, the edge limit of Corollary 1.5 is maintained. Finally, the short-circuit edges
are specially marked, so they are easily deleted at any time. Details pertaining to our
method of short-circuiting appear in Chapters 3 and 4.
descnbed in Section 2.11 can recover the proper orientation of the descendants of w'.
Note that the Sipping operation implicitly inverts the orientation of all descendants
of w', not jnst the vertices in the biconnected component with root w'.
(a) (b)
The details of these processes are illustrated in Figures 2.12, 2.13, and 2.14.
In Figure 2.12, we have an overview of the embedding of back edge (1, 7). Figure
2 .1 2 (a) shows the state of the data structures during step 1 after embedding back
edges (1, 3) and (1, 4). Because vertex 4 is externally active, the hrst Walkdown
traversal returns and the second Walkdown traversal begins at 1' such that back edge
(1, 7) will be embedded around the right hand side. However, since vertex 8 is also
externally active, the biconnected component rooted at 2' must be flipped so that
vertex 8 remains on the external face when edge (1, 7) is embedded. The result is
shown in Figure 2.12(b).
An elaboration of Figure 2.12(a) appears in Figure 2.13. The rounded rectangles
are edge records, and the double lines connecting them are twin links. The circles
represent vertex structures, except that vertices 4 and 8 are represented by squares
to indicate their external activity. The single lines with black and white dots for
endpoints represent the links that bind the adjacency list and the vertex structure
into a circular doubly linked list.
46
5,7
At this point of the embedding, all vertices still have the same orientation. The
edge records in the adjacency list of any vertex can be traversed in counterclockwise
order by traversing the black dot links to exit the vertex structure and each edge
record in the adjacency list.
As stated previously, the first Walkdown traversal embeds edges (1,3) and (1,4),
then stops at vertex 4. The second Walkdown traversal restarts along the right side of
edge (1%2). Then, it descends to the pertinent child biconnected component rooted
at 2 '. Since vertex 7 is internally active, the hicbnnected component must be fiipped
before merging so that vertex 8 remains on the external face.
The results of the merge operation can be seen in Figure 2.14. The merge
operation begins by changing all edge records that contain 2 ' so that they contain 2 .
47
Then, we Sip the biconnected component by inverting the circnlar list union. Edge
record (2, 7) is joined with (2,1), and edge record (2, 8 ) is joined with vertex structure
2. Note that the links of the edge records formerly in 2^ (the root copy vertex) must
be inverted in this case so that the adjacency list of vertex 2 is consistent, i.e. a
traversal of the adjacency list of vertex 2 can be performed by consistently using the
same colored dot link to exit the vertex structure and each edge record.
8 8.5
Figure 2.14: D ata Structures A fter Flip and Back Edge Em bedding
The inverted circular list union has, however, implicitly inverted the orientations
of all of the descendants of vertex 2^. No other work was actually performed on the
links in these descendants, and the result is that the black dots links now result
in a clockwise ordering of their adjacency lists. Our algorithm accounts for this by
marking the tree edge (2, 5) as described in Section 2.11.
48
The huai change made in Figure 2.14 is the addition of the back edge (1, 7).
Since we exited vertex 1' using edge record (!', 2), the new edge record (!', 7) is added
between vertex structure 1' and edge record (1% 2). Since the Walkdown entered
vertex 7 using the edge record (7,2'), the new edge record (7,1') is added between
the vertex structure for 7 and the edge record for (7, 2 ). Thus, edge (1, 7) is on
the external face and has formed a new proper face in the embedding that includes
vertices 1, 2, and 7.
The detail in Figure 2.14 makes evident that our strategy of biconnected com
ponent hipping introduces a small wrinkle in how we traverse the external face of
biconnected components. A counterclockwise walk of the external face of the bicon
nected component now rooted at 1' begins with vertex 1' then vertices 4, 2, 8 , 6,
7 and back to V . In detail, we exit vertex 1' using a black dot link, then we exit
vertex 4 using its black dot link, then we exit vertex 2 using a black dot link. This is
because vertices 1', 4 and 2 have the same orientation. However, if we exit vertex 8
using the black dot link, this takes us back to vertex 2. This is because vertex 8 has
an opposing orientation as described above.
To solve this problem, we switch focus from the link used to exit a vertex w
and instead maintain the link used to enter its successor s (which is determined
specially for singleton biconnected components, as described in Section 2.3). Then,
our algorithms simply exit a vertex s from the opposing link. In the case of vertex 8
in Figure 2.14, we enter from the edge record (8, 2), which corresponds to the black
dot link for vertex 8, so we exit from the white dot link of vertex 8. Similarly, we
reach vertices 6 and 7 through black dot links, so we exit each through their respective
white dot links, which returns properly to vertex V.
(w% c) is marked when the biconnected component must be dipped. The root edge is
also transformed into edge (w, c) as part of the merge.
To represent the mark, we add a sign to each edge record that is initialized to +1.
It is changed to -1 to indicate an inversion. The orientation of a vertex w relative to
the root of the biconnected component is determined by the product of the signs of the
tree edges in the DFS tree path from w up to the root of the biconnected component.
Separate biconnected components are oriented independently as described in Section
2.12. If the product equals -1, then w must be inverted by swapping the links in
its vertex structure and in each edge record of its adjacency list. Thus, a consistent
orientation for all vertices in a biconnected component can be easily obtained by
pre-order traversal of the portion of the depth first search tree in the biconnected
component. The detailed pseudo-code for this operation appears in Chapter 8.
This chapter describes the logical components required to represent the input graph
and the embedding. This chapter also describes the preprocessing of the input graph
and the initialization performed on the embedding structures. The last section pro
vides definitions that identify fundamental states of the embedding.
3.1 N otation
For the purposes of the data structures and algorithms in this dissertation,
arrays are assumed to be indexed beginning with 0. The value nil is any invalid array
index, such as -1. The number of elements of a list L is denoted \L\.
In the pseudo-code of this dissertation, the inputs to a procedure are indicated
by the term in and the outputs are indicated by the term out. The term this indicates
a special implicit input parameter that points to a data structure over which the pro
cedure predominantly operates. In common object-oriented parlance, the procedure
is a member of a class, and the data structure pointed to by this is an instance of the
class. The use of this convention greatly increases the readability of the pseudo-code
since this typically points to the embedding data structure, which is denoted G.
by making the label ï; of vertex n synonymous with the depth hrst index of vertex
n. The hnal preprocessing step on the input graph is to perform the least ancestor
and lowpoint calculations. All of these preprocessing calculations are required by all
currently known linear time planarity algorithms [7, 30, 52].
sort the vertices based on their lowpoint values. Since the lowpoint of a vertex v is
equal to the DFI of v or one of its DFS ancestors, it suffices to create an array B of
n buckets, one for each possible DFI value. A given bucket B[i] should store a list of
the vertices having a lowpoint of i. Once the bucket sort is finished, we iterate the
buckets in ascending order, appending each vertex c to the separatedDFSChildList of
its DFS parent w. The separatedDFSChildList is represented with a doubly linked
list so that it can support constant time deletion.
The repInParentList member of a vertex c is set equal to the node that rep-
resents c in the separatedDFSChildList of its DFS parent w. When a biconnected
component with root edge («/, c) is merged with its parent biconnected component by
joining tu' with its parent copy tu, the DPS child c is removed from the separatedDF
SChildList of tu since tu and c are no longer in separate biconnected components.
This can be done in constant time using the repInParentList in c and the fact that
the separatedDFSChildList of tu is doubly linked.
Since upper bounds are known for the number of edges needed to establish the
planarity or non-planarity of an input graph, an implementation is able to allocate
54
space for all edge records at once. The initial value for most of the variables in an edge
record (see Table 3.2) should be until edges are added to the embedding by the low-
level procedures EmbedTreeEdge, EmbedBackEdge, and EmbedShortCircuitEdge,
which are dehned in Chapter 4. The exceptions are that the type of each edge record
should have all bit hags initially clear, the visited member should be 0 , and the sign
should be 1.
Based on Corollary 1.5, the array jE is allocated enough edge records to accom-
modate either the embedding of any planar graph with n vertices or the identification
of a Kuratowski subgraph in any non-planar graph with n vertices (no additional edge
records are needed for short-circuit edges). The first n vertex structures in array y
55
are for parent copy vertices, which are meant to represent the original vertices of the
input graph. The latter n vertex structures in array V are for root copy vertices.
Given a cut vertex w in every path 6 om a DFS child c to some vertex distinct from
w and not a descendant of c (see Theorem 1.3), the embedding structure uses vertex
structure c + n m V to store a root copy that represents w in the biconnected
component containing c. The choice of location c + n avoids allocation collisions, as
shown by Lemma 3.1.
The BicompLists and DFSChildLists members are simple memory areas used
to store the nodes of every pertinentBicompList and separatedDFSChildList, re-
spectively. The space is sufficient because each pertinentBicompList contains root
copy vertices that differ from those in every other pertinentBicompList and no sepa-
ratedDFSChildList ever contains vertices that are in another separatedDFSChildList.
The stack 5, initially empty, contains enough computer words to accommodate
pushing one pair of computer words per edge record in F . Elementary algorithms such
as depth first search on the input graph can be written to push a vertex plus a pointer
56
to Em edge record leading from that vertex to a neighbor. The stack 5' is also nsed as
temporary space by the procedures MergeBicomps and Walkdown in Chapter 6 , the
procedure Orient Vertices in Chapter 8 and procedures of the Kuratowski subgraph
isolator in Chapter 9.
Finally, note that since edge records are stored in array F' while vertex structures
are stored in V, the implementation and use of link[0] and link[l] in edge records
requires further consideration because we insert vertex structures into doubly linked
circular lists along with the edge records in their adjacency lists. In every case except
link[0] and link[l] in edge records, it is cleEur whether a structure or record vEuriable
refers to E or V. For example, the link[0] and link[l] members of a vertex structure
always refer to E, so these variables can be implemented as integers that hold array
indices. However, link[0] and link[l] in an edge record could indicate another edge
record in E, or the inserted vertex structure from V.
One simple solution is to create extra edge records in E to store the linkfO]
and link[l] members of vertex structures, and to use the type and neighbor fields of
those edge records to bind them to vertex structures in V. More elegant solutions
are possible depending on the sophistication of the implementation language. For
example, in object oriented languages, the edge records and vertex structures can
inherit from a common base class containing the type as well as link[0] and link[l],
implemented as physical memory pointers. Upon traversing a link to arrive at a new
edge record or vertex structure x, the type would be used to determine whether x is
in E or V. Though other solutions can be created based on minor modifications to
the embedding structure presented in this section, the above methods demonstrate
that the edge record links can be implemented in constant space and traversed in
constant time. In the pseudo-code of this dissertation, the m atter is treated as an
implementation detail.
Procedure: Initialize
in: Graph G with at most An edges
put: Embedding Structure G
9) Set m in G equal to 0
10) Initialize edge records in array E oî G
15) return G
P ro o f. The input graph is assumed to have G(m) edges. Lines 1 to 3 call upon
^11-known algorithms [53] that achieve linear time performance. Line 4 is typically
constant time, but linear time in languages that insist on clearing the bits of allocated
memory space with a Simple loop. Lines 5, 6 , 9 and 14 are simple constant time
58
assignments, and Lines 7, 8 , 10, 11 and 12 require simple linear time loops. Line 13
achieves linear time by the method described in Section 3.3. Line 15 is constant time
since a pointer to the initialized embedding structure is returned. □
D eB nition 3.2 The odyucency list o/ o uerter structure tu is de/lned to 6 e the list
o/ zero or more edye records thot con 5e obtained by iterotiny the successiue lin h ^
members starting tuith the uertez structure tu and ending tuhen the iteration returns
to tu, tuhere p can be either zero or one. The neighbor member o/ each edge record
indicates a t;ertez structure in use by the embedding structure G.
D eB nition 3.3 v4 tree edge or bach edge bettueen ttuo t/ertez structures z and y is
represented by ttuo edge records e% and e^ as /ollotus."
1. One unit o/ the ualue o /m in the embedding structure represents the edge cor-
responding to the edge records eg and Cy.
2%e fwinZ,:»* o/e^ indicotea e^, omf (Ae WnZ,mA o /e , *nd:co(ea e^-
6. The value of visited and sign are not relevant to edge representation, so they are
Mof offered toAem o po*r 0 / edge recorda ia «aed fo repreaenf on edge, ond fAeg
can be changed as needed for other purposes.
D eB nition 3.4 v4 aAorf-circoif edge 6 efioeen ftoo oerfez afmcforea % ond g *a repre-
aenfed erocffg oa o 6 ocA edge ^aee D ^nifion earcepf fAof fAe fgpe memAera o/fAe
edge records are set to indicate a short-circuit edge. A short-circuit edge (x, y) cannot
eadaf ercepf wAen if /drma o degree fAree groper /oce in wAicA fAe fAird oerfer i ia AofA
inactive and has linkfO] and linkflj members that indicate edges incident to x and y.
The initial state of the embedding G prior to the embedding of any edges re
sults from the execution of procedure Initialize given in Section 3.5. This state is
characterized by Definition 3.5.
D efinition 3.5 Given an input graph G, the initial state of the embedding structure
G is as follows:
.g. TAe oofne o /m ia egnof fo zero ^no edgea Aooe Aeen emAedded^.
3. The value of v is n (the main back edge embedding loop has not begun).
TAe memAera .B, y , BicompTiafa, DF 6 'CAifdTiafa ond 6 ^Aooe fAe aizea iridicofed
by Table 3.3.
6. EocA ejge record 0 / f/ie orrmy ^ /toa f/»e memAera denned Ay TbAfe ;9.;8. T%e
nety/iAor; ZmA/iO/, fmA/iy ond fudnLinA memAera ore egooJ (0 mZ, (Zte (ype ond
waited memAera ore eguoZ to zero, ond tAe aign ia egnoZ to one.
7. EocA oertez atmctnre in tAe orroy y Aoa tAe memAera de/ined Ay TIoAZe TAe
porent copy oertez atmctnrea occnpy tAe /Zrat n Zocotiona 0 / y , ond tAe root copy
oertez atmctnrea occupy tAe aecond n Zocotiona 0 / y .
8. For each vertex structure, the adjacentTo and visited members are equal to n
^one yreoter tAon tAe indez 0 / tAe AiyAeat numAered uertez in G /
P. fb r eocA uertez atructure, tAe ZinA/Ü/ ond ZinA/t/ memAera indicote tAe uertez
atructure aucA tAot eocA uertez Aoa degree zero.
fb r eocA uertez atructure, tAe type memAer ia eguoZ to zero /o r o porent copy or
one for a root copy.
12. For each parent copy vertex structure, the members DFSParent, leastAncestor
and lowpoint are based on the corresponding values for vertices in G, which are
defined in Table S. 1 and calculated by preprocessing G in the manner described
in Section 3.2. These three members are not used in root copies.
j J. fb r eocA porent copy uertez atructuTie, tAe repTnforentT/iat indicotea tAe node in
tAe porent'a aqaorotedDFS'CAiZdjCiat tAot contoina tAe indez 0 / tAe uertez.
D eB nition 3.6 Zmmediofefy q/%er off DF 6 ' free ed^es o/ (he mpwf
G ond prior fo fhe^rsf iferofion o/fhe mom BocA ed^e emteddmp foop, fAe tree edge
state of the embedding structure G is as in the initial state of Definition 3.5 with two
exceptions. First, the value of m becomes n — C where n is the number of vertices in
G ond G is fAe number q/ connecfed componenfs in G. 6 "econd, eocA free edge (p,
toifA DFS' porenf p ond D F^ cAifd c is embedded (*n occordonce toifA De/inifion ^..9^
incidenf fo fAe roof copp p^ ond fAe porenf copp o/ c.
In the main loop starting on Line 5 of the high-level pseudo-code given in Figure
2.1, the vertices are processed in descending order based on depth first index by
embedding the back edges from each vertex v to its DFS descendants (either until all
have been embedded or until sufficient conditions are found to permit the conclusion
that G is non-planar). As each edge is embedded, the algorithm maintains Properties
3.1, 3.2, 3.3, 3.4, 3.5, 3.6 and 3.7, which lead to the defined state given in Definition
3.7 at the beginning of each step v of the main back edge embedding loop.
P ro p e rty 3.2 Active Vertices are Maintained on External Face: Foerp mfemaffp
and ezfemaffp acffue parenf copp oerfez appears on fAe erfemaf /ace o/fAe bfconnecfed
62
component confoinmg parenf copy rerfez (roof copiea ore oitooya on fAe ezfemof
/oce/
P ro p e rty 3.3 External Face EMges are Maintained by External Face Vertices: Eoery
porenf copy ond roof copy nerfez afmcfnre to on fAe ezfemol /oce 0 / o biconnecfed
cotnponenf B Aoa ifa AnA/iO/ ond AnA/f/ memAera aef fo indicofe fAe edye(a^ fAof /oin
w on the external face. I f B contains only one edge, then both links indicate the same
edge. OfAerwiae, fAe AnAa indicofe diafincf edgea.
P ro p e rty 3.4 Clockwise Orientation of Vertex Adjacency Lists: For eocA nerfez
afrwcftfre to in on emAedding, conaider fAe neoreaf roof copy / in fAe emAedding, ÿ
one exists, which could be obtained by traversing zero or more distinct embedded free
edgea. JDef porify Ae f? ttnfeaa fAere eziafa atfcA on r ' ond fAe ntfmAer 0 / free edgea
traversed to obtain r' that have a sign of -1 is odd, in which case let parity be 1. A
clockwise list of the neighbors of w is obtained by traversing the linkfparity] members
0 / fAe odyocency Aaf o/to. Aofe fAof /o r o tioof copy fAe porify ia 0 aince no free
edges are traversed to reach it.
P ro p e rty 3.5 Unnecessary Root Copies are Eliminated: For every tree edge (p, c) for
which a back edge has been embedded between an ancestor of p and c or a descendant
o/c, fAe roof copy pf Aoa Aeen eAminofed ond oA o/ifa incidepf edgea Aooe Aeen mode
incident to the parent copy of p.
P ro p e rty 3.6 Dynamic External Activity: For ony roof copy pf creofed in D ^nifion
3.6, if and only if p'^ has been eliminated (due to maintaining Property 3.5), then the
indicator of c no longer appears in the separatedDFSChildList of p. Thus, the external
ocfitnfy 0 / o porenf copy nerfez afrttcfore p ia only dependenf t ^ n ifa ZeoafAnceafor
memAer ond fAe Zottpoinf memAera 0 / fAoae DFS" cAiZdren toAoae porenf copy verfez
afrttcfnrea ore nof in fAe aome Aiconnecfed componenf oa p.
P ro p e rty 3.7 Edge Count: 7%e t/oZtte 0 / m in fAe emAedding afmcftfre ia egttoZ fo
fAe aom o/fAe ntimAer o/free edgea, AocA edgea ond aAorf-circnif edgea (^i/onyj in fAe
emAedding.
63
D eB nition 3.7 T%e emAaWmp ta in fAe vertex invariant state ÿ if con/brma fo fAe
free ej^e afafe c / De^nifion ercepf oa /oZZoToa;
j(. 7%e oofne 0 / u in fAe embedJin^y afmcfnre ia egnof fo fAe cnrrenf afep t;ofne
(which indicates the vertex v whose back edges to descendants are to be embedded
in fAe cnrrenf ifemfion 0 / fAe moin foop 6 oj%y).
&. TAe niaifed member 0 / eocA oerfer afrocfore ia greofer fAon 1; ("wAicA ia fopicoffy
eguioofenf fo beinp eguof fo n /
3. The embedding contains short-circuit edges and all back edges from G for which
bofA endpoinfa ore i;erficea wifA o DF7 greofer fAon or egnof fo r 4 - 1 .
P ro p e rty 3.8 Dynamic Pertinence: Fbr ong bocA edge (n, d) in fAe inpuf gropA G
yrom nerfez n fo o deacendonf d, fef denofe o roof copg 0 / o in fAe biconnecfed
component containing the DFS child c of v that is an ancestor of w.
djffAe bocA edge (n, d) Aoa nof been embedded, fAen fAe /of/owing ore fme;
;0. Tbr ong aeporofion onceafor w 0 / d in G wifA DF9 cAifd o fAof ia dnceafor fo or
egnof fo d, on indicofor 0 / fAe roof copg w" oppeora in fAe perfinenfBicompTiaf
64
o /t u . T%e in A c o f o r a o /r o o t a o c ftu e M c o n n e c W c o m p o n e n fa o p p ea r
^ (Ac 6 oct edge (1 ;, d) /toa been embedded, (/ten (/te /o//ounnp ore (rue;
&. JFbr euerp oncea(or w 0 / d :n G un(/t DF^S" c/ttZd o eguo/ (o or onoea(or (0 d ond
ud(/t u o DF5" oncea(or 0 / w, uerfez w ta no( o aeporo(ton oncea(or 0 / d ond (Ae
per(tnen(Btcomplta( 0 / w doea no( con(otn on tndtco(or 0 / (/te roo( copp uer(er
a(ruc(ure w" (^wbtc/t ta no Zonper tn uae wt(/ttn G /
1. The visited members of vertex structures are either equal to or greater than v.
S. The embedding has Property 3.8 (with the nodes of every pertinentBicompList
being stored in BicompLists).
4 . The embedding may contain back edges and short-circuit edges between v and its
deacendon(a, wt(/t Froper(tea ^.7 ond motn(otned.
This chapter describes a plethora of simple, low-level procedures called by the plsr
narity testing and embedding algorithms described in Chapters 5, 6, 7 and 8. A few
of the procedures are also used by the Kuratowski subgraph isolator in Chapter 9.
Procedure: EmbedTreeEdge
this: Embedding Structure G
in: DFS Parent vertex p
in: DFS Child vertex c
out: Embedding Structure G containing a root copy p'
of vertex p and edge records representing the tree edge
between pi and c
(8 ) Increment m
66
P ro o f. Since p' has the proper type due to Dehnition 3.5, Lines 1 and 2 of Em-
bedTreeEidge complete the allocation of p* as a root copy according to DeGnition 3.1.
Lines 3 to 8 of EmbedTreeEdge complete the representation of a DFS tree edge ac
cording to Definition 3.3. Precondition 4.1 completes the proof. □
Procedure: EmbedBackEdge
this: Embedding Structure G
in: Root copy 1/ of vertex being processed
in: Indicator (0 or 1) of the edge record used to exit u'
in: Descendant vertex w
in: Indicator Wm (0 or 1) of the edge record used to enter w
out: Embedding Structure G modified to include the back edge iy',w)
P re c o n d itio n 4.4 With respect to embedding a back edge (v, w), the Walkdown pro
cedure described in Chapter 6 is operating on a biconnected component with root v^,
where c is an ancestor of w. Starting within an embedding in the embedding invariant
state (Definition 3.8), the Walkdown performs zero or more biconnected component
merge operations such that, after adding (v^, w), the vertex structures and w are
(o k in (he eome 6 iconnec(ed component. The IFu/Adown inuotea JFmbed-
BackEdge with and such that if the edge records for w) are indicated by
Kn&^^J 0 / n" ond Kn&^imy o/w , (hen (u",w) ia embedded oknp (he ez(em(d /dee 0 /
(he 6 *connec(ed componen( roofed u'' ond (he reanZfinp emheddtnp ia refnmed (0 (he
em6 eddin(/ inuorionf a(o(e (D ^nifion
Procedure: EmbedShortCircuitEdge
this; Embedding Structure G
in: Root copy v' of vertex being processed
in: Indicator (0 or 1) of the edge record used to exit v'
in: Descendant vertex w
in: Indicator (0 or 1) of the edge record used to enter w
out: Embedding Structure G modified to include the short-circuit edge (v', w)
Procedure: VertexActiveStatus
this: Embeddiug Structure G
in: Vertex w, a descendant of u
out: Indication that to is externally active, internally active or inactive
Procedure: GetNextVertexOuEbdenialFace
this: Embedding Structure G
in: A vertex w
in: An indicator (0 or 1 ) of the link in w that refers to the edge
record used to enter w (a subsequent call exits via the opposing link)
out: The successor a of w and the indicator of the edge record
used to enter a
(7) if link[0] and link[l] in vertex s indicate the same edge record
(8) Sifi 4 Win
(9) else if link[0] in vertex s is equal to e,
(10) S i n 4—0
( 1 1 ) else aim -t- 1
Procedure: InvertVertex
this: Embedding Structure G
in: A vertex structure w
out: Embedding Structure G modiBed by swapping link[0]
and link[l] in vertex structure w structure and each edge record
in its adjacency list
L em m a 4.16 T%e Ihuert Verier procedure runs in 0(d) (ime, where d is (he decree
o/ (he uer(er s(ruc(ure w passed os inpu(.
j. The uer(e% s(7"uc(une w is o ponBu( copy, ond (he uer(ez; s(ruc(ure w' is o ruo(
copy o/w .
75
Procedure: MergeVertex
this: Embedding Structure G
in: A vertex w
in: An indicator Win (0 or 1) of the link in w that refers to
the edge record used to enter w
in: A root copy vertex w'
out: Embedding Structure G modified by joining the adjacency list of w'
into that of w such that the link[win] edge record in w' becomes the
new link[win] edge record in w.
2. The adjacency lists of w, w' and the neighbors of w' conform to Definition 3.2.
3. The edge records in the adjacency lists of w and w' are each part of distinct
edÿes wtfA De/iuAion or
f. 7n (Ac edges incident to w% tAe edge records contoining u / in tAe neigAAor mem
ber ore cAonged to contoin w os tAe neigAAor, preserving con/brmonce to
nition in tAe od;ocencg iists o/neigAAors o/w ' q/ter w' is etiminoted.
TAe ocÿoceneg fist o /w ' is inserted ^witAout cAonging tAe edge order/ into tAe
ofÿocencg fist o /w sucA tAot ÜnA/winj ifi w indicotes tAe some edge record os
76
îinkfwin] in w'.
Lemma 4.19 T/te Metpe Verger procejure rama m G(d) t;me, to/tene j ia </te jeynee
0 / ^ e root copy oertez to' 6 emy meryej tottA ita porettt copy to.
Procedure: JoinBicomps
this; Embedding Structure G
out: Embedding Structure G modified by merging all root
copy vertices with their parent copies without changing
the orientations of any vertices
Lemma 4.20 Giuen an em6 eddmy G m the oriented emheddiny inuoriont state ^ e / -
inition the JoinBicomps procedure meryes the adjacency fists 0 / aff root copies
0 / each uertez to into the parent copy o/to, preseroiny Property J..^.
77
P ro o f. The loop performs n iterations. The loop body consists of constant time
operations except for the invocation of MergeVertex, which according to Lemma 4.19
is 0(d) where d is the degree of a root copy w'. Since each edge incident to a root
copy is representative of a unique edge in the input graph, the total work performed
by all MergeVertex invocations is 0{n). □
78
5. W alkup
The procedure Waikup de&ned in Figure 5.1 is invoked by the procedure PlanarityTest
in Chapter 7 to support the De&nitions 2.3 and 2.4 appearing in Chapter 2. Given a
descendant w of the current vertex v being processed, the Waikup marks w as being
directly adjacent to the current vertex v. Then, the Waikup stores information in
the embedding structure G about the pertinent biconnected components that must be
merged in order to embed a back edge (n, w). SpeciGcally, for each separation ancestor
z between w and n in G, the Waikup ensures that the root copy , where c is a DFS
child of z and equal to or an ancestor of w, appears in the pertinentBicompList of
vertex z.
The correctness of procedure Waikup is implied in Lemma 5.2 by virtue of the
collective operation of all invocations of Waikup indicated in Precondition 5.1. The
run-time analysis for procedure Waikup appears in Lemma 5.3.
Procedure: Waikup
this: Embedding Structure (7
in: A vertex tu (a descendant of the current vertex u being processed)
out: Embedding Structure G with the adjacentTo member of tu
set to u and the pertinentBicompList of each separation ancestor
between tu and t; modiBed to contain the root copy ancestor of tu
2) (a;, 4 - (tu, 1)
3) (%/, (w, 0 )
4) while X ^ V
5) if the visited member of a; or y is equal to v
6 ) break the loop
)
1 1 ify^ÿ^mZ
12) Set z equal to the parentLink of z'
13) ÏÎ z ^ v
14) c4 ^
—
19) (y, 9)
in the tree edge state given by Definition 3.6 if w = n —1). Moreover, root copies are
always on the extemEÜ face because edges are always embedded from a root copy to its
descendants. Therefore, the Waikup is guaranteed to start from a vertex (tu or z E S)
on the external face of a biconnected component and the Waikup is guaranteed
to find the root vertex of B due to the correctness of GetNextVertexOnExternalFace
(Lemma 4.13).
If a root copy ^ is encountered by z or y, and its visited member is not equal to
V, then the parent copy z is obtained using the parentLink (according to Definition
3.1); which is set by the procedure EmbedTreeEdge as established in Lemma 4.2.
Then, if z is not v, the root copy z' is stored in the pertinentBicompList of z in Lines
15 to 17. Finally, Lines 18 and 19 set the traversal contexts of % and y so the process
will repeat starting with z, unless z is n in which case the Waikup loop terminates.
Applying these facts inductively, the Waikup reaches each separation ancestor
in S in increasing ancestral distance from w and stores in the separation ancestor’s
pertinentBicompList the appropriate root vertex of the child biconnected component
whose root edge is on the DFS tree path from w to v.
The first invocation of Waikup does not encounter any vertex structures marked
visited (i.e. with visited member equal to v). Subsequent invocations of Waikup op
erate in the same manner described above except if the loop encounters a vertex
structure with a visited member already equal to v. Since G began in the vertex in
variant state (Definition 3.7), the visited member setting must have occurred during
a prior Waikup invocation resulting from Precondition 5.1. By the strong form of
induction, the current Waikup invocation can terminate its operation since the re-
maining separation ancestors to be recorded by the current Waikup invocation have
already been recorded by one or more prior invocations of Walkup resulting firom
Precondition 5.1. □
L em m a 5.3 7%e MWtup procedure runs in 0(1) omortized time per nerter o/ tAe
input propA.
6. W alkdown
This chapter covers the procedures that merge biconnected components and embed
back edges within the embedding structure. Section 6 .1 discusses a procedure that
merges a collection of biconnected components that have been selected by the Walk-
down procedure, which is discussed in Section 6.2. At the end of Section 6.2, the
reasons are explained why the use of short-circuit edges pose no additional memory
requirements on the embedding structure.
Procedure: MergeBicomps
this: Embedding Structure G
out: Embedding Structure G with merged biconnected components
corresponding to stack entries made by the Walkdown procedure.
the link[win] edge record in w and the link[w'„J edge record in w' become consecutive
in the adjacency list of w, and the link[l xor edge record from w' should be the
new link[wj„] edge record in w.
The correctness of MergeBicomps is established by Lemma 6.2. The run-time
analysis for MergeBicomps appears in Lemma 6.3.
Lemma 6.2 Giuen on inuocotion aufiject to Precondition d.l, tAe procedure Merye-
Picompa Aoa tAe /oZlowinp ^ e c ta /o r eocA poir o/ Jg-tnplea (w% w ^ J ond (w, Wj^,)
oppeorinp in aeguence on tAe top o/ atocA S;
1. tAe tree edge incident to w' ia giuen tAe aign -1 i/Wjn ond w(^ ore eguof.
84
(/te DF/ÿ c/tiW c m (/te roo( ejye (tu', c) ta rentouej yrom (/te aepom(edDF-
,^C/tt/dZ)ta( o/tu.
(/te (Mÿocertcy /ta( o/ (/te roo( copy tu' ta tnaer(ed (^tut(/tott( cAanytny (/te ejye
order) into the adjacency list of its parent copy w such that the link[l xor w '^J
edye record tn tu' becomea (/te netu Krtt/wtm/ edye record tn tu.
P ro o f. By trivial induction, the loop can process a stack of any size. Consider the
behavior of the loop body for each pair (tu', tu ^ J and (tu, tu^m) popped from the
stack. Clearly the first requirement is met by Lines 4 and 7. Lines 8 and 9 meet
the second and third requirements. Due to the invocation of InvertVertex when tUj„
and tu'„j are equal, link[tUj„] in tu' is guaranteed to indicate the edge record that was
indicated by link[l xor tu^J in tu' when Line 2 was executed. Thus, by Lemma 4.18,
the invocation of MergeVertex meets the fourth requirement. Finally, according to
Lemma 4.18, MergeVertex eliminates the root copy tu', meeting the fifth requirement.
□
L em m a 6.3 The procedure MergeBicomps runs in 0(1) amortized time per vertex of
the input graph.
P ro o f. Line 1 initiates a simple loop over the loop body in Lines 2 to 10, iterating once
per root copy vertex tu' on the stack. All operations in the loop body are constant
time except the invocations of InvertVertex and MergeVertex, which according to
Lemmas 4.16 and 4.19 operate in 0{d) time where d is the degree of tu'. However,
MergeBicomps is only invoked to process edges incident to root copy vertices. After
MergeVertex, all of the edges incident to the root copy become incident to the parent
copy, so they are never processed again by MergeBicomps. Thus, the loop achieves
0(1) amortized time due to the edge limit given by Corollary 1.5. □
86
Procedure: Walkdown
this: Embedding Structure G
in: A root copy i/ of the current vertex (with DFS child c)
out: Embedding Structure G containing back edges to descendants of n',
merged biconnected components and short-circuit edges
9) if [pertinentBicompList of w\ > 0
10) Push (w.Win) onto the stack 5'
11) w' -h- value of the first element of pertinentBicompList of w
12) (a;,Tim) ^GetNextVertexOnExtemEilFace(w', 1)
13) (y, 2/in) <—GetNextVertexOnExtemalFace(w% 0)
)
2 1 if w equals x, w ^ f - 0
)
2 2 else w ^ f - 1
23) Push (w% w[,g^) onto the stack 5
29) if the stack S' is non-empty or to equals %/, break the ‘for’ loop
87
components to which the Walkdown descended in traversing external face paths from
n' to w. These root copies, along with other information identi^dng the specihc paths
traversed, were pushed onto 5^ (Lines 9 and 23) during prior iterations. By Lemma
6.2, the procedure MergeBicomps joins the root copies on the stack ,9 with their
corresponding parent copies. The resulting connected component contains the con
catenation of the external face paths traversed, which form a cycle when combined
with the new back edge (u% tu) form a cycle. Thus, once the new back edge is embed-
ded (Line 7), it appears in a single biconnected component. Therefore, the Walkdown
does not change G in a way that aSects Property 3.1. O
P ro o f. A short-circuit edge can remove a vertex from the external face, but only if it
is inactive according to the test in Line 24. Moreover, both endpoints of a short-circuit
edge remain on the external face of a single biconnected component. As well, both
endpoints of a back edge and every vertex into which a root copy is merged remain
on the external face. Thus, since there is an edge directly connecting each root copy
/ with the merge point or back edge endpoint in the same biconnected component as
r', and since the new back edge is embedded such that it forms a proper face with the
aforementioned edges, the merging of biconnected components and the embedding of
back edges dp not remove any vertices from the external face. O
P ro o f. Follows from Lemmas 4.5 and 4.8 and the proof of Lemma 6.5. D
88
such that the new edge appears on the external face in place of the path traversed by
the Walkdown to travel from o' to w. A short-circuit edge embedding performs the
same adjacency list modihcations. Thus, embedding an edge does not aSect vertex
orientation of its endpoints.
Other than o', root copies are only aSected by being destroyed. A root copy o'
is only aSected by edge addition. Thus, clockwise vertex orientation is preserved for
root copies.
For parent copies, the only other Walkdown operation that modifies the adja-
cency lists is the merging of biconnected components. According to Lemma 6 .2 , the
adjacency list of r after being merged with a root copy r' is correctly formed and has
the same orientation. Therefore, we can consider whether Property 3.4 is preserved
by the procedure MergeBicomps. The property is true by assumption prior to an
invocation of MergeBicomps. Inductively, assume the embedding has Property 3.4
and the embedding contains a connected component R whose vertex of least DPI is
represented by a root copy r'. Let r denote the parent copy of r ' and let g' denote
the root of the biconnected component containing r. Let be 0 or 1 to indicate the
direction of the Walkdown's entry into r. Let be 0 or 1 to Indicate the direction
of the Walkdown’s exit from r'.
Case 1: Let the parity of r be 0 such that r and g' have the same orientation,
and let diSer from rou*. Since r(n diSiers from , the orientations of r and r ' are
equal. Thus, r ' and have the same orientation, so Property 3.4 is preserved if the
orientations of descendants of r ' in fZ are not changed. Since the parity of r is 0 and
the sign of the child tree edge incident to r ' is not changed &om the initial value of
1, Property 3.4 is preserved.
89
Case 2 : Let the parity of r be 0 such that r and g/ have the same orientation,
and let be equal to rou*. Since equals Tout, the orientations of r and / are
Opposed. Thus, r ' and g/ have opposite orientations, so Property 3.4 is preserved if
the orientations of descendants of K in A are changed. Since the parity of r is 0
and the sign of the child tree edge incident to r ' is changed to -1 after r ' is inverted.
Property 3.4 is preserved.
Case 3: Let the parity of r be 1 such that r and g' have opposite orientations,
and let diSer from rou*. Since diSers from rgu*, the orientations of r and r' are
equal. Thus, / and g' have opposite orientations, so Property 3.4 is preserved if the
orientations of descendants of T-' in A are changed. Since the parity of r is 1 and the
sign of the child tree edge incident to r' is not changed from the initial value of 1 ,
Property 3.4 is preserved.
Case 4: Let the parity of r be 1 such that r and g/ have opposite orientations, and
let Tin equal rout- Since equals Tout, the orientations of r and r' are opposed. Thus,
r' and q' have the same orientation, so Property 3.4 is preserved if the orientations
of descendants of r' in R are not changed. Since the parity of r is 1 and the sign of
the child tree edge incident to r' is changed to -1 after r' is inverted, Property 3.4 is
preserved. □
P ro o f. A root copy is only unnecessary if a back edge has been embedded between
ah ancestor of p and a vertex in the DFS subtree rooted c. According to the proof
of Lemma 6.4, the embedding of such a back edge is immediately preceded by the
merging of with p in the procedure MergeBicomps. According to Lemma 6 .2 , p^= is
eliminated. □
P ro o f. According to Lemmas 4.5 and 4.8, embedding a new edge implies an increment
of the value of m in (7 due to the definition of edge representation (Definition 3.3).
□
P ro o f. Follows directly from the proofs of Lemmas 6.4, 6 .6 , 6.5, 6.7, 6 .8 , 6.9, 6.10
and 6.11. n
For the Walkdown invocation on a root edge {v', c), the traversal loop invariants
given above are clearly useful when the Walkdown is able to embed all back edges
from V to descendants of c. Thus, we focus on Conditions 1 and 2 , which describe the
conditions under which the Walkdown fails to embed one or more back edges from v
to descendants of c.
C o nd itio n 1. Given an embedding structure G and a root copy v' in G with DFS
child c, the Walkdown returns with a non-empty stack (which implies that one or
more edpea ^rom u to descendants o/ c haue not been emkeddedj.
C o nd itio n 2 . Given an embedding structure G and a root copy v' in G with DFS
child c, the Walkdown returns with an empty stack prior to embedding all back edges
^ m u to descendants o/ c.
If Condition 1 occurs, then the input graph G contains as a minor the graph
appearing in Figure 6.3(a). If Condition 2 occurs, then the input graph G contains as
a minor the graph in Figure 6.3(b). It is easy to prove that the graph minor in Figure
6.3(a) indicates the non-planarity of the input graph, as shown in Lemma 6.13.
(a) (b)
component with root r can simply be ignored, and vertices along the external face
other than r, x, w, and y can be edge contracted into x and y (such that the cycle
(r, ... ; z, w, r) is maintained). The edge (u, r) is representative of
the depth Erst search tree path between n and r.
The non-empty stack indicates that the Walkdown traversal loop has descended
to a pertinent child biconnected component, but the loop has encountered a stopping
vertex prior to Ending a pertinent vertex w. According to Lines 14-20, selecting a
path to a stopping vertex can only occur if both external face paths lead from the
child biconnected component root to stopping vertices z and y. Thus, both z and
y in Figure 6.3(a) must be stopping vertices. Since the input graph G contains as
a minor the graph in Figure 6.3(a), which in turn is a the input graph is not
planar. □
sufficient additional structure exists to establish the non-planarity of the input graph.
A w candidate is a pertinent vertex on the lower path between x and y along the
bounding cycle of the biconnected component with root edge (u', c) (see, for example,
the biconnected component denoted B in Figure 6.3(b)). Lemma 6.14 proves that if
the Walkdown fails to embed a back edge due to Condition 2, the stopping vertices a;
and y must be distinct, and Lemma 6.15 proves that if the Walkdown fails to embed
a back edge to a w candidate (or one of its descendants), then the tu candidate must
be on the external face of B.
P ro o f. In the first step of the main algorithm (see Figure 2.1), only tree edges are
embedded, so all vertices are on the external faces of the biconnected components
containing them. In subsequent steps, all pertinent vertices are on the external face
because they were externally active in the prior step. Moreover, a vertex w can only
95
To simplify future results, Lemma 6.16 and Lemma 6.17 show that pertinent
child biconnected components of a w candidate can be edge contracted into w without
aEecting conclusions about the correctness of the algorithm.
P ro o f. The graph minor appearing in Figure 6.4 is the same as the Walkdown halting
minor in Figure 6.3(b) except that z and its incident edges have not been contracted
into w. The edge (w,z) is the root edge of the pertinent externally active child
biconnected component, and all DFS descendants of z have been edge contracted
into z. Since the input graph contains as a minor the graph in Figure 6.4, which
contains a it's,3 , the input graph is not planar. □
Figure 6.4 is the first graph minor extension of Figure 6.3(b) with enough ad
ditional structure to establish the non-planarity of the input graph. In this case,
one can think of the unembedded back edge (n, w) in Figure 6.3(b) as representing a
subgraph that includes z, so embedding {v, w) inside of the biconnected component
B could not be accomplished without placing an externally active vertex inside the
bounding cycle of B. All future cases exploit a second type of additional structure
to establish the non-planarity of Figure 6.3(b). The additional structure is a path
through B that would result in an edge crossing if (v,w) were also embedded inside
B.
An %-%/ poth is a path embedded through the biconnected component B depicted
in Figure 6.3(b) that excludes the root of B and a specific in candidate, and which
has one endpoint p,, along the external face path ( n. . . %. . . in) and the other endpoint
Py along the external face path ( n , . . . , p, . . . , in). A Aiph a;-p pufA is an z-p path in
which p„ is on the external face path between and excluding the root of B and z or
97
Py is on the external face path between and excluding the root of B and p (or both).
A Zow z-p po</i is an path that is not a high T-p path. The highest z-g path is
an T-p path such that, for every vertex z along the z-p path including the points of
attachment p^ and Py, an edge crossing does not result 6 om the addition of an edge
inside the biconnected component from z to the root copy of v. The first condition
under which a blocking x-y path results in the conclusion that the input graph is
non-planar appears in Lemma 6.18.
P roof. Suppose p , is a high point of attachment for the x-y path. The graph minor
appearing in Figure 6.5 is the same as the Walkdown halting minor in Figure 6.3(b)
except for the addition of z and the edge between z and p. Vertex z, which represents
the high point of attachment p^, has not been edge contracted into x. The point
of attachment Py has been edge contracted into p along with all other external face
vertices along the path (u, . . . , p, . . . , w), excluding u and w. External face vertices
along the path (z, . . . , x, . . . , w) are edge contracted into x, excluding z and w. Any
external face vertices (excluding u) along the path represented by edge (u, z) are edge
contracted into z, as are all vertices embedded inside of B. Since the input graph
contains as a minor the graph in Figure 6.5, which contains a the input graph
is not planar. The case in which py is the high point of attachment is symmetric. □
Lemmas 6.19 and 6.20 establish the two remaining non-planarity minors. Both
involve a low x-p path that prevents the embedding of a back edge between u and a
w candidate inside the biconnected component B.
.w
that contains a single endpoint z of a second path p of the form (v', . . . , z), where
all vertices in the path (except v') are embedded inside B , then the input graph G is
non-pZonor.
P ro o f. The graph minor appearing in Figure 6 . 6 is the same as the Walkdown halting
minor in Figure 6.3(b) except that the x-y path and the second path p are depicted.
All vertices inside B are edge contracted into z. Since the input graph contains as a
minor the graph in Figure 6 .6 , which contains a A 3 ,3 , the input graph is not planar.
□
.w .
P ro o f. The graph minor appearing in Figure 6.7 is the same as the Walkdown halting
minor in Figure 6.3(b) except th at an edge (n,w) has been added and the z-y path
is depicted. The externally active vertex z â th e r is or has been edge contracted into
the w candidate, but the dashed edge (n, w) indicates the external activity of z. Since
the input graph contains as a minor the graph in Figure 6.7, which is a the input
graph is not planar. □
Now that all of the non-planarity minors have been presented, the next two
lemmas show some conditions which lead to a contradiction in the assumption that
the Walkdown failed due to Condition 2. Lemma 6.21 hypothesizes, for the purpose
of contradiction, the existence of an x-y path that does not meet the criteria set
forth in Lemmas 6.18, 6.19 and 6.20. Lemma 6.22 hypothesizes, for the purpose of
contradiction, the existence of a w candidate for which there is no blocking x-y path
and which does not meet the criterion of Lemma 6.17.
P ro o f. By contradiction, suppose none of the three conditions holds for the highest
x-y path P. Since by assumption there is no path from the root of B to an internal
vertex z along F, there is no DFS tree path from the root of B to the internal vertices
of P. Hence, prior to the Walkdown invocation on the cycle (pz,. . . , w , . . . , p , , . . . ,
Pz) form the bounding cycle of a biconnected component B ' rooted at either p^ or p„.
Because F is a low x-y path by assumption, B' cannot contain the stopping vertices
X and y except at the points p^ and Py, respectively. Let a be the minimum of p^ and
Py, and let 6 be the maximum of p^ and py such that o is a DFS ancestor of 6 , and 6 is
externally active because it either is a stopping vertex or it has a stopping vertex as a
descendant. During step f , the Walkdown merges the biconnected component rooted
by a. In Lines 14-20, the Walkdown chooses to proceed with an internally active
vertex if one is available. Since b is externally active, but by assumption there are
no externally active vertices on the external face path (a, w, ...,&) (excluding a
and b), the Walkdown would proceed along the path to w. Thus, we contradict the
existence of the x-y path since the Walkdown would flip the biconnected component
if necessary to embed (u, w) flrst such that vertex w and the edge (u, w) would be
embedded inside the biconnected component B when the connection is later made
between v' and b or one of its descendants. □
DFS tree edges. Thus, since w must also be on the external face by Lemma 6.15, w is
both a DFS ancestor of z; or (possibly both) and a cut vertex in G at the beginning
of step r. Therefore, w must be visited by Walkdown in order to attach the pertinent
child biconnected component(s) leading to z or y (or both). The Walkdown embeds
any required back edge and attaches ^ internally active child biconnected compo
nents prior to processing externally active child biconnected components (z and y
are externally active). The visitation of w and all of its mtemally active descendants
contradicts the assumption that w is & w candidate since by assumption w has no
externally active pertinent child biconnected components at the end of step n. O
Thug, if the Walkdown fails to embed one or more back edges, then G is non-
planar. The theorem follows as contrapositive since Lemma 6.12 proves that G is a
representation of the combinatorial planar embedding of a subgraph of G consisting
of all embedded edges. O
Finally, we have the run-time analysis for the Walkdown appearing in Lemma
6.24. This is followed by Lemma 6.25, which proves that the use of short-circuit
edges add no additional memory requirements beyond the edge bound established in
Corollary 1.5.
L em m a 6.24 TTte procedure Wo&down runs m G (l) omorfized ftme per uer(er o/
the input graph.
P ro o f. The Walkdown procedure is invoked once per depth hrst search tree edge.
Line 1 occurs in constant time. Line 2 performs two iterations of remainder of the
Walkdown pseudo-code. Line 3 involves a simple assignment and an invocation of
GetNextVertexOnExternalFace, which is 0(1) by Lemma 4.14. Line 29 is a constant
time comparison and branch operation. Thus, the total cost of all executions of Lines
1-3 and 29 is 0(n).
Line 4 initiates a simple loop over the loop body in Lines 5 to 28. The loop
body contains invocations of MergeBicomps, EmbedBackEdge, GetNextVertexOnEx-
temalFace, VertexActiveStatus, and EmbedShortCircuitEdge, all of which achieve
G (l) time by Lemmas 6.3, 4.6, 4.14, 4.12, and 4.9, respectively. The loop body also
invokes a standard 0(1) stack push operation on Lines 10 and 23. Line 11 is 0(1)
because each pertinentBicompList is a linked list. Since the remainder of the opera
tions in the loop body are simple constant time operations, the loop body achieves
0(1) time per iteration.
For the inner traversal loop starting at Line 4, the iterations can be partitioned
into a set of iterations up to and including the embedding of the Erst back edge, sets
of iterations up to and including the embedding of each subsequent back edge, and a
Enal set of iterations after the last back edge is embedded. For each set of iterations
prior to and including the embedding of a back edge, the Walkdown iterates through
103
vertices along a path that, together with the back edge, will form a new proper face
in the embedding structure. Therefore, except for the hnal set of iterations, the total
cost of all loop iterations is commensurate with the sum of the degrees of the faces in
the embedding, which is 0(m) in total. If the Snal set of iterations is non-empty, then
it consists of zero or more iterations, each of which short-circuits an inactive vertex,
followed by a final iteration that discovers either a stopping vertex or the root vertex
t/. The total cost of all short-circuiting iterations is 0(7i) because each vertex is only
short-circuited once, after which it no longer appears on the external face. The total
cost of the final iteration in each Walkdown is 0(Tt).
Thus, the cost of all Walkdown operations is 0 (n ) in total. This cost can be
amortized over all vertices, resulting in 0(1) amortized time performance per vertex.
□
L em m a 6.25 Short-circuit edges are embedded within the edge limit specified by
Corollary 1.5.
The procedure PlanarityTest defined in Figure 7.1 is the functional entry point of the
planarity testing algorithm. This procedure can be called independently, but is also
called by procedure PlanarEmbed discussed in Chapter 8 and procedure IsolateKu-
ratowskiSubgraph discussed in Chapter 9.
Procedure: PlanarityTest
in: Graph G
out: An indication of whether G is planar or non-planar and the embedding
structure G (in embedding invariant state) at the time when
the planarity of G is determined.
based on numerous lemmas also appearing in Chapter 6. Theorem 7.2 gives the
running time of the PlanarityTest procedure.
T h eo rem 7.1 On on %npn( ^noph G unth ot moat An edges /o r some conatont A > 3,
the procedure PlonoritpThat retnma ^ ond only ^ the input groph G ia plo-
nor, ond it retuma on embedding structure G in embedding inuoriont atote ('Dejhnition
3.8) containing all edges of G unless there exists a biconnected component in G on
which o Condition 1 or ;0 /oiture occurred.
P ro o f. The tree edges are embedded by the hrst loop, leaving only the back edges.
If, for each vertex u, the back edges from u to its descendants are embedded, then all
back edges are embedded since a back edge from a vertex to an ancestor u is embedded
in step u. The loop in Lines 9 to 12 iterates each DFS child c of v, invoking Walkdown
to embed back edges from v to descendants of c. If G is planar, then Theorem 6.23
proves that these invocations embed the back edges from v to its descendants at every
step V. Thus, Line 16 returns PLANAR if G is planar.
Conversely, if PlanarityTest returns PLANAR, then G is indeed planar. The
loop in Lines 13 to 15 ensures that, for each vertex v, all back edges from v to its
descendants have been embedded, and the result in G at each step is, according to
Lemma 6.12, in the embedding invariant state. To return PLANAR in Line 16, the
loop in Lines 13 to 15 must successfully execute for all v such that all edges are
embedded while maintaining the planarity of G. On the other hand, if G is non-
planar, then Theorem 6.23 guarantees that, for some step v, an unembedded back
edge will be found by the loop in Lines 13 to 15, at which time the embedding structure
G will be in the embedding invariant state and contain a biconnected component on
which a Condition 1 or 2 failure occurred. □
This chapter covers the post-processing steps that can be performed after the oper
ation of the procedure PlanarityTest in Chapter 7 to recover a combinatorial planar
embedding of the input graph if it is planar. Section 8.1 discusses a procedure that
imposes a consistent orientation to all vertices in each biconnected component in
the embedding structure. Section 8.2 discusses the procedure PlanarEmbed, which
creates the combinatorial planar embedding if the input graph is planar.
Procedure: OrientVertices
this: Embedding Structure G resulting from procedure PlanarityTest
out: Embedding Structure G in oriented embedding invariant state
P ro o f. Line 1 requires a simple loop to iterate the edge array E of G, which is 0{n)
due to the edge limits imposed by Corollary 1.5. Line 2 is constant time.
The innermost loop in Lines 9 to 12 has a constant time loop body that iterates
the adjacency list of each vertex. Thus, the total cost is 0(m ), which is 0{n) due to
Corollary 1.5. Likewise, the invocation of Invert Vertex is G(d) by Lemma 4.16, but
the totEil cost over all iterations of the loop in Line 5 is G(m), which again is G(u)
due to Corollary 1.5. Since all other operations in the Line 6 loop are constant time,
and the loop iterates over all root copy and parent copy vertices, the total cost is
0 {n), which is 0(1) amortized time per vertex.
The outermost loop initiated in Line 3 iterates n times. Lines 4 and 5 are
constant time, and the loop initiated in Line 6 has already been shown to achieve
0(1) amortized time per vertex. Thus, the procedure OrientVertices is 0 (u ). O
110
Procedure: PlanarEmbed
in: Graph G
out: An indication of whether G is planar or non-planar and the embedding
structure G in the embedding invariant state for step v if
G is non-planar or a combinatorial planar embedding if G is planar
L em m a 8.3 On an input graph G with at most kn edges for some constant k > 3, the
procedure PlanarEmbed produces a combinatorial planar embedding of G in standard
ocÿocemcy fist /brmot. For non-pkuor grop/w, FianurFm6ed procedure pWds (he
emteddm^ structure G m embedding inudriont state (D ^nition contoining o
biconnected component on which o Condition j or jg /diiure occurred.
P roof. If the graph is non-planar, then Line 2 prevents alteration of the embed
ding structure G resulting from the PlanarityTest invocation, which meets the stated
requirements according to Theorem 7.1. For planar graphs, the procedure OrientVer
tices is invoked, which transforms G to the oriented embedding invariant state accord-
ing to Lemma 8.1. By Lemma 4.20, the invocation of JoinBicomps then merges the
Ill
root copy of each biconnected component with its parent copy without any change of
vertex orientation. If the parent copy is degree 0 (indicating a DFS tree root), then
the adjacency list of the root copy is transferred to the parent copy. Otherwise, the
orientation of the parent copy of the cut vertex is preserved after the merge because
the edges incident to a root copy are inserted without inversion between two edges
of the parent copy. Thus, G is a combinatorial planar embedding of the input graph
in standard adjacency list format because it contains no root copy vertices and one
parent copy vertex per vertex of the input graph, the adjacency list of each parent
copy vertex contains no short-circuit edges and all incident edges corresponding to
those in the input graph (by Theorem 7.1), and the parent copy vertices all have a
consistent adjacency list orientation. □
D efinition 9.3 a;, y ond w /bom P.l, the potha ore d^ned.-
1. The RXW path is (he ertemol /dee po(h (W, . . . , T, . . . , w/, ezcfodm^ r ' ond
w (and their incident edges).
;8. The high RXW path is (he po(A con(oined hy (he RXW po(h 6e(ween ond ear-
eluding / ond a;.
The low RXW path is (he po(h eon(oined (he RXW po(h /rom a; (o to, ear-
eluding w.
The KYW path is (he ear(ernol /oee po(h (W, . . . , g, . . . , ui/, eareluding / ond
w ^ond (heir ineiden( edges/.
114
J. 7%e high RYW path w (hg poth contomed 6;/ (he AYW po(h between and er-
cJndmp / ond p.
g. The low RYW path ie (he po(h con(o*ned hy (he AFW po(h p (o w, er-
115
cZuAng w.
5. Ezcept /o r / ond w, tAe type member o/ eocA oertez atmcture on tAe eztemot
/dee o/ tAe ^connected component witA root r ' ore mod^ed oa /bttotoa;
^o/ Verticea on tAe AiyA ÆY1V potA Aooe tAe type AiyA
(h) Vertices on the low R X W path have the type low RXW.
(c) Vertices on the high R Y W path have the type high RYW.
(d) Vertices on the low R Y W path have the type low RYW .
Note that all internal vertices in the biconnected component rooted by r' are
eoaity ident^obte Aeconae tAey receive no type deaiynotion ond ore not eyuot to
r ' or w.
D eûm tion 9.5 TAe embeddiny atmcfnre G ia in tAe non-planarity minorz-y path
found state i^ it ia in tAe non-ptonority minor initial atotewitA tAe/dttowiny ezcep-
tiona;
1. TTie viaited memAera o/vertez atmctnrea ond edye records atony tAe AiyAeat z-y
path are equal to 1 .
;8. TAe pointa o/ ottocAment o/ tAe AiyAeat z-y potA ore indicoted Ay tAe vorioAtea
Pz ond Py in G in tAe manner deacriAed in ToAte 9.1.
116
ly minorType ia D, tAen tAe waited memAera o/oerter atmctnrea ond edpe recorda
ore egoot to 1 otonp tAe intemot potA (r%. . . , z) deacriAed in TbAfe P I under
tAe entry /or z.
root r ' is equal to and the stopping vertices are the desired values for % and y.
On the other hand, if either a; or is not a stopping vertex, then the Walkdown
procedure terminated after descending to but without merging some pertinent child
biconnected component (see Condition 1 in Chapter 6). We invoke the Walkdown on
t/ to reconstruct the stack 5' of pertinent biconnected component roots that lead to
the Condition 1 failure of Walkdown. The desired root r ' is the root of the pertinent
child biconnected component in the topmost 2-tuple of integers on the stack S. The
link[0] and linkfl] external face paths from r' lead to the desired stopping vertices x
and %/. Once r', a; and have been identihed, the pertinent vertex tu if obtained using
a simple loop to search the lower external face path between (and excluding) x and
y-
The procedure receives the embedding structure G
in the non-planarity minor initial state (Definition 9.4). The procedure temporarily
deletes the edges incident to r' except the two edges incident to r' along the external
face. For each edge record e in the adjacency list of r' except the two indicated
by link[0] and ltnk[l] in r', this procedure performs the following actions. The edge
record e is pushed onto the stack S in G. The edge record e^m is obtained using the
twinLink in edge record e. A standard 0(1) doubly linked list delete is used to omit
e and from the adjacency lists containing them. However, the edge records e
and etmin are not removed from the edge record array E in ô , and the information
they contain is not altered.
The procedure Pop And Unmark VerticesAndEdges receives the embedding struc
ture G in the non-planarity minor initial state (Definition 9.4) except for the effects of
procedure HidelntemalEdgesOfRoot described above and except for having the value
1 in the visited members of some vertex structures and edge records. Additionally,
the procedure receives a vertex s, and the stack S in G is assumed to contain zero
or more 2-tuples consisting of a vertex structure reference on top of an edge record
reference, under which are zero or more other edge record references not to be per
turbed by this procedure (pushed by procedure HidelntemalEdgesOfRoot described
above). A simple loop is performed that terminates if the stack becomes empty, if
118
the top element of the stack refers to an edge record, or if vertex a appears on the top
of the stack. If none of the terminating conditions occurs, then the loop body pops a
vertex i then an edge record e, and it clears (assigns 0 to) the visited members of %,
e and the edge record obtained using the twinLink of e.
The procedure RestorelntemalEdgesOfRoot receives the embedding structure
G in the non-planarity minor x-y path found state (Definition 9.5), except for the
efiects of procedure HidelntemalEdgesOfRoot described above. While the stack is not
empty, the procedure pops an edge record e from the stack 5" in G, and it computes
Gtwin using the twinLink in e. Then, the link[0] and link[l] members of edge records
e and are used to reinsert them into their respective adjacency lists in 0(1)
time. This reverses the action of the procedure HidelntemalEdgesOfRoot, and puts
the embedding structure O in the non-planarity minor a;-y path found state.
The procedure FindExtActivityBelowXYPath receives the embedding stmcture
G in the non-planarity minor x-y path found state (Definition 9.5 with established
the points of attachment Px and py of an x-y path). The x-y path is assumed to be
a low x-y path. Along the lower external face path between and excluding and
Py (the path that excludes r'), the procedure searches for an externally active vertex
2 by invoking VertexActiveStatus (see Section 4.4) on each vertex. The vertex z is
returned, or nil is returned if there are no externally active vertices along the path
explored.
Path uses the ‘visited’ member of vertices and edges in G to mark the highest x-y
path with points of attachment p , and Py. The procedure is not called unless an z-p
path is guaranteed to exist.
The correctness of procedure MarkHighestXYPath is established by Lemma 9.1.
The run-time analysis for procedure MarkHighestXYPath appears in Lemma 9.2.
P ro o f. Lines 1 and 2 temporarily remove all edges incident to r' except the two
along the external face, storing references to the removed edges on stack S. Thus, r'
becomes degree 2. The bounding walk of the resulting proper face containing r' cannot
contain the w candidate since this would violate the assumption that an x-y path is
known to exist in the biconnected component. This bounding walk is performed by
the loop in Lines 5 to 19. Portions of the bounding walk whose endpoints are both
on the RXW path are omitted from the x-y path by Lines 13 to 15 such that the
last visited vertex on the RXW path is the first vertex marked on the x-y path.
The first visited vertex py on the RYW path is the last vertex marked on the x-y
path since the loop terminates when Py is found. The edges and vertices marked
form an x-y path because portions of the bounding walk corresponding to separable
components are omitted from the x-y path by Line 11. Moreover, the assumption
that the x-y path obtained by this procedure is not the highest x-y path contradicts
the fact that the z-y path was obtained by traversing the bounding walk of the proper
face containing r'. Thus, since the loop marks the highest x-y path and identifies %,
Line 20 sets Py, and Lines 21 to 23 restore the internal edges of the desired state
given by Definition 9.5 is achieved. O
Procedure: MarkHighestXYPath
this: Embedding structure G in non-planarity minor initial state
out: Embedding structure G in non-planarity minor x-y path found state
21) while stack 5 is non-empty and the top element indicates a vertex
22) Pop the top two elements from stack S
23) RestorelntemalEdgesOfRoot ()
121
Procedure: MarkVtoZPath
this: Embedding structure G in non-planarity minor path found state
with an identihed path that is a low path,
out: Embedding structure G in non-planarity minor path found state
except if the desired path p is found, then the visited members are assigned 1
in the vertex structures and edge records representing path p and the vertex
in both p and the x-y path is assigned into z in G
1) Let e be the edge record in the adjacency list of p , with visited member equal to 1
2) while the visited member of e is not equal to 0
3) Set equal to the twinLink of e
4) Set e equal to the link[l] member of ehwn
5) if e indicates a vertex structure, set e equal to the link[l] member of e
encounter with s. Thus, if the link[l] successor edge of e was not marked during
the execution of MarkHighestXYPath, then s is either directly adjacent to r ' by em
intemal edge or s becomes a cut vertex when the internal edges incident to r' are
removed.
The MarkVtoZPath procedure traverses the a;-p path starting with the hrst
intemal vertex neighbor of pg. If a vertex a meeting the criterion above is found
before p, is encountered, then a is assigned to z in G because the start of the desired
path p has been found. The vertex structures and edge records representing p are
marked by simply repeating the traversal of the (possibly empty) portion of the walk
123
Procedure: ChooseTypeOfNonplanarityMinor
this: Embedding structure G in the non-planar embedding invariant state
in: The input graph G
out: Embedding structure G in the non-planarity minor found state
1) Orient Vertices 0
2) InitializeNonplanarityMinorContext (G)
10) if minorType has an empty value (was not assigned ‘A’ or ‘B’)
11) MarkHighestXYPath ()
Fhroof. All operations are constant time except the procedure invocations. Each pro
cedure is invoked once. OrientVertices is 0 (n ) by Lemma 8.2. MarkHighestXYPath
and MarkVtoZPath are each 0 (n ) by Lemmas 9.2 and 9.4. The remaining low-level
procedures contain simple 0 (n ) loops. O
126
V ariable D escription
The endpoints of a back edge in G, not in G, and represented by
the edge (u, a;) in the non-planarity minors. E the leastAncestor of a;
is less than u, then Ug is equal to the leastAncestor of a;, and dg
is equal to a;. Otherwise, equals the lowpoint of the first child c
in the separatedDFSChUdList of z, and is computed by obtaining the
neighbor of Uz in G with the least DFI greater than or equal to c
(such that d x is in the DFS subtree rooted by c). In this case, (u,x)
represents the back edge {ux, d x ) plus the DFS tree path from d% to x.
The endpoints of a back edge in G, not in G, and represented by the
edge (u, y) in the non-planarity minors. The values of Uy and dy are
computed using y in the same manner as U x and d^ are computed
using z,
duu The descendant endpoint of the back edge (u, du,) in G, not in G,
and represented by the edge (u, w) in the non-planarity minors.
E the adjacentTo member of w equals n and the minorType is not B,
then dyj equals w. Otherwise, is computed by obtaining the
root w' of the last pertinent child biconnected component of w,
calculating c = w' — n, then obtaining the neighbor of n in G
with the least DFI greater than or equal to c (such that dw
is in the DFS subtree rooted by c). Note that w' could be the
root of any pertinent child biconnected component, except that
the biconnected component must be externally active for minor B.
Ug:, d z These are nil unless minorType is B or E. For minor B, is equal
to the lowpoint of the same vertex c used to help obtain d^,, and d ^
is computed by obtaining the neighbor of U z in G with the least DFI
greater than or equal to c. For minor E, the values of and dg are
computed using z in the same manner as U x and d x are computed
using z.
vertex on the RXW path or and t can be any vertex on the RYW path or The
procedure begins with vertex a, proceeds around the RXW path to w, then from tu
along the RYW path to t. All vertices and edges encountered are marked by setting
the 'visited' members of all the representative vertex structures and edge records
equal to 1. Thus, if a and f are equal to r' then all of the vertices and edges on the
external face of are marked. Also, if r' is marked by this procedure, then the parent
copy of r ' is not marked because it will be marked in minor A when the DFS tree
path from r to v and in all other minors when the edge {v, d j) is embedded.
The procedure afh receives the embedding structure G in the isola
tion in progress state, a vertex o and a vertex d, which is a descendant of a. If d is a
root copy, then set d equal to the vertex indicated by its parentLink. This procedure
assigns 1 to the 'visited' members of the vertex structures and edge records along the
DFS tree path from d to a, jumping from root copy to parent copy as necessary. First,
the visited member in the parent copy of d is set equal to 1. Then, the procedure uses
a simple loop whose body obtains from the adjacency list of d the tree edge indicating
a root copy or parent copy of the DFSParent p of d. The visited members are set
equal to 1 in the edge records of the tree edge and the vertex structure for the parent
copy of p (it is unnecessary to mark root copies, which will be eliminated in the final
result).
The procedure MarkDFSPathsToDescendants receives the embedding structure
G in the isolation in progress state. For each of the unembedded edges {ux, dx),
(uy, dy), and (u, w) as well as the edge (%, d%) if d^ is non-nil, this procedure invokes
the procedure MarkDFSPath to mark the corresponding tree path (æ, . . . , d%), (y,
. .., dg), and (tu, . . . , d^,) as well as (tu, . . . , d^) if d% is non-mZ. Note t h # d^ is only
non-nil for minors B and E, and z is an unidentified descendant of tu in minor B while
tu = z for the cases in minor E where the path (tu,. . . , d,) must be marked (hence, we
use w instead of z as the ancestor in the path to be marked). For each invocation of
MarkDFSPath, the parameter a is assigned the ancestor endpoint of the given path,
and d is assigned the descendant. This procedure accounts for the fact that an edge
in a non-planarity minor may be representative of a DFS tree path plus a back edge.
129
Procedure; IsolateMinorA
this: Embedding structure G in the isolator initial state with minorType of A
out: Embedding structure G in the Kuratowski subgraph marked state
For example, the edge (u, a;) in a non-planarity minor may represent a direct back
edge from a; to an ancestor of u, or there may be a back edge to an ancestor of u from
a descendant dg of z in another biconnected component.
The procedure AddAndMorAf7»em6eddedEd^es receives the embedding struc
ture in the Kuratowski subgraph marked state except that it is missing the edges
(ug, dg); (%, dy), and (u, d^,) as well as the edge (u^, d^) if is non-mZ. For each of
these missing edges, the procedure adds the two edge records that represent the edge
to the adjacency lists of the vertex structures representing the respective endpoints.
The procedure also increments m, and it assigns 1 to the visited members of the edge
records and the endpoint vertex structures of each edge it adds. As a result, G enters
the Kuratowski subgraph marked state.
Procedure: IsolateMinorB
this: Embedding structure G in the isolator initial state with minorType of B
out: Embedding structure (7 in the Kuratowski subgraph marked state
(1 ) MarkPathAlongBicompExtFace , r')
(2) MarkDFSPath (min (ug, «,), max(ua., Ug, «,))
(3) MarkDFSPathsToDescendantsO
(4) JoinBicomps()
(5) AddAndMarkUnembeddedEdges()
L en u n a 9.9 Git/en the emheddin^ atmcture G in the iaoWor initiai state with mi-
nor 2 );ye eguai to the JsoiateAfinorB procedure trans/brms G to the Kuratowshi
subgraph marked state.
P ro o f. The proof is the same as in Lemma 9.7 except as follows. Firstly, there are
as many as three ancestors of v involved in minor B, corresponding to the external
activity of x, y and z. Thus, the DFS tree path in G that corresponds to vertex u in
minor B extends from the maximum DFI to the minimum DFI of the three ancestors,
which is marked in Line 2. Secondly, though vertices u and v in minor B are required
to form a the edge (u, v) in minor B is not required. Thus, the vertices and
edges are not marked in the corresponding DFS tree path in G from v to the ancestor
of maximum DFI associated with u in minor B (except, of course, that the endpoints
of that path are marked by Lines 2 and 5). Thirdly, minor B contains an extra vertex
z as well as the edges (w, z) and (u, z) that do not appear in minor A but which are
isolated by the same methods as those used to isolate the path (u,, . . . , d,, . . . , a:).
Finally, since / is a root copy of u, the invocation of MarkPathAlongBicompExtFace
marks the cycle in G corresponding to the cycle (u, . . . , a;, . . . , w, . . . , p, . . . , u)
in minor B, except the parent copy of u, which is marked when the edge (u, dg,) is
added. Thus, a correspondence has been made with the portion of minor B necessary
to mark in G a subgraph of G homeomorphic to Kg,3 . O
Procedure: IsolateMinorC
this: Embedding structure G in the isolator initial state with minorType of C
out: Embedding structure G in the Kuratowski subgraph marked state
(7) JoinBicompsQ
(8 ) AddAndMarkUnembeddedEdgesQ
L em m a 9.11 Given the embedding structure G in the isolator initial state with mi
norType equal to C, the IsolateMinorC procedure transforms G to the Kuratowski
sutpmph mor&ed
P ro o f. The proof is the same as in Lemma 9.7 except as follows. Firstly, according to
Lemma 9.5, the T-p path in G represented in minor C by the edge (p, z) was previously
marked for isolation by the procedure ChooseTypeOfNonplanarityMinor. Secondly,
since / is a root copy of u, the invocation of MarkDFSPath only marks in G the path
corresponding to the edge (u,r) in minor C. Thirdly, also because / is a root copy
133
P roof. Same arguments as in Lemma 9.8, except for a few additional constant time
operations in Lines 1 to 4. □
Procedure: IsolateMinorD
this: Embedding stmcture G in the isolator initial state with minorType of D
out: Embedding stmcture G in the Kuratowski subgraph marked state
(1) MarkPathAlongBicompExtFace (3 ;, y)
(2) MarkDFSPath(min(w 2 , Uy), / )
(3) MarkDFSPathsToDescendantsO
(4) JoinBicompsQ
(5) AddAndMarkUnembeddedEdgesQ
L em m a 9.13 Given the embedding structure G in the isolator initial state with mi
norType equal to D, the IsolateMinorD procedure transforms G to the Kuratowski
subgraph marked state.
P ro o f. The proof is the same as in Lemma 9.7 except as follows. Firstly, according
to Lemma 9.5, the paths in G corresponding to the edges (x, y) and (u, z) in minor
D were previously marked for isolation by the procedure ChooseTypeOfNonplanari
tyMinor. Secondly, since r' is a root copy of v, the invocation of MarkDFSPath only
marks in G the path corresponding to the edge (u, v) in minor D. Thirdly, though the
vertices u, x and y in minor D are required to form a ^ 3 ,3 , the edges (n, x) and (r, y)
in minor D are not required. Thus, the parameters to MarkPathAlongBicompExtFace
are adjusted so that the vertices and edges are not marked along the corresponding
external face paths in G from u to x and u to %/ (though x Emd y are marked by
MarkPathAlongBicompExtFace, and v is marked in Line 2 ). Finally, since the proce
dure ChooseTypeOfNonplanarityMinor only selects minor D if the test for minor C
fails, the points of attachment for the x-ÿ path must be low and therefore connect to
the portion of the external face marked by MarkPathAlongBicompExtFace. Thus, a
correspondence has been made with the portion of minor D necessary to mark in G
135
.w . .w .
Procedure: IsolateMinorEi
this: Embedding structure G in the isolator initial state with minorType of E
and w ^ z.
out: Embedding structure G in the Kuratowski subgraph marked state
w /ï [W:
path has been changed to a high x-y path by substituting z for a stopping vertex,
changing the minorType to C is sufficient according to Lemma 9.11 to guarantee that
the procedure IsolateMinorC marks a homeomorph in G. O
P ro o f. All operations are constant time except the 0{n) path traversal loops in Lines
2 and 4 and the invocation of IsolateMinorC, which is 0{n) by Lemma 9.12. □
Procedure: IsolateMinorEg
this: Embedding structure G in the isolator initial state with minorType of E,
w equal to z, and Ug a descendant of Ug and Up
out: Embedding structure G in the Kuratowski subgraph marked state
(1) Assign 0 to 'visited' members of all vertex structures and edge records
(2 ) Set in G equal to
(3) dyj f - dg;
(4) (z, Ug; dz) f - (ml, ml, ml)
(5) minorType f - 'A'
(6 ) IsolateMinm-A ()
L em m a 9.17 Giuen <he structure G in the isolotor initiol stute unth mi-
norT^pe eguol to E, w = z ond u , o descendont o/ u , ond u^, the IsoloteMinorEg
procedure trom/orms G to the Eurotowshi sui^roph morhed atote.
P ro o f. All operations are constant time except Line 1, which contains an implied
G(u) loop, and the invocation of IsolateMinorA, which is G(u) by Lemma 9.8. O
139
Lemma 9.19 G*t;en (he embeddmy afruchtre G m (he wofotor aWe tutfh mt-
norT^/pe egttof (o E, to = z, tt^ ^ tty, ond tt, on oncea(or o/ o( Zeoa( one o/ tt, ond tty,
(he faoWeAfinorEg pmcedttre (ndna/brma G (o (he hritm(ott7ahi atthgmph morhed a(o(e.
P ro o f. With respect to marking the edges and vertices along paths in G that cor
respond to the edges (tt^g, z), (tty, y), and (t;, to) in minor Eg, the proof is the same
140
Procedure: IsolateMinorEg
this: Embedding structure G in the isolator Initial state with minorType of E,
w = z, Wg ^ Uy, and an ancestor of at least one of u , and Uy
out: Bhnbedding structure G in the Kuratowski subgraph marked state
( 1 ) i f Ug < Uy
(2) MarkPathAlongBicompExtFace(r^, p,)
(3) MarkPathAlongBicompExtFace (w, p)
(4) else MarkPathAlongBicompExtFace(r, w)
(5) MarkPathAlongBicompExtFace^y, r')
as for the edges {u, x), (u, y), and (v, w) in Lemma 9.7. Likewise, the path in G
corresponding to the edge (uxz, w) is isolated by exploiting the same methods as those
used to mark the path in G corresponding to the path {uxz, ■■ dx, ■■-, x) in minor
Eg. According to Lemma 9.5, the x-y path in G represented in minor Eg by the edge
(x, y) was previously marked for isolation by the procedure ChooseTypeOfNonpla-
narityMinor.
There are a number of variations on the depiction of minor Eg in Figure 9.12. A
symmetric case occurs when Ux is the descendant of Uy and (which, for the purpose
of depiction, would be contracted to Uy^). Moreover, Ux and % (or Uy and % in the
symmetric case) need not be equivalent. With respect to marking the edges and
vertices along paths in G that correspond to edges («M, Uy) and (uy, u) depicted in
Figure 9.12, all variations and symmetric cases are accounted for by simply marking
the DFS path from v up to the minimum of the ancestors Ux, Uy, and u^, which occurs
in Line 6 .
All of the vertices and edges corresponding to minor Eg have been discussed
except for the cycle (u, . . . , z, . . . , w, . . . , y, . . . , u), which corresponds in G to the
external face cycle of the biconnected component B rooted by / (except that u, the
141
parent copy of r', is marked when the edge (v, dg,) is added). When n , ia the ancestor
of Uy, the portions of the input graph corresponding to the edges (z, w) and (%/, n)
in Figure 9.12 are not required to form the A 3 , 3 homeomorph. In the symmetric case
in which Uy is the ancestor of the portions of the input graph corresponding to
edges (2/, w) and (z, u) are not required. The procedure accounts for these two cases
in Lines 1 to 5. Moreover, the procedure accounts for the fact that the points of
attachment p„ and of the z-p path are edge contracted into z and y in minor E3.
When marking the path in G corresponding to edge (v, x), it extends the marking to
Pz in Line 2 in order to connect to the z-p path. Similarly, if Py is between w and p
such that pg becomes one of the degree three vertices in the A 3 , 3 homeomoqph. Line
3 still marks the path in G from w to p since the connection must be made from p^
to Up. Symmetric arguments hold when Up is the ancestor of u^. The invocation of
JoinBicomps in Line 8 completes the correspondence with the portion of minor Eg
necessary to mark in G a subgraph of G homeomorphic to A 3 ,3 . □
P roof. Same arguments as in Lemma 9.8, except for a few extra constant time
operations. □
Procedure; IsolateMinorE4
this: Embedding structure G in the isolator initial state with minorType of E,
w = z, at least two of Uy and Ug are equal and not ancestors of
the third, and Px ^ x ov Py ^ y (or both),
out: Embedding structure G in the Kuratowski subgraph marked state
(1) ifpz # %
(2) MarkPathAlongBicompExtFace(r', w)
(3) MarkPathAlongBicompExtFace(Pÿ, r')
(4) else MarkPathAlongBicompExtFace(r', Px)
(5) MarkPathAlongBicompExtFace(w, r')
Note that minor E 4 as depicted in Figure 9.14 does not require the edges {u,
%;) and (w, y) to form a Kg,3 . Moreover, while Figure 9.14 depicts pz distinct horn i
(and Py can be equal to or distinct from p), there is a symmetric case in which p^ is
equal to x and therefore py must be distinct from y.
The correctness of procedure IsolateMinorE 4 is established by Lemma 9.21. The
run-time analysis for procedure IsolateMinorE 4 appears in Lemma 9.22.
Lemma 9.21 Gmen (he emheddmp s(ruc(«re G m (he isoWor m;(W a(o(e w*(h mi-
143
P ro o f. With respect to marking the edges and vertices along paths in G that corre
spond to the edges (u, z), (u, p), and (u, w) in minor E4 , the proof is the same as in
Lemma 9.7. Likewise, the path in G corresponding to the edge (u, w) is isolated by
the same methods as those used to isolate the path (u„ . . . , dg, . . . , z). The path in
G represented by vertex u is marked by the invocation of MarkDFSPath in Line 6 .
Note that the path in G corresponding to the edge (u, u), excluding endpoints, is not
marked because the edge is not needed to form a in minor E 4 (except the end-
points, which are marked by other operations in Lines 7 and 9). As for the z-p path
in G represented in minor E 4 by the edge (p^, p). Lemma 9.5 stipulates that it was
previously marked for isolation by the procedure ChooseTypeOfNonplanarityMinor.
All of the vertices and edges corresponding to minor E 4 have been discussed
except for the cycle {v, . . . , x, . . . , w, . . . , y, . . . , v), which corresponds in G to the
external face cycle of the biconnected component B rooted by r' (except that v, the
parent copy of r', is marked when the edge {v, d^) is added). If p , is not equal to
z, then the edge (w, p) in minor E 4 is not required to form a so Lines 2 and 3
mark the external face of B except the path from w to py (though the endpoints are
marked later). If Px equals z, but Py does not equal p, then symmetric operations
are applied in Lines 4 and 5. The invocation of JoinBicomps in Line 8 completes the
correspondence with the portion of minor E4 necessary to mark in G a subgraph of
G homeomorphic to ^ 3 ,3 . O
P ro o f. Same arguments as in Lemma 9.8, except for a few extra constant time
operations. O
144
Procedure: IsolateMinorEg
this: Embedding structure G in the isolator initial state with minorType of E,
w = z, pg = a;, Py = P; and at least two of Uy and are
equal and not ancestors of the third.
out: Embedding structure G in the Kuratowski subgraph marked state
L em m a 9.23 Given the embedding structure G in the isolator initial state with mi-
eguol (o E, w = z, pa, = z, py = p, and of feosf fwo o/ Uy ond ore
egnol ond nof onceafors o/ fAe fhW, the LaoIofeMinorEg procedure frona/iorma G to
the Kuratowski subgraph marked state.
P ro o f. With respect to marking the edges and vertices along paths in G that corre-
spond to the edges {u, x), (u, y), and (v, w) in minor E, the proof is the same as in
Lemma 9.7. The paths in G represented by vertex u and the edge (u, ti) are marked
by a single invocation of MarkDFSPath in Line 2. The path in G corresponding to
145
the edge («, w) is isolated by the same methods as those used to isolate the path (u,,
. . . , di, ... ; z). Since r ' is a root copy of u, the invocation of MarkPathAlongBicom
pExtFace marks the cycle in G corresponding to the cycle (u, . . . , z, . . . , w, . . . , y,
. . . , u) in minor E (except that u, the parent copy of r', is marked when the edge
(u, du,) is added). Finally, according to Lemma 9.5, the path in G represented
in minor E by the edge (x, y) was previously marked for isolation by the procedure
ChooseTypeOfNonplanarity Minor. The invocation of JoinBicomps in Line 4 com-
pletes the correspondence with minor E such that a subgraph of G homeomorphic to
-K's has been marked in G. □
Proof. Same arguments as in Lemma 9.8, except for a few extra constant time
operations. □
L em m a 9.25 Given the embedding structure G in the isolator initial state with mi-
eguol to E, the ZsototeMmorE procedure traus/onue G to the JiTurotouwhi
subgraph marked state.
Procedure: IsolateMinorE
this: Embedding structure G in the isolator initial state with minorType of E
out: Embedding structure G in the Kuratowski subgraph marked state
(1) ii z ^ w, IsolateMinorEi 0
(2) else if «% > max(ug, Uy), IsolateMinorEg()
(3) else if Ug < max(uz,% ) and n , ^ Uy, IsolateMinorEg()
(4) else if Pz ^ a; or p , ^ p, IsolateMinorEg ()
(5) else IsolateMinorEg 0
p and may be distinct from a; and p. The vertex w is pertinent, and either it is
externally active or their is another externally active vertex on the external face path
(pz, . . w, Py). Let z denote this externally active vertex.
The following cases result from the variability of the identified vertices u^,
u^, Px, Py, and z. Either z ^ w (minor E j or z = w. In the latter case, we consider
the mutually exclusive cases for Ux, Uy, and u^.
In both of the latter two cases, at least two of Uy, and are equal to and
not an ancestor of the third. When this condition occurs, minors E 4 and Eg are
distinguished by the fact that either the x-y path is attached directly to x and p
(minor Eg), or it is not (minor E4).
Since vertices u, z, p and w in minor E are fixed, the cases above account for
all variability in minor E. Thus, the fact that G is transformed to the Kuratowski
subgraph marked state follows from Lemmas 9.15, 9.17, 9.19, 9.21, and 9.23. O
147
Procedure: IsolateKuratowskiSubgraph
this: Embedding structure G in the non-planar embedding invariant state
in: Input graph G
out: Embedding structure G containing a subgraph of G homeomorphic to or Kg
(1) ChooseTypeOfNonplanarityMinor(G)
(2) InitializelsolatorContext()
This chapter extends the theoretical framework for planarity created in the prior
chapters of this dissertation to solve the testing, embedding and minimal obstruct-
ing subgraph problems for outerplanarity. Section 10.1 is devoted to outerplanarity
testing and embedding. Section 10.2 exploits the proof of correctness to obtain a
subgraph homeomorphic to Kg,3 or when it is found that a given graph is not
outerplanar. A prior linear time algorithm for outerplanar graph embedding is due
to Brehaut [9], which is based on the Hopcroft and Tarj an planarity test [30].
Given that all vertices are defined to be externally active at all times, if the
procedure PlanarityTest defined in Chapter 7 is able to embed all back edges between
160
each vertex and its descendants, then clearly the input graph is outerplanar, and
an embedding can be recovered by invoking the procedure PlanarEmbed de&ned in
Chapter 8 . If, however, the underlying procedure Walkdown dehned in Chapter 6 fails
to embed a back edge during a step u, then the input graph (7 is not outerplanar, as
shown by Theorem 10.1.
or 2 occur, then G contains all back edges from the input graph G between v and
descendants of c.
P ro o f. If the Walkdown embeds all back edges between and descendants of c, then
the resulting partial embedding remains outerplanar due to maintenance of Properties
10.1 (all vertices are externally active) and 3.2 (active vertices are maintained on the
external face). Thus, we focus on the conditions under which the Walkdown fails
to embed one or more back edges between and descendants of c. Note that it
is weU-known (e.g., see [59]) that outerplanarity is obstructed by homeomorphs and
hence minors of ÜC2 , 3 and K 4 .
If the Walkdown returns with a non-empty stack (Condition 1), then edge con
traction and deletion can be used on the embedding structure G, along with the
addition of certain unembedded edges represented in G as vertex activity, to produce
the non-outerplanarity minor A appearing in Figure 10.1. Thus, the input graph is
not outerplanar since Figure 10.1 is a
If the Walkdown returns with an empty stack (Condition 2) and there is a
u; candidate with a pertinent child biconnected component, then edge contraction
and deletion can be used on the embedding structure G, along with the addition
of certain unembedded edges represented in G as vertex activity, to produce the
non-outerplanarity minor B appearing in Figure 10.2. Thus, the input graph is not
outerplanar since Figure 10.2 is a
151
z^
blocking x-y path. If there is a blocking x-y path, then the input graph contains a
minor and is therefore not outerplanar. If there is no x-y path, then the w candidate
must have a pertinent child biconnected component, so the input graph contains a
ATg 3 minor and is therefore not outerplanar. □
Procedure: IsolateOuterplanarityObstruction
this: Embedding structure G in the outerplanar embedding invariant state
in: The input graph G
out: Embedding structure G in the non-planarity minor found state
P ro o f. Much of the proof follows from Theorem 10.1. The edge (z, y) in minor
E is marked in Line 9. Line 10 marks the cycle (r, . . . , z, . . . , w, . . . , . . . , r)
in minor A, or the cycle (u, . . . , z, . . . , w, . . . , y, . . . , u) for minors B and E.
Line 11 has no meaningful eSect except for minor A, where it marks the tree path
corresponding to the edge (%;,r). The combined action of Lines 12 and 14 handle the
path in (7 corresponding to (u, w) in minors A and E, or the path (r, . . . , z, . . . ,
w). Since the biconnected components are also merged, eliminating root copies, the
correspondence with the minors depicted in Figures 10.1, 1 0 .2 and 10.3 is complete,
so the procedure completes the isolation of an outerplanarity obstruction by simply
removing the unmarked vertices and edges. O
This chapter extends the theoretical framework for planarity and outerplanarity cre
ated in the prior chapters of this dissertation to solve the problems of searching for
jjCg a and homeomorphs in a graph, and recognition of iiTg^a-less and jjCg^-less
graphs (i.e. graphs having no or homeomorph, respectively). Section 1 1 .1
presents a simple 0 (n ) search algorithm for ^^^2 , 3 homeomorphs, and Section 11.2
presents a simple 0 (n ) search algorithm for homeomorphs. Prior linear time
algorithms for these problems are due to Asano [4] and Fellows and Kaschube [20].
w
(a) (b)
w
(C) (d)
Thus, consider the case in which the z-%/ path (a single edge) is attached directly
to a; and %/. If any other vertex ^ is on the lower external face path (z, . . . , w, . . . ,
y), then a ^ 2 ,3 homeomorph can be isolated according to Figure 11.1(b) (note the
symmetric case of having z along the lower external face path between w and y).
Thus, w must be the only vertex along the lower external face path, and we
already know that the connection from w to n must be an edge (otherwise, non-
outerplanarity minor B). Since we also know that z and are direct neighbors of
each other and of t;, the vertices n, z, and w form a clique. If z or y can be
connected to an ancestor u of u by zero or more separated biconnected components
plus an unembedded back edge, then a homeomorph can be isolated according
to Figure 11.1(c) (note symmetric case of a connection from to u). If tu can be
connected to an ancestor u of u by zero or more separated biconnected components
plus an unembedded back edge, then a Ü'2 , 3 homeomorph can be isolated according
to Figure 11.1(d).
Finally, if none of the above conditions are met, then every path in G between
vertices in the DFS subtree rooted by c (i.e. z, y and tu) and the ancestors of v
(if any) and descendants of v not in Tc (if any) contains v. Thus, z, y and w are not
in any 7 ^2 , 3 homeomorph that may be in the input graph. □
T h eo rem 11.3 Giuen o simple undirected graph G with n vertices, o subgraph home-
omotphic to if 2,3 can he /bund or shown not to ezist in G in 0 (n ) time.
Let tfz; Uy and denote the ancestors of u with the least DPI having an external
connection to z, y and to, respectively. Let tt^wn and tfmaz denote the minimum and
maximum, respectively, of Ux-, Uy and Uw Let Tc denote the DFS subtree with root
c (the child of in the root edge of B), and let P denote the path {v, . . . , Umm)-
Consider the bridges of G with respect to path f . The 2^-bridge contains the vertices
in 2^ (plus the points of connection to f ) . Let denote the set of all bridges of G
with respect to f except the l^bridge. A bridge in atmddZes the vertex Umw if
the bridge attaches to ancestors and descendants of «moz in f . Let denote the
set of all bridges of G with respect to the subgraph of G containing the vertices of
F and of the biconnected component B. Aside from the bridges of Pp, the set Pp+b
contains four important bridges; the Plg-bridge containing the vertices of forest Fx
(plus X and one or more ancestors of v ) , the F^-bridge containing the vertices of forest
Fy (plus y and one or more ancestors of v ) , the F^-bridge containing the vertices of
forest Fy, (plus w and one or more ancestors of v ) , and the /^-bridge containing the
vertices of forest fy, (plus w and v) .
T h eorem 11.5 In the planarity testing algorithm, if the Walkdown fails to embed
a back edge to a descendant of c of the biconnected component B with root then
either a homeomorph can be found based on B , or the homeomorph based
on F con pfonorized remownp <Ae in(emoJ connecfiona Wween u ond to ond
repZocing JB unÀ (he cpcle z, w, p,
P ro of. Non-planarity minor E has a number of additional tests that can result in the
selection of non-planarity minors Ei to E 4 , each of which isolates a Fg g homeomorph.
Therefore, we focus on the conditions under which minor E 5 is selected. In minor Eg,
the w candidate is externally active, the highest x-y path has points of attachment
equal to z and p, and the external connections from z, p and w to ancestors of u have
161
been selected and at least two are equal and not ancestors of the third.
Cose 1 : If there is any pertinent or externally active vertex other than w, a;
and y along the external face path (z, w, of .B, then a ^ ^ ,3 homeomorph
can be isolated by non-planarity Minor Ei_
Coae ;8 : If there exists any (low) z-y path in B with a point of attachment
Pg z or Py ^ p, then a homeomorph can be isolated by non-planarity minor
E4 .
Ciwe J : If the a;-p path in B contains a single endpoint z of a second path p of the
form (w ,... ;z); where all vertices in the path (except w) are embedded inside B, then
a homeomorph can be isolated by the non-planarity minor E@depicted in Figure
11.2. This minor is symmetric to non-planarity minor D. The paths represented by
edges (u,t;), (T,w) and (w,p) are not needed in the homeomorph.
This concludes the cases for which a %g,g homeomorph can be identihed based
on B, and we now turn to proving that sufScient conditions have been established to
warrant planarizing the FTg homeomorph that has been encountered by removing the
internal connections between u and w and replacing B with a cycle r , w, y,
The /^-bridge of is planar and connects only to u and w. Thus, since
163
every path exiting the /^-bridge must contain n or w, the /u,-bridge can be reduced
to a single edge (u, tu) due to Theorem 11.4. In fact, in a triconnected component, the
internal connections between and w would already be represented by a single edge.
By the same arguments, the z-y path in B can be reduced to a single edge (z,y) due
to the failure of the conditions in Cases 2 and 3 and the conditions that resulted in
choosing non-planarity minor Eg. Likewise, B can be reduced to a consisting of
the cycle z, w, y, plus the edges (u,w) and (%,y), based solely on the failure
of the conditions in Cases 1 to 3, along with the conditions which resulted in choosing
minor Eg. In a triconnected component, the fEulure of the conditions in the six cases
above guarantees that B is isomorphic to Æ4 .
To complete the discussion of the bridges in ^p+b but not in ^p, we must
consider three possible trivial bridges, direct back edges from x, y and w to ancestors
of V, and three possible non-trivial bridges, the F^-bridge, the f^-bridge, and the
f^-bridge. A high bridge is a bridge of that attaches to one of T, g or w and
at least one ancestor of u^ax- A low bridge is a bridge of Pp+b that attaches to one
of X, y or w and only Umax- Due to the failure of the condition in Case 4, none of
the six possible bridges listed above attaches to an ancestor of v that is descendant
to Mmpz- Moreover, by virtue of having selected minor Eg, only one of z, g or w can
have a trivial or non-tiivial high bridge, and the remaining bridges attached to the
other two descendants of w in B must attach only to Umax-
For each non-trivial low bridge, every path leading into the bridge from a vertex
in B must contain «mw or the single point of attachment of the bridge to B (namely,
T, g or w). Thus, the image vertices of any homeomorph involving the bridge
must be entirely within the bridge, and the homeomorph is maintained under re-
ductions of B that maintain a path from Umai th r o u ^ u to the point of attachment of
the bridge to B. The trivial low bridges are of little interest except that, if they exist,
then they directly make the desired path connection for the corresponding non-trivial
low bridge. In a triconnected component, the low bridges are trivial (represented by
a single edge).
If there is a non-trivial high bridge, then due to the failure of the conditions in
164
Cases 5 and 6 , there are no paths from vertices in the bridge to vertices in B that
do not include either Umoz or the single point of attachment of the bridge to B. The
corresponding trivial bridge, if it exists, does not aSect this argument. Thus, any
homeomorph of the input graph that includes image vertices in the high bridge
is cut oE at Umoz and the single point of attachment of the bridge to B such that the
homeomorph is preserved under reductions of B that maintain a path 6 om Umaz
to the point of attachment of the high bridge to B. In a triconnected component, the
high bridges are represented by a single edge to «maz-
Hence, we are left to consider the non-straddling bridges of /3p. A bridge of
)8 p attached to the path (%;, . . . , Umaz) can oidy connect to vertices of B by paths
containing u or tfmaz, so any homeomorph of the input graph that includes
image vertices from such a bridge is cut off at Umax and v from including more than
a path through B leading from v through any descendant of v and back up to Umax-
In a triconnected component, the path P is represented by a single edge from v to
Umax such that the entire input graph is isomorphic to and thus contains no g
homeomorph.
Finally, any bridge of attached to the path (umaz, • ■■, «mm) can only con
nect to B by paths passing through Umax and the vertex of B {x, y or w) with an
external connection to an ancestor of Umax- Once again, any ATg g homeomorph with
image vertices in such a bridge is maintained under a reduction of B provided that
a path from Umax through v to the point of attachment of the high bridge to B.
For triconnected components, these bridges are represented by the same edge that
represents the high bridges.
As a summative result, any homeomorph of the input graph has at most
one image vertex in B, which is shared by the bridge(s) representing the Ag,g home
omorph, such that B provides at most one path to the Ag g homeomorph. Since the
cycle z, w, %/, maintains a path in B from to each of z, y and w, the
aforementioned edges («, w) and (z, %/) can be deleted, restoring the planarity of the
portion of the input graph represented by the embedding structure such that it can
continue the search for Ag g homeomorphs elsewhere in the graph. O
166
Exploiting Theorem 11.5 to create a linear time fCg 3 search algorithm is remark
ably easy because only a few additional tests are needed beyond those that initially
select non-planarity minor E 5 . If any test succeeds, then a Æ 3 3 homeomorph can be
isolated. If all of the tests fail on a triconnected component, then the triconnected
component is isomorphic to and therefore contains no homeomorph. If the
input graph is not triconnected, then linear time performance can be maintained in
most cases, as described below.
Even with initialization restricted to the biconnected component B with root
v^, the normal tests in the Kuratowski subgraph isolator for minors A to D (in Lines
3 to 17 of procedure ChooselYpeOfNonplanarityMinor, Figure 9.3) and to
(in Lines 1 to 5 of procedure IsolateMinorE, Figure 9.17) can be performed without
diSculty because they are only based on information stored in the vertex structures
and edge records that represent B. If the result of the tests is minor E 5 , then the
case logic of Theorem 11.5 must be applied.
The test for Case 1 can be implemented using a slightly modified form of pro
cedure FindExtActivityBelowXYPath from Section 9.2, which operates identically
except for skipping w.
The test for Case 2 of Theorem 11.5 can be implemented with the help of a
slightly modified form of procedure MarkHighestXYPath from Section 9.3, which
operates identically except for returning with = py — nil if w is encountered while
searching for an path. To test whether there exists an z-y path with points of
attachment below T or %/, we invoke the modified procedure twice. First, we hide the
internal edges of T, then invoke the procedure. If it succeeds, then we have an z-%/
path with a point of attachment Px below x. If it fails, then we restore the edges of x,
then hide the internal edges of y and invoke the procedure again. If it succeeds, then
we have an z-y path with a point of attachment p , below p. Otherwise, we restore
the edges of y and try the next case.
The test for Case 3 of Theorem 11.5 can be implemented as follows. First, hide
166
all internal edges of vertices along the external face path (z, . . . , w, . . . , y) except
those of in and the two edges that attach z and to the path. In this way, a walk
of the proper face that starts with the path (in, . . . , r ) returns to in before reaching
y if and only if the internal in-z path required in minor Eg exists. The procedure
for this is similar to procedure MarkVtoZPath &om Section 9.3, with the principal
exception that it must ignore paths whose points of attachment are both on the x-y
path (in a fashion similar to procedure MarkHighestXYPath of Section 9.3).
The test for Case 4 of Theorem 11.5 can be performed by examining the vertices
along the path hrom n to Umaz, excluding the endpoints. It is helpful to associate with
each vertex the maximum numbered DFS descendant, which can easily be computed
during preprocessing. For each vertex z on the path (n, . . . , Umw) and distinct from
the endpoints, examine the back edges of z to see whether any lead to the subtrees
rooted by z, or w. For a back edge from z to a descendant dg, the subtree rooted by
a vertex % contains d, if is in the range DFI(z) to MaxDescendant (z). Note that
two of X , y and w descend from the third, but once we know that a ATg a homeomorph
exists, it takes little extra effort to resolve whether d^ is x, y, w or which of those has
the separated child biconnected component leading to d^.
The tests for Cases 5 and 6 of Theorem 11.5 are implemented by traversing the
path (i;,. . . , Umoz)- At each vertex z, we test for a connection to an ancestor of Umw
by taking the minimum of the least Ancestor of z and the least lowpoint of the DFS
children of z, excluding the DFS child of z that is equal to or an ancestor of the child
c in the root edge with (i.e. use the second element of the separatedDFSChildList
of z if it exists and if the first element is the child to be excluded). If the computed
minimum is less than the DFI of Umoz, then a straddling bridge has been found.
Proof. The fact that a FTg g-less graph has 3n — 5 or fewer edges is a result of
Asano [4]. Thus, our data structure limit to hn edges with A; > 3 is applicable. The
triconnected components of a graph can be obtained in 0 (n ) time [28, 56]. The cost
167
BemorA; If the input graph is not triconnected, but only a predetermined constant
number of K 5 homeomorphs use vertices along the path (v, Umax), then 0 {n)
performance can be maintained by reducing B to a constant size if a ^ 3 ,3 homeomorph
is not found when a Condition 2 Walkdown failure occurs on B. Since it is easy to
detect whether edges or vertices are visited more than a predetermined constant
number of times when processing an input graph, the need to isolate triconnected
components can be obviated when applying the A 3 , 3 isolator in contexts where a
graph cannot contain too many obstructions to planarity.
168
This dissertation provides new linear time algorithms for planarity testing, planar
embedding and Kuratowski subgraph isolation. These are the three fundamental
combinatorial algorithms relating to graph planarity, for with them one can both
determine whether a graph is planar and obtain a simple ‘certificate’ showing why
the graph was deemed planar or non-planar. This dissertation also contributes new
linear time algorithms to solve the corresponding problems for onterplanarity, as well
as new linear time algorithms that search for and homeomorphs. StQ, there
exists a plethora of future research opportunities, due in equal parts to the maturity
of this field of study and to the relative simplicity of the new algorithms and data
structures in this dissertation. This chapter discusses a number of these possibilities.
simple augmentations that would result in an alternative, possibly linear time, ap
proach to triconnectivity. Our data structure maintains the biconnected components
that develop as edges are added from the input graph to the embedding. Our al
gorithm embeds each back edge e individually, and when the edge joins vertices
in separate biconnected components, two or more biconnected components may be
merged such that, together with e, a single biconnected component results. Prior to
the merge, a biconnected component is separated from its parent by a cut vertex r.
When a biconnected component B is merged to form a larger biconnected component,
jB is attached ly a separation pair consisting of the vertex r and some other vertex w,
which either was a cut vertex to a child biconnected component or is the descendant
endpoint of the back edge e. An augmeptation to our data structures would typi
cally not need to maintain information about B if no other back edge results in the
attachment of an edge or child biconnected component along the external face path
between w and r.
However, there are some additional cases to consider. For instance, a bicon
nected component B rooted by vertex r and containing a vertex w is merged into the
biconnected component containing the current vertex v when the algorithm embeds
the back edge (v, w), but r and w are not the only resulting separation pair. The pair
V and r are also a separation pair, and this does not change if the embedding of more
back edges from u results in attachment of edges or child biconnected components
along the external face path between w and r.
projective plane, it is exceedingly complex [64]. Myrvold and Roth [48] created a
simpler algorithm exploiting some of the same properties, though it does not achieve
linear time. Thus, a projective planar embedding algorithm that is both relatively
simple and lin e^ time is wanting.
A projective planar embedding less the edges that pass through antipodal point
identifications is a planar embedding in which all endpoints of the edges so removed
are on the external face. Our new algorithms and data structures are specially suited
to maintaining the external face and embedding edges one at a time. Projective
planarity therefore appears to be a promising area of future research involving the new
algorithms in this dissertation. Given that there are a limited number of embeddings
of a Kuratowski subgraph [46] and that the adjacency lists can be reordered such
that edges which must pass through antipodal point identifications are back edges,
the solution to this problem may rest in the ability to find all of the edges to remove
and maintaining their endpoints on the external face.
B ibliography
[1] K. Appel and W. Haken. Every planar map is four colorable. Part I.
Discharging. TZfinow JonmoJ o/Moÿhemotica, 21:429-490, 1977.
[3] K. Appel; W. Haken, and J. Koch. Every planar map is four colorable. Part H.
Redudbility. Rfmow Joumof o/Mothemotica, 21:491-567, 1977.
[7] K. S. Booth and G. S. Lueker. Testing for the consecutive ones property,
interval graphs, and graph planarity using PQ -tree algorithms. Journal of
Computer and Systems Sciences, 13:335-379, 1976.
[8 ] J. Boyer and W. Myrvold. Stop minding your P ’s and Q’s: A simplified 0{n)
planar embedding algorithm, froceedmps Tîenth AnnuoJ AGAf-&L4M
Symposium on Discrete Algorithms, pages 140-146, 1999.
[10] J. Cai. Counting embeddings of planar graphs using DFS trees. SIAM Journal
of Discrete Mathematics, 6(3):335-352, 1993.
175
176
[15] N. Deo. Note on HopcroA and Tarjan planarity algorithm. Jowmol o/ the
Négociation /o r Computing Machinery, 23:74-75, 1976.
[16] J. A. EUis, M. Mata, and G. MeicGillivray. A linear time algorithm for longest
(a, t)-paths in weighted outerplanar graphs, if^ormation froceeainy Z^ettera,
32:199-204, 1989.
[21] T. Fee and J. Provan. Delta^wye transformations and the efficient reduction of
two-terminal planar graphs. Operations Research, 41(3):572-582, 1993.
[24] Alan Gibbons. Algorithmic Graph Theory. Cambridge University Press, 1985.
[31] J. Hopcroft and J. Wong. Linear time algorithm for isomorphism on planar
graphs, f roceedmgs 0 / tAe vlnnuol ACM S'prnpoaium on Theory 0 /
Compn^iny, pages 172-184, 1974.
[32] R. Jayakumar, K. Thulasiraman, and M. N. S. Swamy. Planar embedding:
Linear-time algorithms for vertex placement and edge ordering. IEEE
Tbanaocfiong on Circnits and S^yatems, 35(3):334-344,1988.
[37] A. Kezdy and S. McGuinness. Sequential and parallel algorithms to find a ifg
minor. Proceedings of the Third Annual ACM-SIAM Symposium on Discrete
Algorithms, pages 345-356, 1992.
[38] P. Klein and J. Reif. An efficient parallel algorithm for planarity. 27*^ Annual
IEEE Symposium on Foundations of Computer Science, pages 465-477, 1986.
[51] F. Rubin. An improved algorithm for testing the planarity of a graph. IEEE
Transactions on Computers, c-24(2): 113-121, 1975.
[52] W.-K. Shih and W.-L. Hsu. A new planarity test. Theoretical Computer
5"c*ence, 223:179-191, 1999.
[53] R. E. Tarjan. Depth-first search and linear graph algorithms. SIAM Journal of
Computing, 1(2); 146-160, 1972.
[55] W. T. Tutte. Matroids and graphs. Trans. Amer. Math. Soc., 88:144-174, 1958.
[57] K.P. Vo, W. Dick, and S. G. Williamson. Ranking and unranking planar
embeddings. Tineor ond Mn&ZZineor AZyehno, 18:35-65, 1985.
[58] K. Wagner. Uber einer eigenschaft der ebener complexe. MoZh. Ann.,
14:570-590, 1937.
[59] D. B. West. TnZrodncZZon Zo Groph Theory. Prentice Hall, Inc., Upper Saddle
River, NJ, 1996.
179