Algorithmica (2006) 44: 67–100 DOI: 10.1007/s00453-005-1149-y
Algorithmica © 2005 Springer Science+Business Media, Inc.
Drawing Planar Graphs Symmetrically, III: Oneconnected Planar Graphs1 Seok-Hee Hong2 and Peter Eades2 Abstract. Symmetry is one of the most important aesthetic criteria in graph drawing because it reveals structure in the graph. This paper discusses symmetric drawings of oneconnected planar graphs. More specifically, we discuss planar (geometric) automorphisms, that is, automorphisms of a graph G that can be represented as symmetries of a planar drawing of G. Finding planar automorphisms is the first and most difficult step in constructing planar symmetric drawings of graphs. The problem of determining whether a given graph has a nontrivial geometric automorphism is NP-complete for general graphs. The two previous papers in this series have discussed the problem of drawing planar graphs with a maximum number of symmetries, for the restricted cases where the graph is triconnected and biconnected. This paper extends the previous results to cover planar graphs that are oneconnected. We present a linear time algorithm for drawing oneconnected planar graphs with a maximum number of symmetries. Key Words. Graph drawing, Symmetry, Planar geometric automorphisms, Planar graphs.
1. Introduction. Graph drawing is constructing a visually informative drawing of an abstract graph in two or three dimensions. Symmetry is one of the most important aesthetic criteria that represent the structure and properties of a graph visually [30], [35]. Also, a symmetric drawing of a graph enables an understanding of the entire graph to be built up from that of a smaller subgraph [30]. Symmetric drawings of a graph G are clearly related to the automorphisms of G (the relationship is discussed below), and algorithms for constructing symmetric drawings in general have two steps: 1. Find the “appropriate” automorphisms. 2. Draw the graph displaying these automorphisms as symmetries. Section 2.3 of this paper defines the “geometric automorphisms” of a graph, which are the “appropriate” automorphisms mentioned in the first step above. Intuitively, an automorphism of a graph G is “geometric” if it can be represented as a symmetry of a drawing of G. The concept of geometric automorphism can be refined to the concept of “planar geometric automorphism” (“planar automorphism”, in short). We describe an algorithm for finding planar automorphisms. The second step, constructing a drawing which displays the planar geometric automorphisms, is much easier than the first, and is briefly described at the end of this paper. 1
This research has been supported by a grant from the Australian Research Council. National ICT Australia; and School of Information Technologies, University of Sydney, Sydney, NSW 2006, Australia. {shhong,peter}@it.usyd.edu.au. 2
Received February 12, 2004; revised September 24, 2004. Communicated by T. Nishizeki. Online publication June 14, 2005.
68
S.-H. Hong and P. Eades
We should note that the problem of finding a planar automorphism is related to, but not equivalent to, the problem of finding automorphisms. The problem of determining whether a graph has a nontrivial automorphism is automorphism complete [34]. However, the problem of determining whether a graph has a nontrivial geometric automorphism is NP-complete [29]–[31]; it is probably strictly harder than graph automorphism. A group-theoretic characterization of symmetric drawing was given by Eades and Lin [9] and Lin [27]. Heuristics for constructing symmetric drawings of general graphs have been suggested by Lipton et al. [28] and de Fraysseix [11]. Exact algorithms are devised based on an integer linear programming approach by Buchheim and Junger [5] and a group-theoretic approach by Abelson et al. [1]. For restricted classes of graphs, there are polynomial time algorithms for constructing symmetric drawings. For example, Manning and Atallah present algorithms for finding geometric symmetries in trees [32], outerplanar graphs [33] and embedded planar graphs [30]; Hong et al. give algorithms for finding a maximum number of symmetries in series-parallel digraphs [19], [20]. Chen et al. [7] have introduced concepts of partial symmetry of graphs. Buchheim and Junger [6] introduced a similar concept of fuzzy symmetry of graphs. Recently, symmetric drawing in three dimensions has been considered [13]–[15]; see also [3]. The problem of determining whether a graph can be drawn symmetrically in three dimensions is NP-complete [13]. Hong and Eades present a linear time algorithm for constructing maximally symmetric drawings of trees and series-parallel digraphs in three dimensions [14], [15]. This paper is the third in a series that gives symmetric drawing algorithms for planar graphs. Triconnected planar graphs are dealt with in [21], and graphs which are biconnected or disconnected are dealt with in [16] and [17]. This paper presents a linear time algorithm for drawing oneconnected planar graphs with a maximum number of symmetries. A quadratic time algorithm for finding planar automorphisms in planar graphs has appeared earlier [18], [12]. Here we present a linear time algorithm. The following theorem summarizes our main result. THEOREM 1. There is a linear time algorithm that constructs maximally symmetric planar drawings of oneconnected planar graphs, with straight line edges. The proof of Theorem 1 consists of two steps: a symmetry finding algorithm is outlined in Section 3 and elaborated in Sections 4 and 5, and a symmetric drawing algorithm in Section 6. Outputs of the algorithm are illustrated in Figure 1. Figure 1(a) shows three rotational symmetries and Figure 1(b) displays four rotational and four axial symmetries (note that we count the identity as a rotational symmetry). Figure 1(c) shows one axial symmetry. In the next section we review the background: graph drawing, automorphisms of graphs, symmetries of drawings of graphs and the concept of planar automorphisms. Section 3 outlines an algorithm for finding planar automorphisms of oneconnected planar graphs and describes the basic approach of our main algorithm. In Sections 4 and 5 we describe each of the subroutines in turn. In Section 6 we describe the symmetric drawing algorithm and Section 7 concludes.
Drawing Planar Graphs Symmetrically, III
(a)
69
(b)
(c)
Fig. 1. Example output of the algorithm.
2. Background 2.1. Graph Drawing. If G = (V, E) is a graph then a drawing of G consists of a distinct location p(v) for each vertex v ∈ V and a curve c(e) for each edge e = (u, v) ∈ E such that the endpoints of c(e) are p(u) and p(v). The drawing is planar if for every pair e, f of distinct edges that do not share a vertex, c(e) and c( f ) do not intersect except possibly at their endpoints. A graph is planar if it admits a planar drawing. A planar drawing of a graph divides the plane into regions called faces. The incidence relationship between vertices, faces and edges is an embedding, or topological embedding of the graph. A number of algorithms for constructing embeddings and drawings of planar graphs are described in [8]. 2.2. Automorphisms and Isomorphism Partitions. An isomorphism between two graphs G 1 = (V1 , E 1 ) and G 2 = (V2 , E 2 ) is a one–one function ϕ from V1 onto V2 which preserves adjacency; that is, (u, v) ∈ E 1 if and only if (ϕ(u), ϕ(v)) ∈ E 2 . If G 1 = G 2 then ϕ is an automorphism. The set of automorphisms of a graph forms a group, and any subgroup of this group is an automorphism group. The isomorphism problem is to test whether there is an isomorphism between two given graphs G 1 and G 2 . The automorphism problem is to test whether there is a nontrivial automorphism on a given graph. Suppose that two graphs G 1 and G 2 have vertices labelled by λ, that is, each vertex v may have a label λ(v). Note that a vertex may or may not have a label. An isomorphism ϕ from G 1 to G 2 respects λ if, for each vertex v in G 1 on which λ is defined, λ is defined on ϕ(v) and λ(v) = λ(ϕ(v)). One can define the notion of an isomorphism respecting a labelling of edges in the same way (as every automorphism induces a one–one function also on the edges of the graphs). Automorphisms of a graph are permutations of the vertices, and some of the terminology of permutation groups is helpful [37]. We denote the identity permutation by I .
70
S.-H. Hong and P. Eades
The group generated by ϕ1 , ϕ2 , . . . , ϕk is denoted by ϕ1 , ϕ2 , . . . , ϕk . Suppose that a permutation group A acts on a set V . We say that ϕ ∈ A fixes v ∈ V if ϕ(v) = v; if ϕ fixes v for every ϕ ∈ A then A fixes v. If V ⊆ V and ϕ(v ) ∈ V for all v ∈ V then ϕ fixes V (setwise). A subset V of V is an orbit of A if, for each u, v ∈ V , there is ϕ ∈ A such that ϕ(u) = v, and V does not contain a nonempty subset with this property. An algorithm of Hopcroft and Tarjan [22]–[24] may be used to compute isomorphisms of planar graphs. It proceeds by reducing the problem to the triconnected case; we adopt a similar approach. The algorithm uses O(n log n) time. Later, Hopcroft and Wong [26], [38] reduced the time complexity to linear, albeit with a large constant. Fontet [10] presents another linear time algorithm. These methods all produce “isomorphism partitions” as part of the isomorphism test; essentially the vertex set is partitioned into the orbits of the automorphism group. This can be used in the following way: suppose that G = {G 1 , G 2 , . . . , G k } is a set of planar graphs. Then we can partition G into sets of isomorphic graphs; in other words, we can assign a positive integer code(G i ) to each G i ∈ G with 1 ≤ code(G i ) ≤ k, such that code(G i ) = code(G j ) if and only if G i is isomorphic to G j . The isomorphism partition is useful for drawing graphs symmetrically; intuitively, if G i and G j are subgraphs of G such that G i is isomorphic to G j , then we can draw G i congruently to G j . THEOREM 2 [24], [26]. Suppose that G 1 , G 2 , . . . , G k are planar graphs. Then in linear time we can compute positive integers code(G 1 ), code(G 2 ), . . . , code(G k ) such that code(G i ) = code(G j ) if and only if G i is isomorphic to G j . The isomorphism partition algorithm works even if the vertices and edges are labelled and we ask for isomorphisms that respect the labels. This is helpful in forcing an isomorphism or automorphism to map specific vertices to specific vertices. For example, suppose that G 1 , G 2 , . . . , G k are planar graphs, and pi is a designated vertex in G i for each i. By labelling each pi with the same value label, we can compute positive integers code p (G 1 ), code p (G 2 ), . . . , code p (G k ) such that code p (G i ) = code p (G j ) if and only if there is an isomorphism from G i to G j that maps pi to p j . 2.3. Symmetries and Geometric Automorphisms. It is important to use a rigorous model for the intuitive concept of symmetry display. The model below is derived from those introduced by Manning et al. [30], [32], [33] and Lin [9], [27]. A symmetry of a set S of points in the plane (such as a two-dimensional graph drawing) is an isometry of the plane that maps S to itself. The set of symmetries of S forms a group called the symmetry group of S. A symmetry σ of a drawing D of a graph G induces an automorphism of G, in that the restriction of σ to the points representing vertices of G is an automorphism of G. A drawing D of a graph G displays an automorphism ϕ of G if there is a symmetry σ of D which induces ϕ. The symmetry group of a graph drawing induces an automorphism group of the graph. An automorphism group A of a graph G is a geometric automorphism group if there is a drawing of G which displays every element of A. To understand the difference between automorphisms and geometric automorphisms, consider Figure 2 (from [9] and [27]). Figure 2(a) shows the graph K 2,3 . The permutation (123)(45) is an automorphism but not a geometric automorphism; in fact the automor-
Drawing Planar Graphs Symmetrically, III 1 11 00 00 11 00 11
2 1 0 0 1 0 1
3 1 0 0 1 0 1 11 00 00 11 00 11
11 00 00 11 00 11
5
4 (a)
71 1 0 0 1 0 1
1 0 0 1 0 1
1 0 0 1 0 1
1 0 0 1 0 1
1 0 0 1
1 0 0 1 0 1
(b)
1 0 1 0
11 00 00 11 00 11
(c)
Fig. 2. Three drawings with different symmetries.
phism group of K 2,3 has size 12, but the only nontrivial geometric automorphism is the one displayed in Figure 2(a), that is, (13)(45). A nontrivial symmetry of a finite set of points in the plane is either a rotation about a point or a reflection about a line. A geometric automorphism is a rotational automorphism (respectively axial automorphism) if it is induced by a rotation (respectively reflection)(see [9] and [27]). The size of an automorphism group is the number of elements of the group. The order of an automorphism α is the smallest positive integer k such that α k equals the identity I . From [9] and [27], one can deduce that a nontrivial geometric automorphism group is one of three kinds: 1. a group of size 2 generated by an axial automorphism; 2. a cyclic group of size k generated by a rotational automorphism; 3. a dihedral group of size 2k generated by a rotational automorphism of order k and an axial automorphism. For example, Figure 1(a) displays a cyclic group of size 3 and Figure 1(b) displays a dihedral group of size 8. Figure 1(c) displays a group of size 2 generated by an axial automorphism. The way in which geometric automorphism groups can be combined is not as simple as for automorphism groups. It is trivial to see that the union of two automorphism groups generates an automorphism group, and there is a single maximal automorphism group. However, the union of two geometric automorphism groups does not necessarily generate a geometric automorphism group. This is shown by Figure 2(b) and (c). The graph K 4 has a geometric automorphism group of size 8 (Figure 2(b)), and a geometric automorphism group of size 6 (Figure 2(c)). However, these groups do not combine to make a geometric automorphism group; each is maximal in that it cannot be made larger. In fact, Figure 2(b) displays eight automorphisms, and the maximum size geometric automorphism group of K 4 has size 8. Our aim is to find drawings with a maximum number of symmetries, and this means finding a maximum size geometric automorphism group. Thus the central problem in drawing graphs symmetrically is as follows: GEOMETRIC AUTOMORPHISM PROBLEM Input: A graph G. Output: A maximum size geometric automorphism group of G. It has been shown [29], [30] that the Geometric Automorphism Problem is NP-hard.
72
S.-H. Hong and P. Eades
2.4. Planar Automorphisms. The concepts in Section 2.3 can be extended to planar drawings: a geometric automorphism ϕ of a graph G is planar if there is a planar drawing D of G which displays ϕ, and an automorphism group A is a planar (geometric) automorphism group if there is a planar drawing which displays A. Not every geometric automorphism is planar. For example, the rotational automorphism displayed in Figure 2(b) is not planar; the maximum size planar automorphism group of K 4 , displayed in Figure 2(c), has size 6. The central problem of this paper is to find a planar geometric automorphism group of maximum size. PLANAR AUTOMORPHISM PROBLEM Input: A planar graph G. Output: A maximum size planar automorphism group of G. Previous research on the Planar Automorphism Problem has concentrated on subclasses of planar graphs. It has been solved for trees [32], [30] and series-parallel graphs [20]. An algorithm of Manning [30] finds planar automorphisms of a fixed planar embedding (with a fixed outside face) in linear time. In general, a oneconnected planar graph can have an exponential number of planar embeddings, and it is not clear how to use Manning’s algorithm for planar graphs in general. Our aim is to give an efficient algorithm for planar graphs in general. For this, we use connectivity to divide the Planar Automorphism Problem into cases. 1. 2. 3. 4.
Triconnected graphs: a linear time algorithm is presented in [21]. Biconnected graphs: a linear time algorithm is presented in [16]. Oneconnected graphs: this is the topic of this paper. Disconnected graphs: a linear time algorithm is presented in [17].
For the triconnected, biconnected, oneconnected and disconnected cases, we have developed algorithms that take for input a graph with vertices and edges possibly labelled, and return planar automorphism groups for the graph. Each of these cases relies on the result of the previous case, using algorithms to divide a higher connectivity graph into lower connectivity subgraphs [2], [25]. 3. Outline of the Symmetry Finding Algorithm. In this section we give a symmetry finding algorithm for a oneconnected planar graph G. The algorithm is similar to the biconnected case: we use a reduction approach. However, in this case, we take the block-cut vertex tree (BC tree) [4]. Firstly we review the definition of the BC tree. Each connected graph G has a unique BC tree, which has a B-node for each block (biconnected component) of G and a C-node for each cut vertex of G. There is an edge between a C-node c and a B-node B if and only if c belongs to the corresponding block of B in G. The BC tree can be constructed in linear time [36]. A center of a tree is a vertex whose maximum distance from a leaf is minimized. Note that in the BC tree, there is only one center (since every leaf is a B-node). The center of the BC tree may be a block or a cut vertex. We consider the BC tree as a rooted tree, rooted at the center.
Drawing Planar Graphs Symmetrically, III
73 u1
B3
v1
v2
v3
v4
u2
u3
u4
u5
c2 c5 B6
c3
c1 B2
B4
B1
c6 B7
c4 B5
v5
v6
u6
u7
(b)
(a)
Fig. 3. Example of a BC tree.
Suppose that G is a connected graph and u is a node in the BC tree of G. If u is a leaf, then let G + (u) denote the block represented by u. If u has children v1 , v2 , . . . , vk then G + (u) denotes the block or cut vertex represented by u together with G + (vi ) for each i = 1, 2, . . . , k. Informally, G + (u) is the subgraph of G represented by the descendants of u in the BC tree. It is sometimes convenient to blur the distinction between nodes in the BC tree and the blocks and cut vertices that they represent. For example, we can write “G + (B)” instead of G + (u) where u is the node in the BC tree that represents the block B. If the nonroot node u of the BC tree represents a block B and the parent v of u represents the cut vertex p in the BC tree, then p is the parent cut vertex of B, and B is a child block of p. Similarly, we can define parent block and child cut vertices. An example of the BC tree is illustrated in Figure 3. In this and later illustrations, a shaded polygon represents a block and a small black circle represents a cut vertex. In Figure 3(b) the node u i represents the block Bi and the node vi represents the cut vertex ci . In general, we use u or v to refer to a node (either a cut vertex or a block) in the BC tree, and use c (B) to refer a cut vertex (block) in a graph G. In a planar embedding of a oneconnected graph, the blocks and the cut vertices have some simple but important topological properties, described in the following lemma. If B is a block of a planar embedding of a graph G, then a face of B is a face of the embedding of B obtained by deleting the vertices and edges that are not in B from G. LEMMA 1. Suppose that G is a planar embedding of a connected planar graph and c is a cut vertex in G common to two blocks B1 and B2 . Then: (a) The cut vertex c is on the outside face of at least one of the blocks B1 and B2 . (b) All of B1 lies on the same face of B2 . (c) Suppose that E c is the set of edges of B1 ∪ B2 incident to c. Then the edges of B1 in E c appear consecutively around the vertex c.
74
S.-H. Hong and P. Eades
c d
B
1
e
u
f
B2
Fig. 4. Illustration of two paths.
PROOF. First consider (c). Suppose that u is a cut vertex and that there are four consecutive edges (u, c), (u, d), (u, e), (u, f ), in this clockwise order around u, such that c and e are in B1 and d and f are in B2 , as in Figure 4. Since both B1 and B2 are biconnected, there are paths from c to e in B1 and from d to f in B2 that do not use u, as in Figure 4. These two paths do not share a vertex, but must cross; this contradicts planarity. Parts (a) and (b) of the lemma follow. The reduction method proceeds from the leaves of the BC tree to the center of the BC tree level by level. At each node v of the BC tree, the algorithm computes labels for v. The labels are integers that identify some of the symmetry properties of G + (v). This reduction process stops at the root (the center of the BC tree). After the reduction process, we compute a maximum size planar automorphism group of the graph at the center, using the information encoded on the labels. The overall algorithm is thus composed of three steps. Algorithm Oneconnected Planar 1. Construct the BC tree of G and root it at the center. 2. Reduction and labelling. For each level i of the BC tree (from the lowest level to the root level): For each node v on level i, compute labels for v. 3. Compute and output a maximum size planar automorphism group of the graph, using the labels computed by reduction. After Oneconnected Planar computes the maximum size planar automorphism group, we draw the graph to display the group. The first step of Oneconnected Planar can be implemented in linear time by the algorithm of [36]. The reduction and labelling process at the second step of Oneconnected Planar is motivated by the following observation. Suppose that G is a oneconnected planar graph, and T is its BC tree. Form a graph G from G by replacing each block that corresponds to a vertex v at the maximum level of T with a single vertex. We say that G is the reduction of G. An example is illustrated in Figure 5. Note that the center of the BC tree is always fixed by any automorphism; this is why the root is chosen to be the center.
Drawing Planar Graphs Symmetrically, III
(a)
75
(b)
Fig. 5. Example of reduction: (a) a graph G and (b) the reduction G of G.
LEMMA 2. The center of the BC tree is fixed by every automorphism of the corresponding connected planar graph. Further, the reduction process preserves the planar automorphisms of the graph, as described in Lemma 3 below. LEMMA 3. Let ϕ be a planar automorphism of a oneconnected planar graph G, and suppose that G is the reduction of G. Then the restriction ϕ of ϕ to G is a planar automorphism of G . PROOF. Since ϕ is a planar automorphism of G, there is a drawing D of G which displays ϕ. One can construct a planar drawing D of G which displays ϕ , by replacing the drawings of blocks by cut vertices. It is clear that both ϕ and planarity can be preserved. Lemma 3 shows that the reduction process does not “reduce” the planar automorphism group. This is not enough; we also need to ensure that the planar automorphism group is not “increased” by reduction. This is the role of the labels, discussed in the next section. As a node v is deleted, a labelling algorithm labels the corresponding parent node. These labels are described in detail in Section 4; roughly speaking, they encode information about the deleted leaf to ensure that planar automorphisms of the labelled reduced graph extend to planar automorphisms of the original graph. The reduction process stops when it reaches the root, that is, the center of the BC tree. The center is either a block or a cut vertex. The final step of Oneconnected Planar computes the maximum size planar automorphism group at the center. Algorithms for this step are described in Section 5. The main result of this paper is the following theorem. THEOREM 3. Algorithm Oneconnected Planar computes a maximum size planar automorphism group of a oneconnected planar graph in linear time.
76
S.-H. Hong and P. Eades
The proof of Theorem 3 occupies most of the remainder of this paper. Essentially this consists of giving detailed descriptions of algorithms for each step of Oneconnected Planar; the theorem follows from Theorems 4–8 below. After the planar automorphism group is computed by Oneconnected Planar, we must draw the graph so that the drawing displays the group as symmetries. A simple linear straight-line drawing method is described in Section 6.
4. The Labels and Labelling Algorithms. We now define the labels, which play a very important role in the reduction process. The aim of labelling is to give a kind of converse to Lemma 3, and thus to compute the maximum size planar automorphism group of the original graph by computing the maximum size planar automorphism group of the labelled center. In this section we define the labels and then describe the algorithms for computing the labels. At each stage of the reduction process, labels for the leaf nodes are needed. This is because a planar automorphism group of the reduced graph overestimates a planar automorphism group of the original graph. Intuitively, rejecting planar automorphisms that do not preserve the labels, allows us to compute a planar automorphism group of the original graph exactly from the reduced graph. An example for the reduction and labelling process is illustrated in Figure 6. The original graph is shown in Figure 6(a), with blocks represented by shaded polygons and cut vertices represented by small circles. The first stage of reduction removes the leaf blocks B5 , B6 , B7 and B8 to give Figure 6(b). Information about the removed blocks is encoded in labels on the cut vertices c5 , c6 , c7 and c8 . Any automorphism of Figure 6(b) that respects the labels can be extended to a planar automorphism of Figure 6(a). The reduction process continues until just the center block B (Figure 6(c)) remains, with labelled cut vertices c1 , c2 , c3 and c4 . Testing for planar automorphisms of this labelled center block gives a precise list of planar automorphisms of the original graph. Of course, the algorithm is more complex than this example seems to indicate: for example, computation of the labels from one stage of reduction to another is a little complex (see
B5
c5 B1
B6
c B 4
B2
B8 c
c 6
c
(a)
8
c
c
2
c
B3 B7
1
B
3
7
(b)
Fig. 6. An example for the reduction process.
(c)
4
Drawing Planar Graphs Symmetrically, III
77
Sections 4.1–4.4), the center of the BC tree may be a cut vertex rather than a block, and there are some special cases (see Section 5). The heart of the reduction process is the computation of the labels. At each stage we have a node u of the BC tree and its children; we compute labels for u from its labelled children. For each u, we need to compute two labels: an “isomorphism partition label” and an “axial label”. We now define these labels. Firstly we need an isomorphism partition label IP(u). This is an integer with 1 ≤ IP(u) ≤ n, where n is the number of vertices of the graph, with the following defining property: if u 1 and u 2 are two nodes at the same level of the BC tree, then IP(u 1 ) = IP(u 2 ) if and only if there is an isomorphism ϕ from G + (u 1 ) to G + (u 2 ) such that: 1. If u 1 and u 2 represent cut vertices c1 and c2 , then ϕ(c1 ) = c2 . 2. If u 1 and u 2 represent blocks with parent cut vertices p1 and p2 , then ϕ( p1 ) = p2 . For a given level L, we denote {u ∈ L : IP(u) = } by P . Thus the isomorphism partition labels encode a partition {P : 1 ≤ ≤ n} of the nodes at the same level of the BC tree. Next we need axial labels. To help with a characterization of these labels, note that if an automorphism α is displayed by a planar drawing D, then α induces a permutation of the faces of D. We say that α fixes a face F if this induced permutation fixes F. The axial labels come in two kinds, depending on whether u represents a cut vertex or a block. They categorize axial automorphisms in terms of the number of faces that they fix. The following lemma helps in the intuition for these labels. LEMMA 4. (a) Every planar automorphism fixes the outside face. (b) If α is a planar automorphism of G that fixes a face F, then there is a drawing of G that displays α with F as the outside face. PROOF. Part (a) is trivial, and part (b) can be proved by projections that preserve symmetry. First suppose that u represents a block with parent cut vertex p; we define an axial label AB(u) as follows: 1. AB(u) = 1 if G + (u) has an axial planar automorphism that fixes p and one face incident to p. 2. AB(u) = 2 if G + (u) has an axial planar automorphism which fixes p and two faces incident to p. 3. AB(u) = 3 if G + (u) has no axial planar automorphism that fixes p and a face incident to p. Note that from Lemma 4, we can assume without loss of generality that one of the fixed faces in cases 1 and 2 above is the outside face. Examples are illustrated in Figure 7. The block in Figure 7(a) has an axial planar automorphism, displayed by a reflection in the vertical axis, that fixes its parent cut vertex p. This automorphism fixes just one face (the outside face), and so AB(u) = 1.
78
S.-H. Hong and P. Eades p
p
(a)
p
(c)
(b)
Fig. 7. Examples for (a) AB(u) = 1, (b) AB(u) = 2 and (c) AB(u) = 3.
Figure 7(b) is similar, but here AB(u) = 2 because the automorphism fixes two faces incident with p. The block in Figure 7(c) has AB(u) = 3, this is because the block has no planar automorphism that fixes p. Next suppose that u represents a cut vertex with children v1 , v2 , . . . , vk ; we define an axial label AC(u) as follows: 1. AC(u) = 0 if G + (u) has an axial planar automorphism which does not fix any G + (vi ) for any i. 2. AC(u) = 1 if (a) every axial planar automorphism of G + (u) fixes at least one G + (vi ), and (b) there is an axial planar automorphism α such that if α fixes G + (vi ) then AB(vi ) < 3, and there is at most one j such that α fixes G + (v j ) and AB(v j ) = 1. 3. AC(u) = 2 if (a) every axial planar automorphism of G + (u) fixes at least two G + (vi ) for which AB(vi ) = 1, and (b) there is an axial planar automorphism α such that if α fixes G + (vi ) then AB(vi ) < 3, and there are at most two indices j such that α fixes G + (v j ) and AB(v j ) = 1. 4. AC(u) = 3 otherwise. Examples are in Figure 8: the cases AC(u) = 0, 1, 2 and 3 are illustrated in (a), (b), (c) and (d), respectively. We see in the algorithms of the following sections that these axial labels are used when the block or cut vertex is fixed by a planar automorphism of G + ( p), where p is the parent node of u. We now describe each labelling algorithm.
(a)
(b)
(c)
(d)
Fig. 8. Examples for (a) AC(u) = 0, (b) AC(u) = 1, (c) AB(u) = 2 and (d) AB(u) = 3.
Drawing Planar Graphs Symmetrically, III
79
4.1. Algorithm for the Isomorphism Partition Labels of Blocks. Suppose that v1 , v2 , . . . , vm are nodes on the same (nonroot) level of the BC tree, representing blocks B1 , B2 , . . . , Bm with parent cut vertices p1 , p2 , . . . , pm . Suppose that each child cut vertex in each Bi has been labelled with its isomorphism partition label. LEMMA 5. IP(vi ) = IP(v j ) if and only if there is an isomorphism ϕ between Bi and Bj such that ϕ( pi ) = p j , and ϕ respects the isomorphism partition labels of the child cut vertices. PROOF.
This is a simple induction.
Using Lemma 5, we can compute the isomorphism partition labels for the blocks Bi , as follows: Algorithm IP block 1. Assign the same label to pi in each Bi . 2. Apply the Isomorphism Partition algorithm [24], [26] to B1 , B2 , . . . , Bm , respecting the isomorphism partition labels of the child cut vertices as well as the labels on the parent cut vertices. This partitions the blocks into isomorphism classes such that Bi and B j are in the same class if and only if there is an isomorphism ϕ from Bi to B j such that (a) ϕ( pi ) = p j , and (b) for each cut vertex ck of Bi , ϕ(ck ) is a cut vertex, and IP(ck ) = IP(ϕ(ck )). 3. Using this partition, assign an isomorphism partition label to each vi . The correctness of IP block follows from Lemma 5. Using Theorem 2 applied to labelled graphs, the second step can be implemented in linear time. THEOREM 4. Algorithm IP block computes the isomorphism partition labels for blocks in time that is linear in the sum of the sizes of the blocks Bi . Note at this stage that Theorem 4 implies that for an input graph G, one can compute the isomorphism partition codes on all blocks in G in time that is linear in the size of G. 4.2. Algorithm for the Axial Label of a Block. Here we show how to compute AB(u) for a vertex u in the BC tree. First we find an axial planar automorphism α that fixes the parent cut vertex p, and respects the isomorphism partition and axial labels of child cut vertices. Then we assign the value of AB(u), depending on the number of fixed faces adjacent to p. We use the characterization in the following lemma. LEMMA 6. Suppose that a vertex u in the BC tree represents a (nonroot) block B, and the children v1 , v2 , . . . , vk of u represent the child cut vertices c1 , c2 , . . . , ck of B.
80
S.-H. Hong and P. Eades
Suppose that B has an axial planar automorphism such that the following conditions hold: (1) α fixes p. (2) α respects the isomorphism partition labels of child cut vertices in B. (3) If α fixes a child cut vertex c j , then AC(v j ) < 3 and the number of faces fixed by α and incident to c j is at least as large as AC(v j ). (4) The number of faces fixed by α and incident to p is f < 3. Then AB(u) = f . Otherwise AB(u) = 3. PROOF. We first show how, given conditions (1)–(4) of the lemma, we can extend α to an axial planar automorphism of G + (u). This consists of showing how to place the subgraphs G + (vi ) for each child cut vertex ci . Firstly suppose that ci is not fixed by α. Suppose that F is a face of B incident with ci . We can draw G + (vi ) in F. We choose any embedding of G + (vi ) that has ci on the outside face. Since α respects the isomorphism partition labels, there is an isomorphism ϕ from G + (vi ) to ϕ(G + (vi )) = G + (α(vi )). This means that we can draw G + (α(vi )) as a symmetric image to the drawing of G + (vi ) in the face α(F). Thus we can extend α by ϕ to the union of B, G + (vi ) and G + (α(vi )). This is illustrated in Figure 9. Now suppose that ci is fixed by α. We consider three cases, depending on the value of AC(vi ). Suppose that the children of vi are w1 , w2 , . . . , wm . Suppose first that AC(vi ) = 0, that is, there is an axial planar automorphism α0 of G + (vi ) which does not fix any G + (w j ). This implies that for each 1 ≤ j ≤ m, α0 maps G + (w j ) to G + (w j ) for some j = j; that is, α0 can be used to divide the G + (w j ) into isomorphic pairs. For each j, we choose an embedding of G + (w j ) such that ci is on the outside face. Now we choose a face F of B incident to ci , place one of each pair of G + (w j ) into F and its pair α0 (G + (w j )) into α(F). In this way we can extend α by α0 to an axial planar automorphism of the union of B with G + (vi ). This is illustrated in Figure 10. Next suppose that 1 ≤ AC(vi ) ≤ 2. In this case there is an axial planar automorphism α1 of G + (vi ) such that if α1 fixes G + (w j ) then AB(w j ) < 3, and there are either one or two values of j such that α1 fixes G + (w j ) and AB(w j ) = 1.
p + G (vi )
p
F
α(F)
α( ci)
ci
B
B
(a)
(b)
Fig. 9. Child cut vertices that are not fixed.
+ G ( α( vi) )
Drawing Planar Graphs Symmetrically, III
p
B
ci F
α(F)
81
p
+ G ( wi)
+ α ( G ( wi)) 0
ci
B
+ α ( G ( wj)) 0
+ G ( wj) (a)
(b)
Fig. 10. Child blocks that are not fixed.
We divide {1, 2, . . . , m} into three sets: S0 = { j : G + (w j ) is not fixed by α1 }, S1 = { j : G + (w j ) is fixed by α1 and AB(w j ) = 1}, S2 = { j : G + (w j ) is fixed by α1 and AB(w j ) = 2}. Note that from the conditions of the lemma, each j falls into one of these sets. We place the G + (w j ) into faces adjacent to ci depending on the set into which j falls. If j ∈ S0 , then α1 can be used to divide the G + (w j ) into pairs, as was the case for AC(vi ) = 0 above. We can place G + (w j ) into any face F incident to ci , and place α1 (G + (w j )) into α(F). Now suppose that j ∈ S1 ∪ S2 . From the definition of AB(w j ), there is an axial planar automorphism α1 j of G + (w j ) that fixes AB(w j ) faces incident to ci . We choose an embedding of G + (w j ) such that one of these fixed faces is the outside face of G + (w j ). Thus G + (w j ) appears as in Figure 11(a) or (b), depending on whether j ∈ S1 or j ∈ S2 . Suppose that j ∈ S2 ; by the definition of AB, G + (w j ) has an axial planar automorphism α1 j that fixes ci and two faces incident to ci . This case is illustrated in Figure 11(b). Here we can “nest” all such G + (w j ) preserving planarity, as in Figure 12. Each of the automorphisms α1 j fixes ci , and thus we have a planar axial automorphism of the “nest”.
c i
ci
+ G (w ) j
(a)
+ G (w ) j
(b)
Fig. 11. (a) G + (w j ) for j ∈ S1 and (b) G + (w j ) for j ∈ S2 .
82
S.-H. Hong and P. Eades
p
p
ci
c i
B
B F + G (wj )
(b)
(a)
Fig. 12. Nesting fixed child blocks with j ∈ S2 .
Next consider elements of S1 . If S1 is nonempty then, from the definition of AC, 1 ≤ |S1 | ≤ 2. Suppose first that S1 has exactly one element j1 . We can place G + (w j1 ) in the center of the nest of those G + (w j ) with j ∈ S2 . From condition (3) of the lemma, there is at least one face F of B incident to ci and fixed by α. The “nest”, together with G + (w j1 ), can be placed in F, as in Figure 13. Now suppose that S1 has two elements j1 and j2 . Then, from condition (3) of the lemma, there are at least two faces F1 and F2 of B incident to ci and fixed by α. In this case we can place G + (w j1 ) in the center of the nest in F1 , and the other G + (w j2 ) in F2 . This is illustrated in Figure 14. In either case the axial planar automorphisms α1 can extend α to an axial planar automorphism of the union of G + (u) and the G + (vi ).
p
p
+ G (w ) j1 c i
ci B
B F + G (wj )
(a)
(b)
Fig. 13. Nesting fixed child blocks in F.
Drawing Planar Graphs Symmetrically, III
83 p
p
+ G (wj2 ) F 2
c i B
B
c i
+ G ( wj1)
F 1
(a)
(b)
Fig. 14. Nesting fixed child blocks with two fixed faces.
Finally we consider the case where one of conditions (1)–(4) of the lemma fails. We need to show that this implies that AB(u) = 3, that is, G + (u) has no axial planar automorphism that fixes the parent cut vertex and respects labels of child cut vertices. We suppose that, contrary to our hypothesis, G + (u) has an axial planar automorphism α that fixes p, and proceed to a contradiction. If one of conditions (1), (2), or (4) fails, this is clear. Thus we only consider the case where condition (3) fails. This means that there is a child vertex c j fixed by α for which the number of faces incident to c j that are fixed by α is strictly less than AC(v j ). Here it is impossible for AC(v j ) to be zero, so either AC(v j ) = 1 or AC(v j ) = 2. Suppose that the child blocks of v j are B j1 , B j2 , . . . , B jm . Note that α induces an axial planar automorphism α of G + (v j ). In the case that AC(v j ) = 1, the failure of condition (3) implies that there are no faces fixed by α and incident to c j . Now by Lemma 1(b), in any embedding of G + (u), for z = 1, 2, . . . , m, all vertices and edges of the block Bj z must be in the same face Fz of B. Note that α (Bj z ) must appear in α (Fz ). However, since AC(v j ) = 1, α fixes at least one child block, that is, for at least one value of z, α (B j z ) = B j z , and thus α (Fz ) = Fz . This means that α fixes at least one face of B incident to c j , contradicting the failure of condition (3). In the case that AC(v j ) = 2, the failure of condition (3) implies that there is at most one face F0 fixed by α and incident to c j . Since AC(v j ) = 2, there are at least two blocks Bj z and B j z that are fixed by α and AB(v j z ) = AB(v j z ) = 1. From Lemma 1(b), as with the previous case, both these blocks must appear in the face F0 of G + (v j ). Suppose that the list of edges of F0 ∪ B j z ∪ B j z incident with c j in clockwise order about c j is E vj = (e1 , e2 , . . . , ed ), where e1 and ed are in F0 . Because both B j z and B j z are biconnected, there are at least two edges from each one in E vj . Since F0 and c j are fixed by α , it is clear that α maps e1 to ed and vice versa. It follows that α maps ei to ed−i+1 for each i. Suppose without loss of generality that e2 is in B j z . Now B j z is fixed by α , so ed−1 is in B j z . At least one edge of B j z is in (e3 , e4 , . . . , ed−2 ). However, from Lemma 1(c), the edges of Bj z appear consecutively in E vj . This is a contradiction. Algorithm Axial block, stated below, computes the label AB. It is based on Lemma 6, as well as Algorithm Biconnected Planar from [16]. Algorithm Biconnected Planar takes a biconnected planar graph B as input, and returns
84
S.-H. Hong and P. Eades
the maximum planar automorphism graph of B. It is simple to adjust Algorithm Biconnected Planar so that it returns axial planar automorphisms of B that respect labellings of the vertices and edges. Thus the conditions of Lemma 6 can be tested. We now state the algorithm. Algorithm Axial block Apply Biconnected Planar [16] to the labelled graph B; if B has an axial planar automorphism α such that (a) α fixes p and respects the isomorphism partition labels on B; and (b) For each child cut vertex c j fixed by α, the number of faces incident to c j and fixed by α is at least as large as AC(c j ). Then AB(B) := the number of faces fixed by α and incident to p. Else AB(B) := 3. Again this algorithm runs in linear time, which follows from the linearity of computing isomorphism partition and Biconnected Planar [16]. THEOREM 5. Algorithm Axial block computes the axial label of a block in linear time in the size of the block. 4.3. Algorithm for the Isomorphism Partition Labels of Cut Vertices. Suppose that u 1 , u 2 , . . . , u k are nodes of the BC tree on the same level, representing cut vertices c1 , c2 , . . . , ck . We compute IP(u i ) for each i = 1, 2, . . . , k, using the following algorithm: Algorithm IP cutvertex 1. For each ci : (a) Let Bi1 , Bi2 , . . . , Bim be the child blocks of ci . (b) Let s(ci ) be the m-tuple (IP(Bi1 ), IP(Bi2 ), . . . , IP(Bim )). (c) Sort the m-tuple s(ci ). 2. Let Q be the list of tuples s(ci ), i = 1, 2, . . . , k. 3. Sort Q lexicographically. 4. For each ci , compute IP(ci ) as follows: Assign the integer 1 to all ci whose s(ci ) is the first distinct tuple of the sorted sequence Q. Assign the integer 2 to all c j whose s(c j ) is the second distinct tuple, and so on. This algorithm is a simple adaption of the tree isomorphism algorithm of [2] to work with labelled BC trees. The proof of correctness and linearity is virtually the same as in [2]. THEOREM 6. Algorithm IP cutvertex computes the isomorphism partition labels of all cut vertices on the same level in the BC tree in time linear in the sum of the sizes of the child blocks of the cut vertices. 4.4. Algorithm for the Axial Label of a Cut Vertex. Suppose that u is a node of the BC tree representing a cut vertex c, and v1 , v2 , . . . , vm are nodes representing the child blocks B1 , B2 , . . . , Bm of c. We now characterize the axial label for c. Recall that P = {v j : IP(v j ) = }; let s denote |P | for 1 ≤ ≤ n.
Drawing Planar Graphs Symmetrically, III
85
LEMMA 7. (1) If all s are even, then AC(u) = 0. (2) If there is an s that is odd and AB(v j ) = 3 for all j ∈ P , then AC(u) = 3. (3) Otherwise, let f be the number of odd s such that if j ∈ P then AB(v j ) = 1. (a) If f > 2 then AC(u) = 3. (b) If f = 2 then AC(u) = 2. (c) If f = 1 then AC(u) = 1. PROOF. Note that if s is even, then we can arrange the blocks B j for v j ∈ P in pairs, and place them symmetrically about c, with no fixed block; this implies that AC(u) = 0. This immediately gives part (1) of the lemma. Further, suppose that s is odd; if G + (u) has an axial planar automorphism then at least one Bj with v j ∈ P must be fixed; this block must have an axial planar automorphism. part (2) of the lemma follows immediately, and part (3) follows similarly, using the definition of AC. Based on Lemma 7, we now state the algorithm. Algorithm Axial cutvertex 1. Compute the size s of each isomorphism class P . 2. If all s are even, then AC(c) := 0; exit. 3. If there is an s which is odd and AB(v j ) = 3 for each j such that IP(v j ) = then AC(c) := 3; exit. 4. Let f be the number of odd s such that if IP(v j ) = then AB(v j ) = 1. (a) If f > 2 then AC(c) := 3. (b) If f = 2 then AC(c) := 2. (c) If f = 1 then AC(c) := 1. THEOREM 7. Algorithm Axial cutvertex computes the axial label of a cut vertex in time linear in the sum of the sizes of the child blocks of the cut vertex.
5. Computing a Planar Automorphism Group at the Center. In this section we describe how to compute a maximum size planar automorphism group at the center of the BC tree. The following theorem summarizes the main result of this section. THEOREM 8. There is a linear time algorithm to compute a maximum size planar automorphism group at the center. The proof of Theorem 8 occupies the remainder of this section. The algorithm can be divided into two cases, since the center of the BC tree may be a block or a cut vertex. Roughly speaking, if the center is a block B, then we use Biconnected Planar [16]. If the center is a cut vertex c, then we use a similar method to that used for the case of trees [32].
86
S.-H. Hong and P. Eades
B
c
(b)
(a) Fig. 15. Special case.
However, the algorithm is not as simple as this, mainly because there are some special cases. Namely, there may exist a fixed cut vertex when the center is a block, and there may exist a fixed block when the center is a cut vertex. To illustrate the special cases, see the graph in Figure 15, with its BC tree. The center of the BC tree is a block B with five cut vertices. The symmetries of the drawing of this block fix the cut vertex c with four children in the BC tree. Maximizing symmetry for the whole graph is not merely a matter of the reduction process plus maximizing symmetry of B; we must also arrange the children of the fixed cut vertex in a symmetrical way. Essentially this means merging the symmetries of G + (c) with the symmetries of G + (B). Most of this section concerns such special cases. First, in Section 5.1, we show that the special cases are limited: there is at most one fixed cut vertex and at most one fixed block. The algorithm used when the center of the BC tree is a block is described in Section 5.2. The algorithm used when the center of the BC tree is a cut vertex is described in Section 5.3. 5.1. Fixed Blocks and Fixed Cut Vertices. Note from Lemma 2 that the center of the BC tree is fixed by every automorphism. An axial automorphism may fix a large number of blocks and cut vertices. However, the next theorem shows that the fixed blocks and cut vertices of a rotational planar automorphism are limited. This limitation assists with the computation of cyclic and dihedral planar automorphism groups in Sections 5.2 and 5.3. THEOREM 9. Suppose that ρ is a rotational planar automorphism of a connected planar graph G. Then: (a) ρ fixes at most one cut vertex of G. (b) ρ fixes at most one block of G. (c) If ρ fixes a cut vertex c and a block B, then c is in B.
Drawing Planar Graphs Symmetrically, III
87
PROOF. Part (a) is trivial. For part (b), suppose that ρ fixes two blocks A and B. Since G is connected, there is a path P that starts with a vertex u in A, and ends with a vertex v in B. We can safely assume that, apart from its endpoints, P does not contain any vertices of A and B apart from u and v, as in Figure 16. Now consider the path ρ(P). Since ρ fixes A and B, the path ρ(P) starts at a vertex ρ(u) in A, and ends with a vertex ρ(v) in B. Since A and B are blocks, the paths P and ρ(P) must intersect at a vertex. Suppose that the first vertex along P at which they intersect is x, as in Figure 17. Now consider the path from u to x and the path from ρ(u) to x; these paths must be inside A, since A is a block. This means that ρ(u) = u = x. Similarly, if y is the last vertex at which P and ρ(P) intersect, then ρ(v) = v = y. This gives a picture as in Figure 18. However, since ρ is a rotational planar automorphism, it has at most one fixed vertex. This implies that u = v, that is, u is a cut vertex between A and B, as in Figure 19. Now u is a fixed vertex, and thus must be the center of rotation under ρ. Suppose that ρ has degree k > 1, that is, ρ k = I ; that is, the rotation is by 360/k. Suppose that a is a vertex in A and (a, u) is an edge. In every drawing realizing ρ, the images ρ(a), ρ 2 (a), . . . , ρ k−1 (a) are arranged evenly about u, as in Figure 20(a). Similarly, the images ρ(b), ρ 2 (b), . . . , ρ k−1 (b), of a vertex b in B adjacent to u, are arranged evenly about u, as in Figure 20(b). This clearly cannot happen, from Lemma 1(c). Finally, consider part (c). Suppose that ρ fixes both the cut vertex c and the block B. Suppose that c is in the block B . Since G is connected, there is a path P from c to a vertex u in B. If B = B , then we can assume that u is a cut vertex. Now consider the image ρ(P) of P under ρ. Since B is fixed by ρ, it follows that ρ(u) is in B; thus ρ(P) passes through u. However, the length of ρ(P) is the same as the length of P, so ρ(u) = u. This implies, from part (a) of the theorem, that u = c; thus c is in B. 5.2. The Center is a Block. In this section we describe an algorithm which computes a maximum size planar automorphism group when the center of the BC tree is a block. The following lemma summarizes this section. LEMMA 8. There is an algorithm which computes a maximum size planar automorphism group at the center block in linear time. Since the center block is fixed by a planar automorphism group, we can compute a maximum size planar automorphism group of the graph by computing a maximum size planar automorphism group of the labelled center. We use Algorithm Biconnected Planar from [16] to compute this. This is straightforward. However, as mentioned at the start of this section, complications arise when there is a fixed cut vertex as well as the fixed central block. The remainder of this subsection considers this special case. We define some notation. Through the remainder of this section, B denotes the fixed center block and c denotes the fixed cut vertex. Suppose that PAGc is a planar
88
S.-H. Hong and P. Eades
v
P
A
B u Fig. 16. Illustration of path P.
P ρ (u) A
v
x ρ (P)
u
ρ (v)
B
Fig. 17. Path P and ρ(P).
ρ (P) v = ρ (v) P u = ρ (u)
A
B
Fig. 18. The case where ρ(u) = u = x and ρ(v) = v = y.
A
B
u= v Fig. 19. The case where u = v.
2
2
ρ (a)
ρ (a)
b
ρ(a)
3
ρ (a)
ρ(a)
3
ρ (a)
u a
2
ρ (b) 4
ρ (a) (a)
a
3
ρ (b)
4
ρ (a)
(b)
Fig. 20. Illustration of (a) ρ(a) and (b) ρ(a) and ρ(b).
Drawing Planar Graphs Symmetrically, III
89
automorphism group of G + (c) that fixes c. Similarly we denote a planar automorphism group of B as PAG B and a planar automorphism group of the whole graph as PAGG . Note that in the special case, we need to compute the gcd of the number of rotational symmetries of B and G + (c). For example, in Figure 15(a), the number of rotational symmetries of B is four and the number of rotational symmetries of G + (c) is also four. Hence the number of rotational symmetries of G is four, since gcd(4, 4) = 4. Note that the size of PAGG is 8, as it also has four axial symmetries. However, computing PAGG is more complex than this example suggests, since we need to consider three different types of planar automorphism groups. The overall algorithm for computing the maximum size planar automorphism group at the center block can be described as follows: Algorithm CenterBlock 1. Compute a maximum size PAG B using Biconnected Planar [16]; if there is no fixed cut vertex, then PAGG is equal to PAG B . 2. If there is a fixed cut vertex c, then (a) Compute a maximum size PAGc using FixedCutVertex, described below. (b) Compute a maximum size PAGG using TwoFixed, described below. We now describe each subroutine at step 2 in turn. First we describe FixedCutVertex. This is essentially the same as the algorithm to compute a maximum number of rotational symmetries and axial symmetries of trees [32]. Suppose that u 1 , u 2 , . . . , u m are the child vertices of c in the BC tree and Bi is the block corresponding to u i . The main idea is to compute the size of the isomorphism classes of the child blocks and then compute their gcd. In fact the maximum size planar automorphism group may not be unique, it may be rotational or dihedral. Consider, for example, Figure 21: this shows two different symmetric drawings of the same graph. Figure 21(a) displays a rotational group of size 8 with no axial symmetry. Figure 21(b) displays a dihedral group of size 8 with
(b)
(a)
Fig. 21. Examples of PAGc .
90
S.-H. Hong and P. Eades
four rotations and four axial symmetries. For this reason, the algorithm outputs two parameters: the maximum number a of axial symmetries and the maximum number r of rotational symmetries. In other words, r is the size of the maximum size rotational group and 2a is the size of the maximum size dihedral group. Note that if r > 1 and a = 0 then PAGc is purely rotational. If r = 1 and a = 1 then PAGc is purely axial. If r > 1 and a = r , then the maximum size of a rotational group is r and the maximum size of a dihedral group is 2r . Finally note that if r > 1 and a = r/2, then the maximum size of a rotational group is r and the maximum size of a dihedral group is r . We now describe the algorithm. Algorithm FixedCutVertex 1. Divide B1 , B2 , . . . , Bm into the isomorphism classes I1 , I2 , . . . , Ik using the isomorphism codes IP(u i ). Let n i be the size of the isomorphism class Ii . 2. r := gcd(n 1 , n 2 , . . . , n k ). 3. n i := n i /r for each i. 4. If (there are at most two odd n i for which AB(u j ) = 1 for B j ∈ Ii ) then D := true else D := false. 5. If (there are at most two odd n i for which AB(u j ) = 1 for B j ∈ Ii ) then D := true else D := false. 6. If (not D) then a := 0. else if (D ) then a := r . else if r is even then a := r/2 else a := 0. The correctness of the algorithm can be verified using a similar argument as was used in the case of trees [32] along with the planarity condition AB(u j ) = 1. It is clear that FixedCutVertex runs in linear time. Note that this algorithm will be used again when we compute a maximum size planar automorphism group at the center cut vertex in Section 5.3. We now describe Algorithm TwoFixed. The algorithm uses the following notation: r B (a B ) represents the maximum number of rotational (axial) symmetries of B and rc (ac ) represent the maximum number of rotational (axial) symmetries of G + (c), respectively. Similarly, r G (aG ) represents the maximum number of rotational (axial) symmetries of the whole graph, respectively. Algorithm TwoFixed computes r G and aG from r B , a B , rc and ac . The algorithm must merge PAG B and PAGc , both of which may be cyclic (purely rotational), dihedral or purely axial from Section 2.3. This leads to the nine cases in Table 1. We now explain each case in detail. Case 1: If PAG B is purely rotational, then essentially we just need to compute the gcd of r B and rc , no matter what the structure of PAGc is. We illustrate this with an example. In Figure 22(a) PAG B has four rotational symmetries and in Figure 22(b) PAGc has two rotational symmetries. Thus PAGG can have only two rotational symmetries as in Figure 22(c), since gcd(4, 2) = 2.
Drawing Planar Graphs Symmetrically, III
91 Table 1. Nine cases.
Case
PAG B
PAGc
Best possible intersection
Case 1 Case 2 Case 3 Case 4 Case 5 Case 6 Case 7 Case 8 Case 9
Cyclic Cyclic Cyclic Dihedral Dihedral Dihedral Axial Axial Axial
Cyclic Dihedral Axial Cyclic Dihedral Axial Cyclic Dihedral Axial
Cyclic Cyclic Trivial Cyclic Either axial, cyclic or dihedral Axial Trivial Axial Axial
Case 2: The same method works even if PAGc is dihedral; see Figure 23. In Figure 23(a) PAG B has four rotational symmetries and in Figure 23(b) PAGc has two rotational symmetries and two axial symmetries. In this case PAGG is purely rotational of size 2 as in Figure 23(c), since gcd(4, 2) = 2. Case 3: This case is simple: PAGG is the trivial group. Case 4: This case is similar to Case 2. Case 5: When both PAG B and PAGc are dihedral, more complications arise. We must compute the gcd of r B and rc , but we also need to consider faces in B that are fixed by the axial symmetry and incident to c. An example is illustrated in Figure 24. A block B and the graph G + (c) are illustrated in Figures 24(a) and (b), respectively. Here both PAG B and PAGc are dihedral, with three rotational symmetries and three axial symmetries. However, PAGG is not dihedral, it is purely rotational of size 3 as in Figure 24(c). This is because B has no face that is incident to c and fixed by the axial symmetry. The lack of fixed faces prevents us from attaching child blocks of c while displaying axial symmetry. Note that here gcd(r B , rc ) is odd. We explain later that we may display dihedral symmetry if gcd(r B , rc ) is even. To understand Case 5 better, we divide it further into four subcases. Suppose that the dihedral symmetry of B is generated by the axial symmetry α and the rotational symmetry ρ. The four subcases are below. Recall the notation: u j is a node to the BC tree representing the child block B j of the cut vertex c; Ii is the ith isomorphism class of the Bj .
B
c
c
(a)
(b)
Fig. 22. Both PAG B and PAGc are purely rotational.
(c)
92
S.-H. Hong and P. Eades
c B
c
(a)
(b)
(c)
Fig. 23. PAG B is rotational and PAGc is dihedral.
There are three cases where gcd(r B , rc ) > 1: Case 5A: There is a face in B incident to c and fixed by α, and there is at most one odd n i for which AB(u j ) = 1 for B j ∈ Ii in G + (c). Case 5B: There is a face in B incident to c and fixed by α, and there are two or more odd n i for which AB(u j ) = 1 for B j ∈ Ii in G + (c). Case 5C: There is no face in B incident to c and fixed by α. Lastly, Case 5D is the case where gcd(r B , rc ) = 1. We first consider the case where gcdr B , rc ) > 1. Examples to illustrate G + (c) in Cases 5A and 5B are given in Figure 25. Figures 25(a) and (b) show G + (c) with at most one odd n i for which AB(u j ) = 1 for B j ∈ Ii . Figure 25(c) shows a case with two odd n i for which AB(u j ) = 1 for B j ∈ Ii in G + (c). First consider Case 5A. In this case we can display both rotational symmetry and axial symmetry, since we can use the fixed face for attaching child blocks of c while displaying axial symmetry. An example is illustrated in Figure 26. For the block B in Figure 26(a), PAG B has four rotational symmetries and four axial symmetries. In Figure 26(b) PAGc has four rotational symmetries and four axial symmetries. Here there is one odd n i for which AB(u j ) = 1 for B j ∈ Ii in G + (c). Thus PAGG has four rotational symmetries
B
c
(a)
c
(b)
(c)
Fig. 24. Both PAG B and PAGc are dihedral and B has no fixed face, and gcd(r B , rc ) is odd.
Drawing Planar Graphs Symmetrically, III
93
(c)
(a)
(b)
Fig. 25. Examples of G + (c) with dihedral PAGc .
and four axial symmetries as in Figure 26(c), since gcd(4, 4) = 4 and there is a fixed face in B which is incident to c. We now consider Case 5B. This is more complicated. In this case PAGG is either purely rotational of size gcd(r B , rc ) or dihedral of size gcd(r B , rc ); a dihedral PAGG of size 2 gcd(r B , rc ) is impossible. An example is illustrated in Figure 27. In Figure 27(a) PAG B has four rotational symmetries and four axial symmetries. In Figure 27(b) PAGc has four rotational symmetries and four axial symmetries. Here there are two odd n i for which AB(u j ) = 1 for B j ∈ Ii in G + (c). Thus PAGG is either purely rotational of size 4 as in Figure 27(c), or dihedral of size 4 (two rotational symmetries and two axial symmetries) as in Figure 27(d). We now consider Case 5C. This case is similar to Case 5B. That is, PAGG is either purely rotational of size gcd(r B , rc ) or dihedral of size gcd(r B , rc ). An example is illustrated in Figure 28. In Figure 28(a) PAG B has four rotational symmetries and four axial symmetries, and there is no fixed face which is incident to c in B. In Figure 28(b) PAGc has four rotational symmetries and four axial symmetries. Here there is one odd n i for which AB(u j ) = 1 for B j ∈ Ii in G + (c). Thus PAGG is either purely rotational of
B
c
(a)
c
(b)
Fig. 26. Example of Case 5A.
(c)
94
S.-H. Hong and P. Eades
B
c
c
(a)
(b)
(c)
(d)
Fig. 27. Example of Case 5B.
size 4 as in Figure 28(c) or dihedral of size 4 (two rotational symmetries and two axial symmetries) as in Figure 28(d). Note that here gcd(r B , rc ) is even. Hence, PAGG may be either purely rotational or dihedral. However, if gcd(r B , rc ) is odd, then PAGG is purely rotational. Finally we consider Case 5D where gcd(r B , rc ) = 1. This case is much simpler than previous cases, as PAGG may have one axial symmetry at best. Note that we need a simple method to test whether PAGG is purely axial, that is, it has only one axial symmetry. Suppose that PAG B and PAGc have axial symmetries α B and αc , respectively. Let f B represent the number of faces fixed by α B incident to c. Let f c represent the number of isomorphism classes of fixed child blocks of c with AB(u i ) = 1. Note that both f B and f c are either 0, 1 or 2. If f c ≤ f B , then we can attach child blocks to the fixed cut vertex displaying axial symmetry; otherwise axial symmetry cannot be displayed. Cases 6, 8 and 9 are rather simple and similar to Case 5D: PAGG may have one axial symmetry at best. Case 7 is similar to Case 3: PAGG is the trivial group. We now describe Algorithm TwoFixed. The algorithm uses the same notation as in the discussion above: r B (a B ) represents the maximum number of rotational (axial) symmetries of B and rc (ac ) represent the maximum number of rotational (axial) symmetries of G + (c), respectively. Similarly, r G (aG ) represents the maximum number of rotational (axial) symmetries of the whole graph, respectively. Algorithm TwoFixed computes r G and aG from r B , a B , rc and ac .
B
c
c
(a)
(b)
(c)
Fig. 28. Example of Case 5C.
(d)
Drawing Planar Graphs Symmetrically, III
95
Algorithm TwoFixed 1. If (r B > 1 and a B = 0) then r G := gcd(r B , rc ); aG := 0; exit. /* Cases 1–3 */ 2. If ((r B = 1 and a B = 1) and (rc > 1 and ac = 0)) then r G := 1; aG := 0; exit. /* Case 7 */ 3. If ((r B = 1 and a B = 1) or (rc = 1 and ac = 1)) then if ( f c ≤ f B ) then r G := 1; aG := 1; exit. /* Cases 6, 8, 9 */ 4. If ((r B > 1 and a B > 1) and (rc > 1 and ac = 0)) then r G := gcd(r B , rc ); aG := 0; exit. /* Case 4 */ 5. If ((r B > 1 and a B > 1) and (rc > 1 and ac > 1)) and (gcd(r B , rc ) = 1) then if ( f c ≤ f B ) then r G := 1; aG := 1; exit. /* Case 5D */ 6. If ((r B > 1 and a B > 1) and (rc > 1 and ac > 1)) and (gcd(r B , rc ) > 1) then (a) r G := gcd(r B , rc ); (b) if (there is a face in B which is fixed by an axial symmetry and incident to c) then if (there is at most one n i which is odd and AB(u i ) = 1 for Bi ∈ Ii ) then aG := gcd(r B , rc ). /* Case 5A */ else if (gcd(r B , rc ) is odd) then aG := 0; else aG := gcd(r B , rc )/2. /*Case 5B */ else if (gcd(r B , rc ) is odd) then aG := 0; else aG := gcd(r B , rc )/2. /* Case 5C */ Note that in the case where r G := gcd(r B , rc ) and aG := gcd(r B , rc )/2, there is a choice between a pure rotational group of size gcd(r B , rc ) and a dihedral group of the same size. It is clear that TwoFixed runs in linear time. The correctness of each case can be verified easily using an argument directly based on the examples above. Since algorithms Biconnected Planar, TwoFixed and FixedCutVertex all run in linear time, CenterBlock computes a maximum size planar automorphism group of the center block in linear time. This proves Lemma 8. 5.3. The Center is a Cut Vertex. In this section we describe an algorithm which computes a maximum size planar automorphism group when the center of the BC tree is a cut vertex. The following lemma summarizes this section. LEMMA 9. There is an algorithm which computes a maximum size planar automorphism group at the center cut vertex in linear time. If there is no block which is fixed by rotation, then we can compute a maximum size planar automorphism group of the graph using FixedCutVertex from the previous section. An example is illustrated in Figure 29. Figure 29(a) shows an example of a purely rotational group of size 4 and Figure 29(b) shows an example of a dihedral group of size 8. Figure 29(c) shows an example of a pure axial group.
96
S.-H. Hong and P. Eades
(c)
(b)
(a)
Fig. 29. Center cut vertex case.
However, as mentioned at the beginning of Section 5, a special case may arise where not only the central cut vertex is fixed, but also a block. An example for this special case is illustrated in Figure 30. Figure 30(a) shows the BC tree of the graph with c and its children. Figure 30(b) shows a drawing of the graph with no block fixed by a rotation. Note that this displays only one axial symmetry since gcd(4, 1) = 1. However, the maximum symmetric drawing of the same graph can display four rotational symmetries and four axial symmetries as in Figure 30(c). Note that in this case one of the child blocks is fixed by the planar automorphism group. The remainder of this subsection deals with special cases such as this one. We use similar notation as in the previous section. Through the remainder of this section, c denotes the fixed center cut vertex and B denotes the fixed block. Suppose that PAGc is a planar automorphism group of G that fixes c. Similarly, we denote a planar automorphism group of the labelled block B (that is, G + (B)) as PAG B and a planar automorphism group of the whole graph as PAGG . The special case described above suggests that we essentially need to compute the gcd of the size of PAGc and the size of PAG B . Algorithm TwoFixed from the previous section can be used. To guarantee that we obtain the maximum, we need to consider a block from each isomorphism class of the child blocks of c as a candidate of the fixed block.
c B c B
(a)
c
(b)
Fig. 30. Special case.
B
(c)
Drawing Planar Graphs Symmetrically, III
97
Thus the overall algorithm can be stated as below. The first step computes the isomorphism classes. At step 2 below, we compute a maximum size PAGc under the constraint that there is no fixed block. At step 3 below, we find a fixed block which gives the maximum size PAGG . Finally at step 4 below, we take the maximum between the results of steps 2 and 3. Suppose that u 1 , u 2 , . . . , u m are the child vertices of c in the BC tree and Bi is the corresponding block of u i . CenterCutvertex
1. Divide B1 , B2 , . . . , Bm into isomorphism classes I1 , I2 , . . . , Ik using their isomorphism code. Let n i be the size of Ii . 2. Apply FixedCutVertex to compute PAGG . /* without fixed block */ 3. for i = 1 to k do (a) Apply Biconnected Planar to compute PAG Bi with a fixed cut vertex c. (b) n i = n i − 1. (c) Apply FixedCutVertex to compute PAGc . /* special case with fixed block Bi */ (d) Compute PAGG using TwoFixed. (e) Keep the maximum size of PAGG . (f) n i = n i + 1. 4. Return the maximum size PAGG from steps 2 and 3(e). It is clear that CenterCutvertex runs in linear time, since FixedCutVertex, Biconnected Planar and TwoFixed all run in linear time. This proves Lemma 9. 6. Drawing Algorithm. The algorithm presented in the preceding sections takes a oneconnected planar graph as input and has two outputs: a planar automorphism group of maximum size and an embedding of the graph. In this section we show how to use this information to construct a straight-line symmetric drawing of the graph. Again we use drawing algorithms for graphs of higher connectivity. From [21] and [16] we can obtain a planar straight-line drawing of a biconnected planar graph G which displays a given planar automorphism of G. Note that from [21] and [16], we can assume that the outside face of this drawing is a convex polygon. Given an embedding of a oneconnected planar graph, we use “attachment”. First we draw each block of the graph separately, displaying the symmetries computed by the algorithms in the preceding sections, using the algorithms in [16], and ensure that isomorphic blocks are drawn the same. Recall from Theorem 9 that there is at most one fixed block (which may or may not be the root of the BC tree). We draw this block first, displaying the desired symmetry, using the algorithm of [16]. If there is no fixed block then there is a fixed cut vertex, and we simply draw this cut vertex. Then we proceed down the BC tree to the leaves, level by level, attaching blocks as we go. To display rotational symmetry we just need to ensure that the isomorphic blocks at each level are placed in rotationally symmetric positions. Note that we must ensure that the attaching block fits within an angle between edges in the parent block. This can
98
S.-H. Hong and P. Eades
c1
c c
3 c1
2
c
c
2
3
(b)
(a)
(c)
Fig. 31. The attachment procedure.
be guaranteed by scaling the convex drawing of the block (noting that the output of the drawing algorithm for biconnected graphs has a convex outside face). The procedure is illustrated in Figure 31. The central block is illustrated in Figure 31(a), and the child blocks in Figure 31(b). The child blocks form just one isomorphism class, and are all drawn the same. By scaling these blocks so that they fit in faces incident to their parent cut vertices c1 , c2 and c3 , and placing them in rotationally symmetric positions, we obtain the symmetric drawing in Figure 31(c). If the whole drawing is to display axial or dihedral symmetry, then we may have to ensure that some of the attached blocks display an axial symmetry that fixes the parent cut vertex. This is possible as long as we take some care in the scaling procedure, illustrated in Figure 32. First scale in the direction of the axis of symmetry (to make the block small enough, Figure 32(a) becomes Figure 32(b)) then in the direction orthogonal to the axis of symmetry (to make the block thin enough, Figure 32(b) becomes Figure 32(c)). This scaling procedure preserves the axial symmetry. The following theorem summarizes the result of this section. THEOREM 10. There is a linear time algorithm to draw a oneconnected graph to display a maximum size planar automorphism group. The drawing has straight line edges.
(a)
(b)
Fig. 32. The scaling procedure.
(c)
Drawing Planar Graphs Symmetrically, III
99
7. Conclusion. In this paper we present a linear time algorithm for finding a maximum size planar automorphism group of a oneconnected planar graph. This algorithm shows that the planar automorphism problem for oneconnected planar graphs can be solved in polynomial time, in contrast to the more general problem. The algorithm is quite complicated; it relies on subroutines that are complicated. Finding a simple algorithm to draw connected planar graphs with maximum symmetry remains a challenge. We also describe a simple drawing algorithm. After this paper the next step is disconnected planar graphs; see [17].
References [1]
[2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15]
[16]
[17] [18]
D. Abelson, S. Hong and D. E. Taylor, A Group-Theoretic Method for Drawing Graphs Symmetrically, Graph Drawing 2002, Lecture Notes in Computer Science 2528, pp. 86–97, Springer-Verlag, Berlin, 2002. A. V. Aho, J. E. Hopcroft and J. D. Ullman, The Design and Analysis of Computer Algorithms, AddisonWesley, Reading, MA, 1974. L. Babai, Automorphism Groups, Isomorphism, and Reconstruction, Chapter 27 of Handbook of Combinatorics, Vol. 2 (eds. R. L. Graham, M. Groetschel and L. Lovasz), Elsevier Science, Amsterdam,1995. J. A. Bondy and U. S. R. Murty, Graph Theory with Applications, North-Holland, Amsterdam, 1976. C. Buchheim and M. Junger, Detecting Symmetries by Branch and Cut, Mathematical Programming (Series B) 98, 369–384, 2003. C. Buchheim and M. Junger, An Integer Programming Approach to Fuzzy Symmetry Detection, Graph Drawing 2003, Lecture Notes in Computer Science 2912, pp. 166–177, Springer-Verlag, Berlin, 2003. H. Chen, H. Lu and H. Yen, On Maximum Symmetric Subgraphs, Graph Drawing 2000, Lecture Notes in Computer Science 1984, pp. 372–383, Springer-Verlag, Berlin, 2000. G. Di Battista, P. Eades, R. Tamassia and I. G. Tollis, Graph Drawing: Algorithms for the Visualization of Graphs, Prentice-Hall, Englewood Cliffs, NJ, 1998. P. Eades and X. Lin, Spring Algorithms and Symmetries, Theoretical Computer Science 240, 379–405, 2000. M. Fontet, Linear Algorithms for Testing Isomorphism of Planar Graphs, Proc. of Third Colloquium on Automata, Languages and Programming, pp. 411-423, 1976. H. de Fraysseix, An Heuristic for Graph Symmetry Detection, Graph Drawing 1999, Lecture Notes in Computer Science 1731, pp. 276–285, Springer-Verlag, Berlin, 1999. S. Hong, Algorithms for Maximum Symmetry Detection and Symmetric Drawings for Planar Graphs, Ph.D. Thesis, Ewha University, Seoul, 1999. S. Hong, Drawing Graphs Symmetrically in Three Dimensions, Graph Drawing 2001, Lecture Notes in Computer Science 2265, pp. 189–204, Springer-Verlag, Berlin, 2002. S. Hong and P. Eades, An Algorithm for Finding Three-Dimensional Symmetry in Trees, Graph Drawing 2000, Lecture Notes in Computer Science 1984, pp. 360–371, Springer-Verlag, Berlin, 2000. S. Hong and P. Eades, An Algorithm for Finding Three-Dimensional Symmetry in Series Parallel Digraphs, Algorithms and Computation (Proc. of ISAAC 2000), Lecture Notes in Computer Science 1969, pp. 266–277, Springer-Verlag, Berlin, 2000. S. Hong and P. Eades, Drawing Planar Graphs Symmetrically, II: Biconnected Graphs, Technical Report CS-IVG-2001-01, Basser Department of Computer Science, The University of Sydney, 2001. Algorithmica, DOI:10.1007/s00453-004-1132-z. S. Hong and P. Eades, Symmetric Layout of Disconnected Graphs, Algorithms and Computation (Proc. of ISAAC 2003), Lecture Notes in Computer Science 2906, pp. 405–414, Springer-Verlag, Berlin, 2003. S. Hong, P. Eades and S. Lee, An Algorithm for Finding Geometric Automorphisms in Planar Graphs, Algorithms and Computation (Proc. of ISAAC 1998), Lecture Notes in Computer Science 1533, pp. 277–286, Springer-Verlag, Berlin, 1998.
100
S.-H. Hong and P. Eades
[19]
S. Hong, P. Eades, A. Quigley and S. Lee, Drawing Algorithms for Series-Parallel Digraphs in Two and Three Dimensions, Graph Drawing 1998, Lecture Notes in Computer Science 1547, pp. 198–209, Springer-Verlag, Berlin, 1998. S. Hong, P. Eades and S. Lee, Drawing Series Parallel Digraphs Symmetrically, Computational Geometry: Theory and Applicatons 17(3–4), 165–188, 2000. S. Hong, B. McKay and P. Eades, Symmetric Drawings of Triconnected Planar Graphs, Proc. of SODA 2002, pp. 356–365, 2002. J. E. Hopcroft and R. E. Tarjan, A V 2 Algorithm for Determining Isomorphism of Planar Graphs, Information Processing Letters 1(1), 32–34, 1971. J. E. Hopcroft and R. E. Tarjan, A V log V Algorithm for Isomorphism of Triconnected Planar Graphs, Journal of Computer and System Sciences 7, 323–331, 1971. J. E. Hopcroft and R. E. Tarjan, Isomorphism of Planar Graphs, Complexity of Computer Computations (eds. R. E. Miller and J. W. Thatcher), pp. 131–151, Plenum, New York, 1972. J. E. Hopcroft and R. E. Tarjan, Dividing a Graph into Triconnected Components, SIAM Journal on Computing 2, 135–158, 1973. J. E. Hopcroft and J. K. Wong, Linear Time Algorithm for Isomorphism of Planar Graphs, Proc. of ACM Symposium on Theory of Computing, pp. 172–184, 1974. X. Lin, Analysis of Algorithms for Drawing Graphs, Ph.D. Thesis, University of Queensland, Brisbane, 1992. R. J. Lipton, S. C. North and J. S. Sandberg, A Method for Drawing Graphs, Proc. of ACM Symposium on Computational Geometry, pp. 153–160, ACM, New York, 1985. A. Lubiw, Some NP-Complete Problems Similar to Graph Isomorphism, SIAM Journal on Computing 10(1), 11–21, 1981. J. Manning, Geometric Symmetry in Graphs, Ph.D. Thesis, Purdue University, West Lafayette, IN, 1990. J. Manning, Computational Complexity of Geometric Symmetry Detection in Graphs, Proc. of Great Lakes Computer Science Conference, Lecture Notes in Computer Science 507, pp. 1–7, Spring-Verlag, Berlin, 1990. J. Manning and M. J. Atallah, Fast Detection and Display of Symmetry in Trees, Congressus Numerantium 64, 159–169, 1988. J. Manning and M. J. Atallah, Fast Detection and Display of Symmetry in Outerplanar Graphs, Discrete Applied Mathematics 39, 13–35, 1992. R. Mathon, A Note on the Graph Isomorphism Counting Problem, Information Processing Letters 8, 131–132, 1979. H. Purchase, Which Aesthetic Has the Greatest Effect on Human Understanding, Graph Drawing 1997, Lecture Notes in Computer Science 1353, pp. 248–261, Springer-Verlag, Berlin, 1997. R. E. Tarjan, Depth-First Search and Linear Graph Algorithms, SIAM Journal on Computing 1, 146–160, 1972. H. Wielandt, Finite Permutation Groups, Academic Press, New York, 1964. J. K. Wong, Isomorphism Problems Involving Planar Graphs, Ph.D. Thesis, Cornell University, Ithaca, NY, 1975.
[20] [21] [22] [23] [24] [25] [26] [27] [28] [29] [30] [31]
[32] [33] [34] [35] [36] [37] [38]