octagonal drawings of plane graphs with prescribed face areas

17
Computational Geometry 42 (2009) 214–230 Contents lists available at ScienceDirect Computational Geometry: Theory and Applications www.elsevier.com/locate/comgeo Octagonal drawings of plane graphs with prescribed face areas Md. Saidur Rahman a,, Kazuyuki Miura b , Takao Nishizeki c,1 a Department of Computer Science and Engineering, Bangladesh University of Engineering and Technology (BUET), Dhaka-1000, Bangladesh b Faculty of Symbiotic System Science, Fukushima University, Fukushima 960-1296, Japan c Graduate School of Information Sciences, Tohoku University, Aoba-yama 05, Sendai 980-8579, Japan article info abstract Article history: Received 17 April 2007 Received in revised form 3 September 2008 Accepted 9 September 2008 Available online 26 September 2008 Communicated by M. Goodrich Keywords: Graph drawing Octagonal drawing Prescribed face area Algorithm VLSI floorplanning An orthogonal drawing of a plane graph is called an octagonal drawing if each inner face is drawn as a rectilinear polygon of at most eight (polygonal) vertices and the contour of the outer face is drawn as a rectangle. A slicing graph is obtained from a rectangle by repeatedly slicing it vertically and horizontally. A slicing graph is called a good slicing graph if either the upper subrectangle or the lower one obtained by any horizontal slice will never be vertically sliced, roughly speaking. In this paper we show that every good slicing graph has an octagonal drawing with prescribed face areas, in which the area of each inner face is equal to a prescribed value. Such a drawing has practical applications in VLSI floorplanning. We also give a linear-time algorithm to find such a drawing when a “slicing tree” is given. We furthermore present a sufficient condition for a plane graph to be a good slicing graph. © 2008 Elsevier B.V. All rights reserved. 1. Introduction An orthogonal drawing of a plane graph G (with a fixed embedding) is a drawing of G such that each vertex is mapped to a point, each edge is drawn as a sequence of alternate horizontal and vertical line segments, and any two edges do not cross except at their common end as illustrated in Fig. 1(e). In an orthogonal drawing each face is drawn as a rectilinear polygon. Orthogonal drawings have attracted much attention due to their numerous practical applications in circuit schematics, cartograms, data flow diagrams, entity relationship diagrams, etc. [3,9–11,16,19]. In this paper we consider an orthogonal drawing of a plane graph G where the outer facial cycle of G is drawn as a rectangle, called the outer rectangle, and each inner face has a prescribed area. We call such an orthogonal drawing a prescribed-area orthogonal drawing. Fig. 1(a) depicts a plane graph G where a number written in each inner face indicates a prescribed area of the face, and Fig. 1(e) depicts a prescribed-area orthogonal drawing of G . Throughout the paper the four corners a, b, c and d of an outer rectangle are drawn by white circles. A prescribed-area orthogonal drawing of a plane graph G has practical applications in VLSI floorplanning. Floorplanning is an initial step in VLSI chip design where one decides the relative locations of functional entities in a chip. A VLSI floorplan is often considered as a subdivision of a rectangle into a finite number of non-overlapping smaller rectangles, each of which corresponds to a functional entity called a module [6,14]. A “slicing floorplan” is often used by VLSI design [12,20,21]. Divide a rectangle into two smaller rectangles by slicing it vertically or horizontally, divide any subrectangle into two smaller subrectangles by slicing it vertically or horizontally, and so on, as illustrated in Figs. 2(a)–(e). The resulting floorplan like one in Fig. 2(e) is called a slicing floorplan. An underlying plane graph of a slicing floorplan such as one illustrated in Fig. 2(f) * Corresponding author. E-mail addresses: [email protected] (Md.S. Rahman), [email protected] (K. Miura), [email protected] (T. Nishizeki). 1 Fax: +81-22-263-9301. 0925-7721/$ – see front matter © 2008 Elsevier B.V. All rights reserved. doi:10.1016/j.comgeo.2008.09.002

Upload: md-saidur-rahman

Post on 26-Jun-2016

213 views

Category:

Documents


1 download

TRANSCRIPT

Computational Geometry 42 (2009) 214–230

Contents lists available at ScienceDirect

Computational Geometry: Theory and Applications

www.elsevier.com/locate/comgeo

Octagonal drawings of plane graphs with prescribed face areas

Md. Saidur Rahman a,∗, Kazuyuki Miura b, Takao Nishizeki c,1

a Department of Computer Science and Engineering, Bangladesh University of Engineering and Technology (BUET), Dhaka-1000, Bangladeshb Faculty of Symbiotic System Science, Fukushima University, Fukushima 960-1296, Japanc Graduate School of Information Sciences, Tohoku University, Aoba-yama 05, Sendai 980-8579, Japan

a r t i c l e i n f o a b s t r a c t

Article history:Received 17 April 2007Received in revised form 3 September 2008Accepted 9 September 2008Available online 26 September 2008Communicated by M. Goodrich

Keywords:Graph drawingOctagonal drawingPrescribed face areaAlgorithmVLSI floorplanning

An orthogonal drawing of a plane graph is called an octagonal drawing if each inner faceis drawn as a rectilinear polygon of at most eight (polygonal) vertices and the contourof the outer face is drawn as a rectangle. A slicing graph is obtained from a rectangleby repeatedly slicing it vertically and horizontally. A slicing graph is called a good slicinggraph if either the upper subrectangle or the lower one obtained by any horizontal slicewill never be vertically sliced, roughly speaking. In this paper we show that every goodslicing graph has an octagonal drawing with prescribed face areas, in which the area ofeach inner face is equal to a prescribed value. Such a drawing has practical applicationsin VLSI floorplanning. We also give a linear-time algorithm to find such a drawing when a“slicing tree” is given. We furthermore present a sufficient condition for a plane graph tobe a good slicing graph.

© 2008 Elsevier B.V. All rights reserved.

1. Introduction

An orthogonal drawing of a plane graph G (with a fixed embedding) is a drawing of G such that each vertex is mapped toa point, each edge is drawn as a sequence of alternate horizontal and vertical line segments, and any two edges do not crossexcept at their common end as illustrated in Fig. 1(e). In an orthogonal drawing each face is drawn as a rectilinear polygon.Orthogonal drawings have attracted much attention due to their numerous practical applications in circuit schematics,cartograms, data flow diagrams, entity relationship diagrams, etc. [3,9–11,16,19].

In this paper we consider an orthogonal drawing of a plane graph G where the outer facial cycle of G is drawn asa rectangle, called the outer rectangle, and each inner face has a prescribed area. We call such an orthogonal drawing aprescribed-area orthogonal drawing. Fig. 1(a) depicts a plane graph G where a number written in each inner face indicates aprescribed area of the face, and Fig. 1(e) depicts a prescribed-area orthogonal drawing of G . Throughout the paper the fourcorners a,b, c and d of an outer rectangle are drawn by white circles.

A prescribed-area orthogonal drawing of a plane graph G has practical applications in VLSI floorplanning. Floorplanningis an initial step in VLSI chip design where one decides the relative locations of functional entities in a chip. A VLSI floorplanis often considered as a subdivision of a rectangle into a finite number of non-overlapping smaller rectangles, each of whichcorresponds to a functional entity called a module [6,14]. A “slicing floorplan” is often used by VLSI design [12,20,21]. Dividea rectangle into two smaller rectangles by slicing it vertically or horizontally, divide any subrectangle into two smallersubrectangles by slicing it vertically or horizontally, and so on, as illustrated in Figs. 2(a)–(e). The resulting floorplan likeone in Fig. 2(e) is called a slicing floorplan. An underlying plane graph of a slicing floorplan such as one illustrated in Fig. 2(f)

* Corresponding author.E-mail addresses: [email protected] (Md.S. Rahman), [email protected] (K. Miura), [email protected] (T. Nishizeki).

1 Fax: +81-22-263-9301.

0925-7721/$ – see front matter © 2008 Elsevier B.V. All rights reserved.doi:10.1016/j.comgeo.2008.09.002

Md.S. Rahman et al. / Computational Geometry 42 (2009) 214–230 215

Fig. 1. Illustration of the algorithm.

Fig. 2. Illustration of a slicing floorplan.

is called a slicing graph G , where the four vertices a,b, c and d of degree two on the outer face of G represent the corners ofthe outer rectangle. Thus a slicing graph G is a 2–3 plane graph in which each vertex has degree two or three, and a slicingfloorplan is a rectangular drawing of G , where each edge is drawn as a single horizontal or vertical line segment and each

216 Md.S. Rahman et al. / Computational Geometry 42 (2009) 214–230

Fig. 3. (a) A slicing graph G , (b) a prescribed-area rectangular drawing of another graph, and (c) a prescribed-area octagonal drawing of G .

face is drawn as a rectangle. (It should be noted that a 2–3 plane graph is not always a slicing graph as illustrated in Fig. 5.)Since each module needs some physical area, each face of G in the drawing should satisfy some area requirements. However,when the area of each face is prescribed, there may not exist a rectangular drawing of G; one example is illustrated in Fig. 3;the two faces of prescribed area 1 are adjacent in the plane graph in Fig. 3(a), but cannot be adjacent in any prescribed-arearectangular drawing as illustrated in Fig. 3(b). We thus consider an orthogonal drawing of a slicing graph where a face is notalways a rectangle as illustrated in Figs. 1(e) and 3(c). In VLSI floorplanning it is desirable that each inner face is drawn asa rectilinear polygon of simple shape such as a rectangle, an L-shape polygon, a T-shape polygon, etc. [4,6,13–15,20,21]. Wethus attempt to find a prescribed-area orthogonal drawing of G keeping the shape of each inner face as simple as possible.

In this paper we consider a fairly large subclass of slicing graphs called good slicing graphs. Roughly speaking, a slicinggraph is good if either the upper subrectangle or the lower one obtained by any horizontal slice will never be verticallysliced. (A formal definition of a good slicing graph will be given in Section 2.) All the graphs in Figs. 1(a), 2(f) and 3(a)are good slicing graphs. We show that any good slicing graph has a prescribed-area orthogonal drawing in which eachinner facial polygon has at most eight (polygonal) vertices, as illustrated in Figs. 1(e) and 3(c). We call such a drawingan octagonal drawing. We also give a linear-time algorithm to find such an octagonal drawing when the so-called slicingtree is given. We furthermore present a sufficient condition for a plane graph to be a good slicing graph. To the best ofour knowledge, this is the first work on a prescribed-area octagonal drawing. An early version of the paper was presentedat [7]. Recently, M. de Berg et al. [2] and Kawaguchi and Nagamochi [5] deal with prescribed-area orthogonal drawings oflarger classes of plane graphs, in which each inner facial cycle is drawn as a rectilinear polygon having a constant numberof (polygonal) vertices, more than eight vertices.

Our drawing algorithm is roughly outlined as follows. We first draw the outer cycle of G as a rectangle with four cornersa,b, c and d so that the area of the rectangle is equal to the sum of the prescribed areas of all inner faces, as illustratedin Fig. 1(b). We now embed a “slicing path” P connecting two opposite sides of the rectangle as a straight line segment sothat it divides the outer rectangle into two subrectangles each of whose areas is equal to the sum of the prescribed areas ofall faces inside it. In Fig. 1(b) a slicing path P is drawn by a thick line and the two subrectangles are shaded differently. Werecursively find a prescribed-area orthogonal drawing of the subgraph inside each rectangle, and we obtain a drawing of Gsuch as one illustrated in Fig. 1(f), where each inner face is drawn as a rectangle with prescribed area but the drawing isnot always a drawing of G . For example, vertex x is adjacent to y in G in Fig. 1(a), but x is not adjacent to y in the drawingin Fig. 1(f). We thus need to modify the drawing in each recursive step, as illustrated in Figs. 1(c) and (d), by introducingbends on some edges, and hence some faces are drawn as rectilinear polygons instead of rectangles like the shaded face inFig. 1(d). We finally get a prescribed-area octagonal drawing of G as illustrated in Fig. 1(e).

The rest of the paper is organized as follows. Section 2 introduces some definitions. Section 3 deals with octagonaldrawings of good slicing graphs. Section 4 presents a sufficient condition for a good slicing graph. Finally Section 5 concludeswith discussions.

2. Preliminaries

In this section we give some definitions.Let G be a plane 2-connected simple graph. We denote the set of vertices of G by V (G) and the set of edges of G

by E(G). The degree of a vertex v is the number of neighbors of v in G . Since G is a plane graph, G is embedded in theplane so that no two edges intersect except at a vertex to which they are both incident. G divides the plane into connectedregions called faces. We regard the contour of a face as a clockwise cycle formed by the edges on the contour, and call it afacial cycle. We call the contour of the outer face of G the outer cycle of G , and denote by Co(G) or simply Co . A vertex onCo is called an outer vertex, while a vertex not on Co is called an inner vertex. An edge on Co is called an outer edge, whilean edge not on Co is called an inner edge.

An orthogonal drawing of a plane graph G is a drawing of G in which each vertex is mapped to a point, each edge isdrawn as a sequence of alternate horizontal and vertical line segments, and any two edges do not cross except at theircommon end. A bend is a point where an edge changes its direction in a drawing. Each face of G is drawn as a rectilinearpolygon in any orthogonal drawing of G . Every plane graph of the maximum degree at most four has an orthogonal drawing.

Md.S. Rahman et al. / Computational Geometry 42 (2009) 214–230 217

Fig. 4. Division of G into two subgraphs G PW and G P

E by an NS-path P .

Fig. 5. A 2–3 plane graph which is not a slicing graph.

Given a plane graph G together with a positive value for each inner face, an octagonal drawing D of G is an orthogonaldrawing of G satisfying the following two conditions (i) and (ii):

(i) the outer cycle Co is drawn in D as a rectangle; and(ii) each inner face is drawn in D as a rectilinear polygon which has at most eight (polygonal) vertices and whose area is

exactly equal to the prescribed value.

A graph G is a 2–3 plane graph if G is a 2-connected plane graph, every vertex has degree two or three, and there arefour or more outer vertices of degree two, and exactly four of them, a,b, c and d, are designated as corners. The four cornersa,b, c and d divide Co into four paths, the north path P N , the east path P E , the south path P S , and the west path P W , asillustrated in Fig. 4. A path P in G is called an NS-path if P starts at a vertex on P N , ends at a vertex on P S , and does notpass through any other outer vertex and any outer edge. An NS-path P naturally divides G into two 2–3 plane graphs G P

Wand G P

E ; G PW is the west subgraph of G including P , and a,d and the two ends of P are designated as the corners of G P

W ;G P

E is the east subgraph of G including P , and b, c and the two ends of P are designated as the corners of G PE . We call

G PW and G P

E the two subgraphs corresponding to P . Similarly, we define a WE-path P , the north subgraph G PN , and the south

subgraph G PS .

We now present a formal recursive definition of a slicing graph. We call a 2–3 plane graph G a slicing graph if either ithas exactly one inner face or it has an NS- or WE-path P such that each of the two subgraphs corresponding to P is a slicinggraph. An NS- or WE-path P in a slicing graph G is called a slicing path of G if each of the two subgraphs corresponding toP is a slicing graph. All the graphs in Figs. 1(a), 2(f) and 3(a) are slicing graphs, while the graph in Fig. 5 is not. It shouldbe noted that every slicing graph has a rectangular drawing where each slicing path is embedded as a straight line.

If G is a slicing graph, then all slicing paths appearing in the recursive definition can be represented by a binary treeT , called a slicing tree, as illustrated in Fig. 6 for the graph in Fig. 2(f). Each internal node u of T represents a slicing path,which is denoted by Pu . Each leaf u of T represents an inner face Fu of G . Each node u of T corresponds to a subgraph Gu

of G induced by all inner faces that are leaves and are descendants of u in T . Thus G = Gr for the root r of T . Fig. 7 depictsa subgraph Gz of G in Fig. 6(a) for the right child z of root r. We classify the internal nodes of T into two types: (i) V-nodeand (ii) H-node. A V-node u represents an NS-slicing path Pu of Gu , while an H-node u represents a WE-slicing path Pu

of Gu . If an internal node u of T is a V-node, then the right child of u in T corresponds to the east subgraph G PuuE of Gu

divided by Pu and the left child corresponds to the west subgraph G PuuW . If u is an H-node, then the right child corresponds

to the north subgraph and the left child corresponds to the south subgraph.We then give a formal definition of a good slicing graph. A face path of a 2–3 plane graph G is a WE- or NS-path on

the contour of a single inner face of G . The graph G in Fig. 6(a) has no face path, while Gz in Fig. 7 has two face paths P2and P4, drawn by thick lines, which are on the contour of face F3; P2 and P4 are face WE-paths. Every face path P of aslicing graph G is a slicing path. We call a slicing tree T a good slicing tree if Pu is a face WE-path of Gu for every H-node uin T . The tree in Fig. 6(b) is a good slicing tree of the graph G in Fig. 6(a). We call a 2–3 graph a good slicing graph if it hasa good slicing tree for an appropriate labeling of designated corners a,b, c and d.

All the graphs in Figs. 1(a), 2(f), 3(a), 6(a) and 7 are good slicing graphs. There is a slicing graph which is not good, asillustrated in Fig. 8. Thus not every slicing graph is a good slicing graph. The definitions above imply that every verticalslice of a good slicing graph is an arbitrary “guillotine cut” but every horizontal slice must be a “guillotine cut” along a

218 Md.S. Rahman et al. / Computational Geometry 42 (2009) 214–230

Fig. 6. (a) A slicing plane graph G , and (b) a good slicing tree T of G .

Fig. 7. Subgraph Gz of G for node z of T .

Fig. 8. A slicing graph which is not good.

face WE-path. As we will show later in Section 3, our algorithm draws every vertical slice as a single vertical line segment,and draws every horizontal slice as either a single horizontal line segment or a sequence of three line segments, horizontal,vertical and horizontal ones, as illustrated in Figs. 1(e) and 3(c).

3. Octagonal drawing

In this section we prove the following theorem as the main result of the paper. Note that a slicing graph together withits slicing tree is often given as an input in many practical applications.

Theorem 3.1. A good slicing graph G with prescribed face areas has an octagonal drawing D, and the drawing D can be found in lineartime if a good slicing tree T is given.

In the rest of this section we give a constructive proof of Theorem 3.1. Let G be a good slicing graph with prescribedpositive value for each inner face. We assume that all vertices of G have degree three except for the four outer vertices

Md.S. Rahman et al. / Computational Geometry 42 (2009) 214–230 219

Fig. 9. Octagons.

Fig. 10. Octagons not appearing in our drawing.

a,b, c and d of degree two. We will show that every inner face of G is drawn as a rectilinear polygon of at most eightvertices whose shape is one of the nine shapes in Fig. 9, but is not like in Fig. 10. We call a rectilinear polygon of shapelike in Fig. 9 an octagon throughout the paper. Thus a rectangle is an octagon in our terminology, because the polygon inFig. 9(i) is a rectangle. We denote by A(R) the area of an octagon R , and by A(G) the sum of the prescribed areas of allinner faces of a plane graph G .

The rest of this section is organized as follows. We give our Algorithm Octagonal-Draw in Section 3.1. In Section 3.2 wegive the details for embedding a slicing path. In Section 3.3 we complete a proof of Theorem 3.1 by verifying correctnessand time complexity of the algorithm.

3.1. Algorithm Octagonal-Draw

In this section we give an algorithm for finding an octagonal drawing of a good slicing graph G .An outline of the algorithm is as follows. Let T be a good slicing tree of G . Let u be an internal node of T , let v be

the right child of u, and let w be the left child of u. If u is a V-node then its right subtree rooted at v represents the

220 Md.S. Rahman et al. / Computational Geometry 42 (2009) 214–230

Fig. 11. Initial rectangle Rr .

east subgraph G PuuE of Gu and its left subtree rooted at w represents the west subgraph G Pu

uW and hence G v = G PuuE and

G w = G PuuW , and if u is an H-node then G v = G Pu

uN and G w = G PuuS , as illustrated in Fig. 6. We now traverse T by reverse

preorder traversal, that is, we first traverse the root r of T , then traverse the right subtree and finally traverse the leftsubtree. We thus draw the inner faces F1, F2, . . . , F9 of G in Fig. 6(a) in this order, from east to west and north to south.

Before starting the traversal from root r, we choose an arbitrary rectangle Rr of area A(G). Thus A(G) = H × W if Hand W are the height and width of Rr , respectively. The outer cycle Co(G) is drawn as Rr . (See Fig. 11.) In general, whenwe traverse a node u of T , we have an octagon Ru of area A(Gu); Co(Gu) is drawn as Ru . If u is an internal node, thenwe embed the slicing path Pu inside Ru so that Pu divides Ru into two octagons R v and R w so that A(R v) = A(G v ) andA(R w) = A(G w), where v is the right child and w is the left child of u. (See Figs. 12 and 13.)

We start to traverse T from root r with the following initialization. We fix the positions of four designated verticesa,b, c and d of G as the corners of the initial rectangle Rr , as illustrated in Fig. 11. We then arbitrarily fix the positions ofall vertices on the east path P r

E of Gr = G while preserving their relative positions. The positions of all other vertices onCo(G), drawn by black circles in Fig. 11, are not fixed at this moment.

When we traverse an internal node u of T , we have an octagon Ru such that A(Ru) = A(Gu). Four vertices of degree twoon Co(Gu) have been designated as the four corners a,b, c and d of Gu as illustrated in Fig. 9. Let a, xN1, xN2,b, c, xS1, xS2,dbe the (polygonal) vertices, clockwise ordered, of the octagon Ru . Note that a,b, c and d are vertices of the graph Gu andxN1, xN2, xS1, xS2 are bends and some of them may be missing. The north path P u

N of Gu is the path on Co(Gu) clockwisegoing from a to b. Similarly we define P u

E , P uS and P u

W . See Fig. 12. The positions of vertices a,b, c and d together with allthe vertices on P u

E have been fixed, but the positions of all the other vertices of Gu have not been fixed.We now describe the operations performed at each internal node u of T . Let v be the right child of u in T , and let w be

the left child. We first consider the case where u is a V-node. In this case, the NS-slicing path Pu connects a vertex yN onP u

N and a vertex yS on P uS , as illustrated in Fig. 12. As we will show later, the positions of corners a, b, c and d of Ru together

with all vertices on P uE have been fixed, but the position of all other vertices of Gu have not been fixed. The goodness and

the traversal order of T are crucial in the argument. We now fix the positions of vertices yN and yS and divide Ru intotwo octagons R v and R w by embedding Pu as a vertical line segment so that A(R v ) = A(G v ) and A(R w) = A(G w). IndeedR w is always a rectangle, as illustrated in Fig. 12. We will give the detail of this step later in Section 3.2. We now designateyN ,b, c and yS as the four corners of G v , and designate a, yN , yS , and d as the four corners of G w . We then consider thecase where u is an H-node. In this case, the face WE-path Pu connects a vertex yW on P u

W and a vertex yE on P uE , as

illustrated in Fig. 13. The positions of all vertices on P uE including yE have been fixed. We appropriately fix the position of

yW on P uW and divide Ru into two octagons R v and R w so that A(R v) = A(G v ) and A(R w) = A(G w) by embedding Pu

as either a single horizontal line segment or a sequence of three line segments, horizontal, vertical and horizontal ones,as illustrated in Fig. 13. We will give the detail of this step later in Section 3.2. We now designate a,b, yE and yW as thecorners of G v , and designate yW , yE , c, and d as the corners of G w .

We finally consider the case where we traverse a leaf node u of T . In this case u corresponds to an inner face Fu , andthe embedding of Fu has been already fixed as an octagon Ru . (See Fig. 14.) The positions of a,b, c and d and all verticeson P u

E and P uN have been fixed. We arbitrarily fix the positions of all vertices on P u

W other than a and d, preserving theirrelative positions on P u

W . If there are vertices on P uS other than c and d, then their positions will be fixed in some later

steps.We call the algorithm described above Algorithm Octagonal-Draw.

3.2. Embedding a slicing path

In this section we give the details of embedding a slicing path Pu inside an octagon Ru .

Md.S. Rahman et al. / Computational Geometry 42 (2009) 214–230 221

Fig. 12. Embedding of Pu in Ru for a V-node u.

Fig. 13. Embedding of Pu in Ru for an H-node u.

Fig. 14. Ru for a leaf node u.

A (polygonal) vertex of an octagon Ru has an interior angle 90◦ or 270◦ . A vertex of an interior angle 90◦ is calleda convex vertex of Ru , while a vertex of an interior angle 270◦ is called a concave vertex. Let p and q be two consecutivepolygonal vertices of Ru . We denote by pq the (polygonal) edge of Ru connecting p and q. We also denote by pq the straightline segment connecting two points p and q.

Let Amin be the area of an inner face whose prescribed area is the smallest among all inner faces of G . Let H be theheight of the whole drawing, that is, the height of the initial rectangle Rr . (See Fig 11.) Let f be the number of inner facesin G , and let

λ = Amin

f H. (1)

Since A(G) = W H , we have λ = W Amin .

f A(G)

222 Md.S. Rahman et al. / Computational Geometry 42 (2009) 214–230

Let u be a node in T . Let ltu be the length of line segment xN2b of an octagon Ru , and let lbu be the length of linesegment cxS1, as illustrated in Fig. 9. If xN2 does not exist then let ltu = 0, and if xS1 does not exist then let lbu = 0. Letlu = max{ltu, lbu}. Thus lu = 0 if and only if Ru is a rectangle. Let f u

E be the number of inner faces in Gu each of which hasan edge on the east path P u

E of Gu . We call an octagon Ru a feasible octagon if the following eight conditions (i)–(viii) hold:

(i) A(Ru) = A(Gu);(ii) lu < f λ;

(iii) if xN2 is a concave vertex as in Figs. 9(a), (c) and (f), then ltu < ( f − f uE )λ;

(iv) if xS1 is a concave vertex as in Figs. 9(b), (c) and (g), then lbu < ( f − f uE )λ;

(v) if xN2 is a convex vertex as in Figs. 9(b), (d) and (h), then ltu � f uE λ;

(vi) if xS1 is a convex vertex as in Figs. 9(a), (d) and (e), then lbu � f uE λ;

(vii) if both xN2 and xS2 are concave vertices as in Fig. 9(a), then lbu − ltu � f uE λ; and

(viii) if both xN1 and xS1 are concave vertices as in Fig. 9(b), then ltu − lbu � f uE λ.

The initial octagon Rr for the root r of T is a rectangle of area A(Gr), where Gr = G . Since Rr is a rectangle,xN1, xN2, xS1, xS2 do not exist and hence lu = ltu = lbu = 0. Therefore the rectangle Rr is a feasible octagon.

We now have the following lemma on the embedding of Pu for a V-node u.

Lemma 3.2. Let u be a V-node of T , let v be the right child of u, and let w be the left child. If Ru is a feasible octagon, then the NS-slicingpath Pu can be embedded inside Ru as a single vertical line segment so that Ru is divided into two feasible octagons R v and R w .

Proof. We first show that Pu can be embedded as a vertical line segment inside Ru so that A(R v) = A(G v ) and A(R w) =A(G w), and hence R v and R w satisfies condition (i). Since u is a V-node, Pu connects a vertex yN on P u

N and a vertex ySon P u

S , as illustrated in Fig. 12. Since T is a good slicing tree, the north path P uN of Gu is either on the north path P r

N ofGr = G or on a face WE-path of Gz for some H-node z which is an ancestor of u in T . (See Fig. 7.) Therefore, G has a face(above P u

N ) such that P uN lies on its contour. Thus the positions of all vertices on P u

N other than a and b have not beenfixed although the face above P u

N has been drawn. Since the part of G below P uS has not been drawn, the position of all

vertices on P uS other than c and d have not been fixed. We can therefore embed Pu as a vertical line by sliding yN along P u

Ntogether with yS along P u

S until the equations A(R v ) = A(G v ) and A(R w) = A(G w) hold, as illustrated in Fig. 15. Clearly,this can be done in constant time if Ru , A(Gu), A(G v ) and A(G w) are given.

We then show that both R v and R w are octagons. Since Ru is a feasible octagon, by condition (ii) lu < f λ, and hence byEq. (1) lu H < f λH = Amin. This implies that each shaded rectangular area of width lu and height � H in Fig. 16 is smallerthan the area Amin of the smallest inner face in G regardless of the shape of octagon Ru . Since the east subgraph G v ofGu contains at least one inner face of G , we have Amin � A(G v). Thus sliding Pu above stops as in Fig. 15(a), and Pu is

Fig. 15. Sliding Pu in Ru .

Md.S. Rahman et al. / Computational Geometry 42 (2009) 214–230 223

Fig. 16. Dividing Ru to R v and R w by Pu .

embedded so that R w is drawn as a rectangle as illustrated in Fig. 16 for all nine shapes. Thus R v has a shape of the sametype as Ru , and hence both R v and R w are octagons.

Since R w is a rectangle, R w satisfies condition (ii)–(viii).We finally show that R v satisfies conditions (ii)-(viii). By inductive assumption Ru satisfies conditions (ii)–(viii). R v has

a shape of the same type as Ru . Furthermore, ltv = ltu , lbv = lbu , lv = lu and f vE = f u

E . Therefore R v also satisfies conditions(ii)–(viii). �

We now have the following lemma on an embedding of Pu for an H-node u.

Lemma 3.3. Let u be an H-node of T , let v be the right child of u, and let w be the left child. If Ru is a feasible octagon, then the WE-slicing path Pu can be embedded inside Ru as either a single horizontal line segment or a sequence of three line segments, horizontal,vertical and horizontal ones, so that Ru is divided into two feasible octagons R v and R w .

Proof. Since u is an H-node, the face WE-path Pu connects a vertex yW on P uW and a vertex yE on P u

E , as illustrated inFig. 17. We assume that the shape of Ru is as in Fig. 9(a). (The proof for the other shapes is similar.) In this case both xN2and xS2 of Ru are concave corners, and hence by condition (vii) lbu − ltu � f u

E λ > 0. Since xN2 is concave, by condition (iii)ltu � ( f − f u

E )λ. Also lu < f λ by condition (ii). The position of vertex yE has been fixed on P uE when the part of G to the

right of bc was drawn. The horizontal line L passing through yE intersects either ad or xS2xS1, and hence there are thefollowing two cases. In either case, one can find the embedding of Pu in constant time if Ru , A(Gu), A(G v ), A(G w), f u

E , f vE

and f wE are given.

Case 1: L intersects ad.Let L intersect ad at a point y′ as illustrated in Figs. 17(a), (b) and (c), and let Q be the polygon a, xN1, xN2,b, yE , y′ ,

then we have the following three subcases.Subcase 1(a): A(G v) = A(Q ).In this case we fix the position of vertex yW at point y′ and embed the path Pu as a single horizontal line segment

y′ yE , as illustrated in Fig. 17(a). R v is the octagon a, xN1, xN2,b, yE , yW , and R w is the octagon yW , yE , c, xS1, xS2,d. R v

has the shape of a type as in Fig. 9(f), and R w has the shape of type in Fig. 9(e).We first show that R v is feasible. Since A(R v ) = A(G v ), condition (i) holds for R v . Furthermore, lbv = 0, ltv = ltu , and

hence lv = ltv < lu = lbu < f λ. Thus condition (ii) also holds for R v . Since f vE < f u

E , we have ltv = ltu � ( f − f uE )λ < ( f − f v

E )λ

and hence condition (iii) also holds for R v . Since xS1 and xS2 of R v do not exist and xN2 of R v is concave, conditions (iv)–(viii) also hold. Thus R v is feasible.

We then show that R w is feasible. Since A(R w) = A(G w), condition (i) holds for R w . Furthermore lt w = 0, lbw = lbu ,and hence lw = lbu = lu < f λ. Thus condition (ii) also holds for R w . Since xS1 is a convex vertex of Ru , lbu � f u

E λ bycondition (vi). Clearly f w

E < f uE . Therefore we have lbw = lbu � f u

E λ > f wE λ, and hence condition (vi) also holds for R w . Since

xN1 and xN2 of R w do not exist and xS1 of R w is convex, the other conditions also hold for R w . Therefore R w is feasible.Subcase 1(b): A(G v ) < A(Q ).Clearly f v

E < f uE . We first fix the vertex y′

S1 of R v on L so that the horizontal line segment yE x′S1 has length ltu + f v

E λ

and hence lbv = ltu + f vE λ, as illustrated in Fig. 17(b). We then fix the positions of x′

S2 and yW so that A(R v) = A(G v ). Wenow claim that yW x′

S2 is below axN1. By condition (vii) lbu � f uE λ + ltu , and hence lu = lbu � f u

E λ + ltu > f vE λ + ltu = lbv .

Since lu < f λ by condition (ii), we have lbv H < lu H < f λH = Amin by Eq. (1) and hence the shaded rectangular area ofwidth lbv and height < H in Fig. 17(b) is smaller than Amin. Since G v has at least one inner face, we have Amin � A(G v ).Therefore yW x′

S2 is below axN1, and hence R v is a (simple) octagon a, xN1, xN2,b, yE , x′S1, x′

S2, yW , and R w is an octagonyW , x′

S2, x′S1, yE , c, xS1, xS2,d. Both R v and R w have a shape in Fig. 9(a).

We now show that R v is feasible. Since A(R v) = A(G v ), condition (i) holds for R v . Clearly, ltv = ltu , lbv < lbu , and hencelv = lbv < lu < f λ. Thus condition (ii) also holds for R v . Since ltv = ltu � ( f − f u)λ < ( f − f v)λ, condition (iii) also holds

E E

224 Md.S. Rahman et al. / Computational Geometry 42 (2009) 214–230

Fig. 17. Division of Ru to R v and R w by horizontal slice Pu .

for R v . Since lbv = ltu + f uE λ � f v

E λ, condition (vi) holds for R v . Since lbv − ltv = lbv − ltu = f vE λ, condition (vii) also holds.

Since xN1 and x′S1 of R v are convex, the other conditions also hold. Thus R v is feasible.

Similarly one can show that R w is a feasible octagon.Subcase 1(c): A(G v) > A(Q ).Clearly f w

E < f uE . We first fix x′

S1 on L so that lbv = f wE λ, and then fix the positions of x′

S2 and yW so that A(R v ) = A(G v ),as illustrated in Fig. 17(c). Since A(Q ) < A(G v), x′

S2 is below x′S1. We now claim that yW x′

S2 is above dxS2. By condition(vi) lbu � f u

E λ and hence lu = lbu � f uE λ > f w

E λ = lbv . Since lu H < f λH = Amin, the shaded area in Fig. 17(c) is smaller thanAmin. Since Amin � A(G w), yW x′

S2 is above dxS2. Thus R v is a simple octagon a, xN1, xN2,b, yE , x′S1, x′

S2, yW and R w is anoctagon yW , x′

S2, x′S1, yE , c, xS1, xS2,d. R v has a shape in Fig. 9(c), and R w has a shape in Fig. 9(d).

We then show that R v is feasible. Since A(R v ) = A(G v), condition (i) holds for R v . Since lbv < lu and ltv = ltu � lu ,we have lv = max{lbv , ltv} < lu < f λ. Hence condition (ii) also holds for R v . Since ltu < ( f − f u

E )λ by condition (iii) forRu , we have ltv = ltu � ( f − f u

E )λ < ( f − f vE )λ and hence condition (iii) also holds for R v . Since f u

E = f vE + f w

E , we havelbv = f w

E λ = ( f uE − f v

E )λ � ( f − f vE )λ and hence condition (iv) also holds for R v . Since xN1 and xS2 of R v are convex and

xN2 and xS1 are concave, the other conditions also hold for R v . Thus R v is feasible.We finally show that R w is feasible. Since A(R w) = A(G w), condition (i) holds for R w . Since lbw = lu > lbv = lt w , we have

lw = lbw = lu < f λ and hence condition (ii) also holds for R w . Since lt w = lbv = f wE λ, condition (v) also holds for R w . Since

lbu � f uE λ by condition (vi) for Ru , we have lbw = lbu = lu � f u

E λ > f wE λ and hence condition (vi) also holds for R w . Since

xN2 and xS1 of R w are convex, the other conditions also hold for R w . Thus R w is feasible.Case 2: L intersects xS2xS1 as illustrated in Fig. 17(d).Let L intersect xS2xS1 at a point y′ as illustrated in Fig. 17(d). Clearly 1 � f v

E < f uE . We first fix the vertex x′

S1 ofR v on L so that the horizontal line segment yE x′

S1 has length ltu + f vE λ and hence lbv = ltu + f v

E λ. By condition (vii)lbu � ltu + f u

E λ for Ru . We thus have lbv = ltu + f vE λ < ltu + f u

E λ � lbu , and hence yE x′S1 is shorter than yE x′ . We then fix

the positions of x′S2 and yW so that A(R w) = A(G w). Since lu H < f λH = Amin, the shaded area in Fig. 17(d) is smaller

than Amin. Since Amin � A(G w), yW x′S2 is above dxS2. Similarly one can show that yW x′

S2 is below axN1. Thus R v is anoctagon a, xN1, xN2,b, yE , x′

S1, x′S2, yW , and R w is an octagon yW , x′

S2, x′S1, yE , c, xS1, xS2,d. Both R v and R w have a shape

in Fig. 9(a).Similarly to the proof of subcase 1(b), one can show that both R v and R w are feasible. �

Md.S. Rahman et al. / Computational Geometry 42 (2009) 214–230 225

3.3. Correctness and time complexity

In this section we verify the correctness and time complexity of Algorithm Octagonal-Draw, and mention some remarkson the algorithm.

We first prove the following lemma on the correctness of Algorithm Octagonal-Draw.

Lemma 3.4. Algorithm Octagonal-Draw finds an octagonal drawing of a good slicing graph G.

Proof. The initial rectangle Rr at the root r of T is a feasible octagon. Assume inductively that u is an internal node of Tand Ru is a feasible octagon. Let v and w be the right child and left child of u, respectively. By Lemmas 3.2 and 3.3 one canembed Pu inside Ru so that R v and R w are feasible octagons. Thus, after the execution of the algorithm, each inner face ofG corresponding to a leaf of T is a feasible octagon. Of course, the contour of the outer face of G is the rectangle Rr . ThusAlgorithm Octagonal-Draw finds an octagonal drawing of G . �

We now have the following lemma on the time complexity of Algorithm Octagonal-Draw.

Lemma 3.5. Algorithm Octagonal-Draw runs in linear time.

Proof. Since A(Gu) for each leaf u in T is prescribed, using a bottom-up computation one can compute A(Gu) for eachnode u in T . This operation takes linear time in total. One can compute the number f u

E for all nodes u of T in lineartime. From Ru , A(Gu), A(G v ), A(G w), f u

E , f vE and f w

E , one can find the embedding of Pu and hence decide R v and R w inconstant time, as noted in the proofs of Lemmas 3.2 and 3.3. Thus the algorithm Octagonal-Draw runs in linear time. �

Lemmas 3.4 and 3.5 complete the proof of Theorem 3.1.We finally describe a remark: Algorithm Octagonal-Draw can be easily modified so that it finds a drawing with pre-

scribed face areas such that the outer cycle Co is drawn as any prescribed feasible octagon, which is not always arectangle.

4. A sufficient condition for good slicing graphs

In this section we present a sufficient condition for a 2–3 plane graph to be a good slicing graph and give a linear-timealgorithm to find a good slicing tree of a graph satisfying the condition.

Every slicing graph has a rectangular drawing, in which every face is drawn as a rectangle. A necessary and sufficientcondition is known for a 2–3 plane graph to have a rectangular drawing; it is described in Lemma 4.1 below [8,17]. Oursufficient condition for good slicing graphs is represented in terms similar to ones used by the necessary and sufficientcondition, which are defined below.

An edge of a 2–3 plane graph G is called a leg of a cycle C if it is incident to exactly one vertex of C and located outsideC . The vertex of C to which a leg is incident is called a leg-vertex of C . A cycle in G is called a k-legged cycle if C has exactlyk legs and there is no edge which joins two vertices on C and is located outside C . Fig. 18(a) illustrates 2-legged cyclesC1, C2, C3 and C4, while Fig. 18(b) illustrates 3-legged cycles C5, C6, C7 and C8, where four corners a,b, c and d are drawnby white circles.

If a 2-legged cycle contains at most one corner like C1, C2 and C3 in Fig. 18(a), then some inner face cannot be drawnas a rectangle and hence G has no rectangular drawing. Similarly, if a 3-legged cycle contains no corner like C5 and C8 inFig. 18(b), then G has no rectangular drawing. Thus (r1) and (r2) in Lemma 4.1 are trivial necessary conditions for G to havea rectangular drawing. However, they are known to be a sufficient condition, too, as in Lemma 4.1 [8,17].

Fig. 18. Good cycles C4, C6 and C7, and bad cycles C1, C2, C3, C5 and C8.

226 Md.S. Rahman et al. / Computational Geometry 42 (2009) 214–230

Fig. 19. A good slicing graph which does not satisfy the condition in Theorem 4.2.

Lemma 4.1. A 2–3 plane graph has a rectangular drawing if and only if

(r1) every 2-legged cycle contains two or more corners, and(r2) every 3-legged cycle contains one or more corners.

A cycle in (r1) or (r2) is called good. Cycles C4, C6 and C7 in Fig. 18 are good; the 2-legged cycle C4 contains two corners,and the 3-legged cycles C6 and C7 contain one or two corners. On the other hand, a 2-legged or 3-legged cycle is calledbad if it is not good. Thus 2-legged cycles C1, C2 and C3 and 3-legged cycles C5 and C8 are bad. In particular, a 2-leggedbad cycle is called a bad corner cycle if it contains exactly one corner like C3. Lemma 4.1 can be rephrased as follows: G hasa rectangular drawing if and only if G has no bad cycle. Thus a trivial necessary condition for a 2–3 plane graph G to be aslicing graph is that G has no bad cycle.

We call a cycle other than the outer cycle Co(G) an inner cycle. An inner facial cycle C of G is called a boundary facialcycle if C contains an outer edge. A cycle C is called a proper inner cycle if C does not contain any outer edge. We nowpresent our sufficient condition for a 2–3 plane graph to be a good slicing graph in the following theorem.

Theorem 4.2. If a 2–3 plane graph G has no bad cycle and every proper inner cycle in G has at least five legs, then G is a good slicinggraph and a good slicing tree T of G can be found in linear time.

The graphs in Figs. 1(a), 3(a) and 6(a) satisfy the condition in Theorem 4.2, while the graphs in Figs. 5 and 8 do notsatisfy it because they have a proper inner cycle with only four legs. The graph in Fig. 19 is a good slicing graph, but doesnot satisfy the condition in Theorem 4.2. Thus the condition is not a necessary one.

In the remainder of this section we give a proof of Theorem 4.2 and present a corollary.Before presenting the proof we need some notations and definitions. Let G be a 2–3 plane graph. For a cycle C in G we

denote by G(C) the plane subgraph of G inside C (including C ). A cycle C in G is attached to a path P if (i) P does notcontain any vertices in G(C) except for the vertices of C and (ii) the intersection of C and P is a single subpath of P , asillustrated in Fig. 20. Let vs be the starting vertex of the subpath, and let vt be the terminating vertex. Denote by Q c(C)

the path on C turning clockwise around C from vs to vt and by Q cc(C) the path on C turning counterclockwise around Cfrom vs to vt . A leg of C is called a clockwise leg for P if it is incident to a vertex in V (Q c(C)) − {vs, vt}. Denote by nc(C)

the number of clockwise legs of C for P . Similarly we define a counterclockwise leg and denote by ncc(C) the number ofcounterclockwise legs of C for P . A cycle C attached to a path P is called a clockwise cycle if Q cc(C) is a subpath of P , and iscalled a counterclockwise cycle if Q c(C) is a subpath of P . A cycle C attached to a path P is called a critical cycle if either C isa clockwise cycle and nc(C) � 1 or C is a counterclockwise cycle and ncc(C) � 1. Fig. 20 illustrates a clockwise critical cycle.

We assume from now on that a 2–3 plane graph G has no bad cycle and every proper inner cycle of G has at least fivelegs. An NS-path P is called an NS-partitioning path if both G P

W and G PE have no bad cycle and every proper inner cycle

of G PW and G P

E has at least five legs. Similarly we define a WE-partitioning path. We then immediately have the followinglemma.

Lemma 4.3. Assume that a 2–3 plane graph G has no bad cycle and every proper inner cycle of G has at least five legs. Then every faceWE-path of G is a WE-partitioning path, and every face NS-path is an NS-partitioning path.

If G has neither a face WE-path nor a face NS-path, then we can find an NS-partitioning path by modifying the “westmostNS-path”. An NS-path P is defined to be westmost if

(1) P starts at the neighbor u of a on P N ,(2) P ends at the neighbor v of d on P S , and(3) the number of edges in G P is minimum.

W

Md.S. Rahman et al. / Computational Geometry 42 (2009) 214–230 227

Fig. 20. Clockwise critical cycle C attached to path P .

In Fig. 21 the westmost NS-path is drawn as a vertical line.Some proper inner cycles of G may be attached to the westmost NS-path P . Clearly all these cycles are clockwise at-

tached to P . Clearly, G PW has no bad cycle and has no proper inner cycle. However, P is not always an NS-partitioning

path, because some cycles attached to P may be critical cycles and hence would be bad cycles of G PE . Note that P becomes

the west path P W of G PE . A cycle, among the critical cycles attached to P , is defined to be maximal if its inside is max-

imal. The insides of all maximal critical cycles are pairwise disjoint. In Fig. 21 the insides of five maximal critical cyclesCm1, Cm2, . . . , Cm5 are shaded.

A boundary path is a maximal (directed) path on a boundary facial cycle connecting two outer vertices without passingthrough any outer edge. For X, Y ∈ {N, E, S, W }, a boundary XY-path is a boundary path starting at a vertex on P X andending at a vertex on P Y . We now have the following lemma.

Lemma 4.4. Assume that a 2–3 plane graph G has no bad cycle and every proper inner cycle of G has at least five legs. If G has neithera face WE-path nor a face NS-path, then G has an NS-partitioning path.

Proof. Assume that G has neither a face WE-path nor a face NS-path. Let P = w1, w2, . . . , w j be the westmost NS-pathof G , where j � 2, w1 = u and w j = v . Then we can find an NS-partitioning path P∗ from P , as follows. (In Fig. 21 P∗ isindicated by dotted lines.)

Firstly, we find two paths P st and Pen; P st is the starting subpath of P∗ , and Pen is the ending subpath of P∗ . Let α be thelargest index among 1,2, . . . , j such that vertex wα is contained in a boundary NN- or EN-path Q . Let Q = y1, y2, . . . , yl ,where y1 ∈ V (P N ) ∪ V (P E) and yl ∈ V (P N ), and let wα = yi (see Fig. 21). Similarly, let β be the smallest index such thatvertex wβ is contained in a boundary SS- or SE-path R . Let R = z1, z2, . . . , zk , where z1 ∈ V (P S) and zk ∈ V (P S ) ∪ V (P E),and let wβ = zr . Then clearly α � β . Choose P st = yl, yl−1, . . . , yi and Pen = zr, zr−1, . . . , z1, and we let P∗ pass throughP st and Pen . Then neither G P∗

E nor G P∗W has a bad corner cycle; otherwise, there would occur a contradiction either to the

selection of P st and Pen or to the assumption that G has no bad cycle. Furthermore, there is no critical cycle attached topaths P st or Pen , since every proper inner cycle of G has five or more legs.

Secondly, for each edge e on the subpath Pαβ of P connecting wα and wβ on P , if e is not contained in any maximalcritical cycle C attached to P , then we let P∗ pass through e.

Lastly, we choose subpaths of P∗ for each of the clockwise maximal critical cycles C attached to the subpath Pαβ , asfollows. (In Fig. 21 Cm3 and Cm4 are these maximal cycles.) Since C is critical, nc(C) � 1. Thus either nc(C) = 0 or nc(C) = 1.If nc(C) = 0, then ncc(C) � 3; otherwise, C would have less than five legs, contrary to the assumption. (In Fig. 21 nc(Cm3) = 0and ncc(Cm3) = 4.) If nc(C) = 1,then ncc(C) � 2; otherwise, C would have less than five legs, contrary to the assumption. (InFig. 21 nc(Cm4) = 1 and ncc(Cm4) = 2.) In either case, we let P∗ pass through Q c(C).

If we choose P∗ as above, then one can observe that both G P∗E and G P∗

W have no bad cycle and that any proper innercycle in G P∗

E or G P∗W has five or more legs. Therefore P∗ is an NS-partitioning path. �

Using Lemmas 4.3 and 4.4, one can recursively find a good slicing tree T of G and the NS- and WE-partitioning pathscorresponding to all inner nodes of T if G satisfies the condition of Theorem 4.2, as follows: find a face path as a WE- orNS-slicing path if it exists, otherwise find an NS-partitioning path as an NS-slicing path; the recursion terminates when Gis a single face. Clearly T is a good slicing tree of G . Using a method described in [8], one can find the NS- and WE-slicingpaths corresponding to all inner nodes of T in linear time and hence can construct T in linear time. We have thus provedTheorem 4.2.

Yeap and Sarrafzadeh [21] gave a sufficient condition for a 2–3 plane graph G to be a slicing graph. Although theircondition is represented in terms of a dual graph of G , theirs and ours are effectively same. We, however, showed as in

228 Md.S. Rahman et al. / Computational Geometry 42 (2009) 214–230

Fig. 21. Clockwise critical cycles attached to the westmost NS-path P .

Theorem 4.2 that the condition is a sufficient condition for a 2–3 plane graph to be not only a slicing graph but also a goodslicing graph.

A connected graph is cyclically k-edge connected if the removal of any set of less than k edges leaves a graph such thatexactly one of the connected components has a cycle. Thus the graph in Fig. 5 is cyclically 4-edge connected, but notcyclically 5-edge connected. Note that the removal of the four edges indicated by a dotted circle leaves a graph of twoconnected components, each having a cycle. Let G be a 2–3 plane graph obtained from a cyclically 5-edge connected plane

Md.S. Rahman et al. / Computational Geometry 42 (2009) 214–230 229

cubic graph by inserting four vertices a,b, c and d of degree two on the outer cycle. Thomassen [18] showed that sucha 2–3 plane graph G has a drawing in which each edge is drawn as a single straight line segment which is not alwayshorizontal or vertical, each inner face attains its prescribed area, and the outer cycle is a rectangle having the four verticesas corners. Thus, in his drawing, each inner face is drawn with a polygon which is not always rectilinear. The class of goodslicing graphs is larger than the class of graphs obtained from cyclically 5-edge connected cubic plane graphs by insertingfour vertices of degree two on the outer cycle, as shown in the following corollary of Theorem 4.2.

Corollary 4.5. A 2–3 plane graph G obtained from a cyclically 5-edge connected cubic plane graph by inserting four dummy verticesof degree two on four distinct outer edges is a good slicing graph, and a good slicing tree of G can be found in linear time.

Proof. Let G be a graph obtained from a cyclically 5-edge connected cubic plane graph G ′ by inserting four vertices a,b, cand d of degree two on Co(G ′). Then G has no bad cycle and any proper inner cycle of G has at least five legs. Therefore Gsatisfies the condition in Theorem 4.2, and hence G is a good slicing graph, and a good slicing tree can be found in lineartime. �

We finally remark that one can examine in linear time whether a given 2–3 plane graph G satisfies the condition inTheorem 4.2. Note that a set of legs of a k-legged cycle of G corresponds to a k-cycle of a dual graph of G , and that alltriangles and quadrangles of a plane graph can be found in linear time [1].

5. Conclusions

In this paper we show that every good slicing graph has an octagonal drawing with prescribed face areas, and gave alinear-time algorithm to find such a drawing when a good slicing tree is given. We also obtained a sufficient condition for aplane graph G to be a good slicing graph and gave a linear-time algorithm to construct a good slicing tree if G satisfies thecondition.

Let Amax be the area of an inner face whose prescribed area is the largest among all inner faces of a good slicing graphG , and let k = Amax/Amin. We then have

W H � f Amax = f kAmin

and hence

λ = Amin

f H� W

kf 2.

Thus, in a VLSI floorplan produced by our algorithm, the width of the narrowest part of a module is at least λ � Wkf 2 .

Although λ may be small, one can appropriately choose a larger value as λ in many practical floorplans.It is remaining as a future work to obtain a necessary and sufficient condition for a 2–3 plane graph to have an octagonal

drawing with prescribed face areas.

Acknowledgements

We thank Shin-ichi Nakano, Kazuyoshi Hada, Ikki Mizumura and Satoshi Matsuda for helpful discussions at an early stageof the work. We also thank the referees for their useful comments which improved the presentation of the paper.

References

[1] N. Chiba, T. Nishizeki, Arboricity and subgraph listing algorithms, SIAM Journal on Computing 14 (1) (1985) 210–223.[2] M. de Berg, E. Mumford, B. Speckmann, On rectilinear duals for vertex-weighted plane graphs, in: Proc. of Graph Drawing 2005, in: Lect. Notes in

Computer Science, vol. 3843, Springer, 2006, pp. 61–72.[3] M. de Berg, E. Mumford, B. Speckmann, Optimal BSPs and rectilinear cartograms, in: Proc. 14th Ann. ACM Int. Symp. on Advances in Geographic

Information Systems, 2006, pp. 19–26.[4] X. He, On floorplans of planar graphs, SIAM Journal on Computing 28 (6) (1999) 2150–2167.[5] A. Kawaguchi, H. Nagamochi, Orthogonal drawings for plane graphs with specified face areas, in: Proc. 4th Int. Conf. on Theory and Applications of

Models of Computation, in: Lect. Notes in Computer Science, vol. 4484, Springer, 2007, pp. 584–594.[6] T. Lengauer, Combinatorial Algorithms for Integrated Circuit Layout, John Wiley & Sons, Chichester, 1990.[7] M.S. Rahman, K. Miura, T. Nishizeki, Octagonal drawings of plane graphs with prescribed face areas, in: Proc. of WG 2004, in: Lect. Notes in Computer

Science, vol. 3353, Springer, 2004, pp. 320–331.[8] M.S. Rahman, S. Nakano, T. Nishizeki, Rectangular grid drawings of plane graphs, Computational Geometry: Theory and Applications 10 (3) (1998)

203–220.[9] M.S. Rahman, S. Nakano, T. Nishizeki, A linear algorithm for bend-optimal orthogonal drawings of triconnected cubic plane graphs, Journal of Graph

Algorithms and Applications 3 (4) (1999) 31–62, http://jgaa.info.[10] M.S. Rahman, M. Naznin, T. Nishizeki, Orthogonal drawings of plane graphs without bends, Journal of Graph Algorithms and Applications 7 (4) (2003)

335–362, http://jgaa.info.[11] J. Storer, On minimum node-cost planar embeddings, Networks 14 (1984) 181–212.

230 Md.S. Rahman et al. / Computational Geometry 42 (2009) 214–230

[12] W. Shi, A fast algorithm for area minimization of slicing floorplans, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Sys-tems 15 (12) (1996) 1525–1532.

[13] Y. Sun, M. Sarrafzadeh, Floorplanning by graph dualization: L-shaped modules, Algorithmica 10 (1998) 429–456.[14] S.M. Sait, H. Youssef, VLSI Physical Design Automation, World Scientific, Singapore, 1999.[15] K. Tani, S. Tsukiyama, S. Shinoda, I. Shirakawa, On area-efficient drawings of rectangular duals for VLSI floor-plan, Mathematical Programming 52 (1991)

29–43.[16] R. Tamassia, On embedding a graph in the grid with the minimum number of bends, SIAM Journal on Computing 16 (1987) 421–444.[17] C. Thomassen, Plane representations of graphs, in: J.A. Bondy, U.S.R. Murty (Eds.), Progress in Graph Theory, Academic Press, Canada, 1984, pp. 43–69.[18] C. Thomassen, Plane cubic graphs with prescribed face areas, Combinatorics, Probability and Computing 1 (1992) 371–381.[19] M. van Kreveld, B. Speckmann, On rectangular cartograms, Computational Geometry: Theory and Applications 37 (3) (2007) 175–187.[20] K. Yeap, M. Sarrafzadeh, Floor-planning by graph dualization: 2-concave rectilinear modules, SIAM Journal on Computing 22 (3) (1993) 500–526.[21] K.H. Yeap, M. Sarrafzadeh, Sliceable floorplanning by graph dualization, SIAM Journal on Discrete Mathematics 8 (2) (1995) 258–280.