Octagonal Drawings of Plane Graphs with Prescribed Face Areas Takao Nishizeki (Tohoku Univ.) 指定面積的平面図的八角形描画 西関 隆夫 (東北大学) ツディン メンジディ ピンメントウディ バージョシン ミョー ワォ
Sendai city Hsinchu city Tokyo Hsinchu city and Sendai city Only 2400 km 新竹仙台 新竹 東京
Tohoku University (東北大学) Tohoku University was established in 春 夏 秋 冬
Lu Xian and Prof. Fujino Book Cover1 st page
GSIS, Tohoku University Graduate School of Information Sciences (GSIS), Tohoku University, was established in Faculties Math. Robotics Economics Human Social Sciences Interdisciplinary School 情報科学研究科 Transportation Computer Science 450 students
Book
Octagonal Drawings of Plane Graphs with Prescribed Face Areas Takao Nishizeki (Tohoku Univ.) 指定面積的平面図的八角形描画 西関 隆夫 (東北大学) ツディン メンジディ ピンメントウディ バージョシン ミョー ワォ
Prescribed-Area Octagonal Drawing Input Plane graph
K 27 G 19 A 46 C 11 J 14 I 12 B 65 D 56 E 23 F 8 H 37 Prescribed-Area Octagonal Drawing Input Plane graph A real number for each inner face
K 27 G 19 A 46 C 11 J 14 I 12 B 65 D 56 E 23 F 8 H 37 A 46 B 65 C 11 D 56 E 23 F 8 H 37 G 19 I 12J 14 K 27 Prescribed-Area Octagonal Drawing Input Output Plane graph Prescribed-area octagonal drawing A real number for each inner face
K 27 G 19 A 46 C 11 J 14 I 12 B 65 D 56 E 23 F 8 H 37 A 46 B 65 C 11 D 56 E 23 F 8 H 37 G 19 I 12J 14 K 27 Prescribed-Area Octagonal Drawing Input Output Each inner face is drawn as a rectilinear polygon of at most eight corners. The outer face is drawn as a rectangle. Each face has its prescribed area.
K 27 G 19 A 46 C 11 J 14 I 12 B 65 D 56 E 23 F 8 H 37 A 46 B 65 C 11 D 56 E 23 F 8 H 37 G 19 I 12J 14 K 27 Prescribed-Area Octagonal Drawing Input Output Each inner face is drawn as a rectilinear polygon of at most eight corners. The outer face is drawn as a rectangle. Each face has its prescribed area.
Applications VLSI Floorplanning Each module has area requirements. Obtained by subdividing a given rectangle into smaller rectangles. Each smaller rectangle corresponds to a module.
Area requirements cannot be satisfied if each module is allowed to be only a rectangle Area requirements can be satisfied if each module is allowed to be a simple rectilinear polygon Applications VLSI Floorplanning It is desirable to keep the shape of each rectilinear polygon as simple as possible.
Our Results G: a good slicing graph O(n) time algorithm.
Slicing Floorplan A slicing floorplan can be obtained by repeatedly subdividing rectangles horizontally or vertically.
Slicing Floorplan and Slicing Graph Slicing Floorplan Slicing Graph corner Not a Slicing Floorplan Not a Slicing Graph
Slicing Tree
P 1
P 1 P : V 1 root
Slicing Tree P 1 P : V 1 Right subgraph becomes right subtree Left subgraph becomes left subtree root
Slicing Tree P 2 P : V 1 root
Slicing Tree P 2 P : V 1 2 root
Slicing Tree P 3 P : V 1 2 root
Slicing Tree P 3 P : V 1 2 P : H 3 root
Slicing Tree P 3 P : V 1 2 P : H 3 Upper subgraph becomes right subtree Lower subgraph becomes left subtree root
Slicing Tree f f f f f f f f f f P : V 1 2 P : H P : V 5 P : H 6 f 9 f 10 f 8 f 6 f 7 f 4 f 3 f 2 f 5 f 1 root
Good Slicing Graph A slicing tree is good if each horizontal slice is a face path. P E P P P P P P P P P f f f f f f f f f f P P N S W P : V 1 2 P : H P : V 5 P : H 6 f 9 f 10 f 8 f 6 f 7 f 4 f 3 f 2 f 5 f 1 P
Three face paths On a boundary of a single face
Not a face path
Good Slicing Graph A slicing tree is good if each horizontal slice is a face path. P P P P P P P P P f f f f f f f f f f P : V 1 2 P : H P : V 5 P : H 6 f 9 f 10 f 8 f 6 f 7 f 4 f 3 f 2 f 5 f 1
Good Slicing Graph A slicing tree is good if each horizontal slice is a face path. P P P P P P P P P f f f f f f f f f f P : V 1 2 P : H P : V 5 P : H 6 f 9 f 10 f 8 f 6 f 7 f 4 f 3 f 2 f 5 f 1 We call a graph a good slicing graph if it has a good slicing tree.
Good Slicing Graph For a horizontal slice, at least one of the upper subgraph and the lower subgraph cannot be vertically sliced. Cannot be vertically sliced Can be vertically sliced
Not every slicing graph is a good slicing graph.
Input P P P P P P P P P f f f f f f f f f f P : V 1 2 P : H P : V 5 P : H 6 f 9 f 10 f 8 f 6 f 7 f 4 f 3 f 2 f 5 f 1 A Good Slicing Graph A Good Slicing Tree
Output Prescribed-area Octagonal drawing Each inner face is drawn as a rectilinear polygon with at most eight corners. Particularly, each inner face is drawn as a rectilinear polygon of the following nine shapes. A 46 B 65 C 11 D 56 E 23 F 8 H 37 G 19 I 12J 14 K 27
Octagons 8 corners 6 corners 4 corners
Octagons A 46 B 65 C 11 D 56 E 23 F 8 H 37 G 19 I 12J 14 K 27
Do not appear
Feasible Octagons Octagons of nine shapes must satisfy some conditions on size
P : V 1 2 P : H P : V 5 P : H 6 f 9 f 10 f 8 f 6 f 7 f 4 f 3 f 2 f 5 f 1 First traverse root Algorithm Then traverse the right subtree Finally, traverse the left subtree Depth-first search
P : V 1 2 P : H P : V 5 P : H 6 f 9 f 10 f 8 f 6 f 7 f 4 f 3 f 2 f 5 f 1 Algorithm f f f f f f f f f f P 1
P : V 1 2 P : H P : V 5 P : H 6 f 9 f 10 f 8 f 6 f 7 f 4 f 3 f 2 f 5 f 1 Algorithm f f f f f f f f f f P 1
P : V 1 2 P : H P : V 5 P : H 6 f 9 f 10 f 8 f 6 f 7 f 4 f 3 f 2 f 5 f 1 Algorithm f f f f f f f f f f P 2
P : V 1 2 P : H P : V 5 P : H 6 f 9 f 10 f 8 f 6 f 7 f 4 f 3 f 2 f 5 f 1 Algorithm f f f f f f f f f f P 3
P : V 1 2 P : H P : V 5 P : H 6 f 9 f 10 f 8 f 6 f 7 f 4 f 3 f 2 f 5 f 1 Algorithm f f f f f f f f f f P 3
P : V 1 2 P : H P : V 5 P : H 6 f 9 f 10 f 8 f 6 f 7 f 4 f 3 f 2 f 5 f 1 Algorithm f f f f f f f f f f P 4
P : V 1 2 P : H P : V 5 P : H 6 f 9 f 10 f 8 f 6 f 7 f 4 f 3 f 2 f 5 f 1 Algorithm f f f f f f f f f f
P : V 1 2 P : H P : V 5 P : H 6 f 9 f 10 f 8 f 6 f 7 f 4 f 3 f 2 f 5 f 1 Algorithm f f f f f f f f f f
P : V 1 2 P : H P : V 5 P : H 6 f 9 f 10 f 8 f 6 f 7 f 4 f 3 f 2 f 5 f 1 Algorithm f f f f f f f f f f
P : V 1 2 P : H P : V 5 P : H 6 f 9 f 10 f 8 f 6 f 7 f 4 f 3 f 2 f 5 f 1 Algorithm f f f f f f f f f f
Algorithm Initialization at root
Algorithm Initialization at root Draw the outer cycle as an arbitrary rectangle of area A(G). A(G): sum of the prescribed areas of all inner faces in G.
Algorithm Initialization at root Draw the outer cycle as an arbitrary rectangle of area A(G). A(G): sum of the prescribed areas of all inner faces in G.
Algorithm Initialization at root Draw the outer cycle as an arbitrary rectangle of area A(G). A(G): sum of the prescribed areas of all inner faces in G
Algorithm Initialization at root Draw the outer cycle as an arbitrary rectangle of area A(G). A(G): sum of the prescribed areas of all inner faces in G W = 23 H = 20
Algorithm Initialization at root Draw the outer cycle as an arbitrary rectangle of area A(G). A(G): sum of the prescribed areas of all inner faces in G. Fix arbitrarily the position of vertices on the right side of the rectangle preserving their relative positions.
Root : vertical slice Operation at root Algorithm A(G) P r : V P v : V P w : V r v w A(G v ) A(G w ) PrPr A(G v )
Root : vertical slice Operation at root Algorithm P r : V P v : V P w : V r v w
Root : vertical slice Operation at root Algorithm P r : V P v : V P w : V r v w
Root : vertical slice Operation at root Algorithm P r : V P v : V P w : V r v w
Root : vertical slice Operation at root Algorithm P r : V P v : V P w : V r v w
Root : vertical slice Operation at root Algorithm P r : V P v : V P w : V r v w
Root : horizontal slice Operation at root Algorithm P r : H P v : V P w : V r v w R A(G v ) A(G w )
Root : horizontal slice Operation at root Algorithm P r : H P v : V P w : V r v w A(G w ) A(G v ) R Case 1: A(G v ) = A(R) A(G v ) A(G w )
Root : horizontal slice Operation at root Algorithm A(G w ) A(G v ) Case 2: A(G v ) > A(R) R A(G v ) A(G w )
Root : horizontal slice Operation at root Algorithm Case 3: A(G v ) < A(R) Case 2: A(G v ) > A(R) A(G w ) A(G v ) A(G w )
Root : horizontal slice Operation at root Algorithm 6 corners A(G w ) A(G v ) Case 3: A(G v ) < A(R) Case 2: A(G v ) > A(R) A(G w ) A(G v ) A(G w )
Polygon of exactly 8 corners may appear when a horizontal slice is embedded inside a polygon of 6 corners. 6 corners 8 corners
P u : V P v : V P w : V u v w General computation at an internal node Feasible Octagon R u Vertical slice
P r : V P v : V P w : V u v w General computation at an internal node Feasible Octagon R u Vertical slice Fixed
P r : V P v : V P w : V u v w General computation at an internal node Feasible Octagon R u Vertical slice Fixed Face
P r : V P v : V P w : V u v w General computation at an internal node Feasible Octagon R u Embed the slicing path in R u Vertical slice
P r : V P v : V P w : V u v w General computation at an internal node Feasible Octagon R u Vertical slice Feasible Octagon R v Feasible Octaon R w
A(G v ) A(Gw)A(Gw) A(Gv)A(Gv)A(Gv)A(Gv) A(Gw)A(Gw) Large 10 corners Horizontal slice
very small foot-lenght RuRu PuPu A(Gv)A(Gv) 10 corners
very small foot-lenght RuRu PuPu f number of inner faces in G
very small foot-lenght RuRu PuPu f number of inner faces in G K 27 G 19 A 46 C 11 J 14 I 12 B 65 D 56 E 23 F 8 H 37 Input A min A min = 8
very small foot-lenght RuRu PuPu f number of inner faces in G H height of initial rectangle R r Input at root R r A(R ) = A(G) r H=20
very small foot-lenght RuRu PuPu f number of inner faces in G K 27 G 19 A 46 C 11 J 14 I 12 B 65 D 56 E 23 F 8 H 37 Input A min A min = 8 A(R ) = A(G) r H=20
very small foot-lenght RuRu PuPu f number of inner faces in G
very small foot-lenght RuRu large enough East side
very small foot-lenght RuRu large enough East side The number of inner faces each of which has an edge on the east side.
Computation at a leaf node P E P W P S N P P E P W P S N P
Time Complexity Overall time complexity is linear.
Conclusion We have presented a linear algorithm for prescribed area octagonal drawings of good slicing graphs. Obtaining such an algorithm for larger classes of graphs is our future work. We also give a sufficient condition for a graph of maximum degree 3 to be a good slicing graph and give a linear-time algorithm to find a good slicing tree of such graphs.
A sufficient condition for a good slicing graph A good slicing tree can be found in linear time for a cyclically 5-edge connected plane cubic graph.
Cyclically 5-edge Connected Cubic Plane Graphs Removal of any set of less than 5-edges leaves a graph such that exactly one of the connected components has a cycle. X X X X
X X X X X X X X Not cyclically 5-edge connected Two connected components having cycles. No connected component has a cycle.
A sufficient condition for a good slicing graph Any graph G obtained from a cyclically 5- edge connected plane cubic graph by inserting four vertices of degree 2 on outer face is a good slicing graph.
Augmentation
Algorithm Initialization at root
RuRu PEPE If a large number of inner faces have edges on P E then foot-lengh should be large enough. Dimensions of R u play crucial roles. large
Dimensions of a Feasible Octagon ?
ltlt lblb
ltlt lblb f number of inner faces in G The number of inner faces each of which has an edge on the east side. a positive constant.
ltlt lblb f number of inner faces in G The number of inner faces each of which has an edge on the east side. a positive constant. K 27 G 19 A 46 C 11 J 14 I 12 B 65 D 56 E 23 F 8 H 37 Input A min A min = 8
ltlt lblb f number of inner faces in G The number of inner faces each of which has an edge on the east side. a positive constant. H height of initial rectangle R r Input at root R r A(R ) = A(G) r H=20
ltlt lblb f number of inner faces in G The number of inner faces each of which has an edge on the east side. a positive constant. K 27 G 19 A 46 C 11 J 14 I 12 B 65 D 56 E 23 F 8 H 37 Input A min A min = 8 A(R ) = A(G) r H=20
K 27 G 19 A 46 C 11 J 14 I 12 B 65 D 56 E 23 F 8 H 37 Input A min A min = 8 A(R ) = A(G) r H=20
K 27 G 19 A 46 C 11 J 14 I 12 B 65 D 56 E 23 F 8 H 37 Input A min A min = 8 A(R ) = A(G) r H=20
H height of initial rectangle R r Input at root R r A(R ) = A(G) r H=20
a b c d ltlt lblb l < f δ
a b c d l tu l bu l < f δ Red area < l u H < f δH < A min
A(G v ) A(Gw)A(Gw) A(Gv)A(Gv)A(Gv)A(Gv) A(Gw)A(Gw) Large This situation does not occur.
lblb lblb
lblb lblb for a facial octagon whose x S1 is convex.
P r : V P v : V P w : V u v w General computation at an internal node Feasible Octagon R u Feasible Octagon R v Feasible Octagon R w
Time Complexity Using a bottom-up computation on slicing tree, area of subgraphs for all internal nodes can be computed in linear time. With an O(n) time preprocessing, embedding of the slicing path at each internal node takes constant time. Overall time complexity is linear. Computation time at a leaf node is proportional to the number of non-corner vertices on the west side of the face.
Conclusion We have presented a linear algorithm for prescribed area octagonal drawings of good slicing graphs. Obtaining such an algorithm for larger classes of graphs is our future works.
P P P P N E S W u R a b c d l tu l bu xN2xN2 xN1xN1 xS1xS1 xS1xS1 l < f δ
l tu = 0 l bu = 0 l u = 0 If the octagon is a rectangle
R u is a feasible octagon if R u satisfies the following eight conditions (ii) l u < fδ (i) A(R u ) =A(G u ) (iii) if x N 2 is a convex corner then (iv) if x S1 is a convex corner then (v) if both x N2 and x S then Feasible Octagon
(vi) if both x N1 and x S1 are concave corners then (vii) if x N 2 is a concave corner then (viii) if x S1 is a concave corner then
P E P P P P P P P P P f f f f f f f f f f P P P N S W P : V 1 2 P : H P : V 5 P : H 6 f 9 f 10 f 8 f 6 f 7 f 4 f 3 f 2 f 5 f 1 u (i) A(R u ) =A(G u ) RuRu
(iii) if x N 2 is a convex corner then xN1xN1 xN2xN2 l tu for a facial octagon whose x N2 is convex. xN1xN1 xN2xN2 l tu
(vi) if x S1 is a convex corner then xs1xs1 xs2xs2 xs1xs1 xs2xs2 l bu for a facial octagon whose x S1 is convex.
(v) if both x N2 and x S2 are concave corners then xs1xs1 xs2xs2 xN1xN1 xN2xN2 l bu - l tu
(v) if both x N2 and x S2 are concave corners then xs1xs1 xs2xs2 xN1xN1 xN2xN2 l bu - l tu for a facial octagon whose x N2 and x S2 are concave
(vi) if both x N1 and x S1 are concave corners then l bu - l tu for a facial octagon whose x N1 and x S1 are concave
P r : V P v : V P w : V u v w General computation at an internal node Feasible Octagon R u Feasible Octagon R v Feasible Octagon R w
Embedding of a vertical slicing path P P P N E S W u R a b c d xN2xN2 xN1xN1 xS1xS1 xS1xS1
P P P P N E S W u R a b c d l tu l bu xN2xN2 xN1xN1 xS1xS1 xS1xS1 (ii) l u < f δ Red area < l u H < f δH < A min The vertical slicing path is always embedded as a vertical line segment.
Embedding of a vertical slicing path P P P N E S W a b c d xN2xN2 xN1xN1 xS1xS1 xS1xS1 RwRw RvRv R w is a rectange which is a feasible octagon. R v is a feasible octagon since R u is a feasible octagon.
Embedding of a horizontal slicing path xs1xs1 xs2xs2 xN1xN1 xN2xN2 (v) if both x N2 and x S2 are concave corners then RvRv RwRw RuRu Both R v and R w are feasible octagons. We can prove for other cases.
Computation at a leaf node x P E P W P S N P P E P W P S N P
Algorithm Octagonal-Draw S : V 1 2 S : H S : V 5 S : H 6 f 9 f 10 f 8 f 6 f 7 f 4 f 3 f 2 f 5 f 1 Reverse preorder traversal from root
very small Intuitively RuRu PuPu A(G v ) P u can be embedded successfully although A(G v ) is very large. Dimensions of R u play crucial roles. We call R u a feasible octagon if P u can embedded successfully irrespective of size of A(G v ).
P P P P N E S W x G
Algorithm S : V 1 2 S : H S : V 5 S : H 6 f 9 f 10 f 8 f 6 f 7 f 4 f 3 f 2 f 5 f 1 P E P P P N S W G Input at root
(a)(b)(c)(d) (e) PxPx PxPx PxPx PxPx PxPx A face in R z may need to be drawn with more than eight corners. RzRz RyRy RzRz RyRy RzRz RyRy RzRz RyRy RzRz RyRy Computation at a V-node x Let y be the right child of x and z be left child of x.
Foot Length l x of an Octagon R x P P P P N E S W x G txtx bxbx l x = max {t x, b x }
P P P P N E S W u R a b c d l tu l bu The number of inner faces in G u each of which has an edge on the east side. a positive constant. f number of inner faces in G H height of initial rectangle R r xN2xN2 xN1xN1 xS1xS1 xS1xS1
If the footlength of R x is resonably small then R z will always be drawn as a rectngle. PxPx PxPx PxPx PxPx PxPx RzRz RyRy RzRz RyRy RzRz RyRy RzRz RyRy RzRz RyRy
Neck Length d of a Facial Octagon d d d d Maximum foot length P P P N S W G P E l max f : number of faces in G
P P N W P P E S txtx bxbx l x = max {t x, b x } Estimating d We fix d such that holds.
PxPx PxPx PxPx PxPx PxPx RzRz RyRy RzRz RyRy RzRz RyRy RzRz RyRy RzRz RyRy R z is always a rectangle.
Computation at a H-node x Let y be the right child of x and z be left child of x. P W P E P S y G txtx bxbx N P z G x G P E P W P S txtx bxbx N P y G z G x G P E P W P S txtx bxbx N P y G z G x G According to Areas of G y and G z Satisfying some Invariants
number of faces in G x having an edge on Invariants txtx txtx bxbx bxbx
txtx txtx bxbx bxbx
Computation at a leaf node x P E P W P S txtx bxbx N P y G z G x G P E P W P S txtx bxbx N P y G z G x G
Time Complexity Using a bottom-up computation on slicing tree, area of subgraphs for all internal nodes can be computed in linear time.
K 27 G 19 F 8 C 11 J 14 I 12 A 46 B 65 D 56 E 23 H 37 G’ 1165 s1s1 s1s1 76 s2s2 CB s2s s4s4 s5s5 E s5s5 D s6s6 s6s6 s 10 FHG s7s7 s8s8 K s9s9 JI s3s3 A s4s4 s3s3
Time Complexity Using a bottom-up computation on slicing tree, area of subgraphs for all internal nodes can be computed in linear time. With an O(n) time preprocessing, embedding of the slicing path at each internal node takes constant time.
number of faces in G x having an edge on txtx txtx bxbx bxbx P E P W P S txtx bxbx N P y G z G x G P E P S y G txtx bxbx N P z G x G
Time Complexity Using a bottom-up computation on slicing tree, area of subgraphs for all internal nodes can be computed in linear time. With an O(n) time preprocessing, embedding of the slicing path at each internal node takes constant time. Computation time at a leaf node is proportional to the number of non-corner vertices on the west side of the face.
Computation at a leaf node x P E P W P S txtx bxbx N P y G z G x G P E P W P S txtx bxbx N P y G z G x G
Foot Length l x of an Octagon R x P P P P N E S W x G txtx bxbx l x = max {t x, b x }
According to Areas of G y and G z Satisfying Invariant
A Linear Algorithm for Prescribed-Area Octagonal Drawings of Plane Graphs Md. Saidur Rahman Kazuyuki Miura Takao Nishizeki TOHOKU UNIVERSITY
Previous works on prescribed-area drawing Thomassen, 1992 Obtained from cyclically 5-edge connected plane cubic graphs by inserting four vertices of degree 2 on outer face. G:G:
Cyclically 5-edge Connected Cubic Plane Graphs Removal of any set of less than 5-edges leaves a graph such that exactly one of the connected components has a cycle. X X X X
X X X X X X X X Not cyclically 5-edge connected Two connected components having cycles. No connected component has a cycle.
Previous works on prescribed area drawing Thomassen, 1992 Obtained from cyclically 5-edge connected plane cubic graphs by inserting four vertices of degree 2 on outer face. G: G has a prescribed area straight-line drawing. An inner face is not always drawn as a rectilinear polygon. Outer face is a rectangle Inner faces are arbitrary polygons O(n 3 ) time algorithm.
Theorem Let G be a 2-3 plane graph obtained from a cyclically 5-edge connected plane cubic graph by inserting four vertices of degree 2 on four distinct edges. Then G is a good slicing graph. That is, Thomassen’s graph is a good slicing graph.
Cyclically 5-edge Connected cubic graph with four vertices of degree 2 inserted on outer face Good Slicing Graphs Slicing Graphs
Slicing Graph P P P P N E S W NS-path P P P P N E S W WE-path G is a slicing graph if either it has exactly one inner face or it has an NS-path or a WE-path P such that both the subgraphs corresponding to P are slicing graphs. P P P is called a slicing path. G: 2-3 plane graph G G G G P P P P W E N S