Interactive Orthogonal Graph Drawing Achilleas Papakostas and Ioannis G. Tollis Department of Computer Science The University of Texas at Dallas Richardson, TX 75083-0688 email:
[email protected],
[email protected] July 1996
Abstract Many applications require human interaction during the design process. The user is given the ability to alter the graph as the design progresses. Interactive Graph Drawing allows the user to dynamically interact with the drawing. In this paper we discuss features that are essential for an interactive orthogonal graph drawing system. We also describe some possible interactive drawing scenaria, present results on two of them, and compare their performance.
Research supported in part by NIST, Advanced Technology Program grant number 70NANB5H1162.
1 Introduction Graphs have been extensively used to represent various important concepts or objects. Examples include parallel computer architectures, networks, state graphs, entity-relationship diagrams, subroutine call graphs, automata, data- ow graphs, Petri nets, VLSI circuits, etc. In all of these cases, we require that the graph be represented (or drawn) in the plane so that we can understand and study its structure and properties. It is for this reason that, typically, the drawing of a graph is accompanied by optimizing some cost function such as area, number of bends, number of edge crossings, uniformity in the placement of vertices, minimum angle, etc. For a survey of graph drawing algorithms and other related results see the annotated bibliography of Di Battista, Eades, Tamassia and Tollis [4]. An orthogonal drawing is a drawing in which vertices are represented by points of integer coordinates and edges are represented by polygonal chains consisting of horizontal and vertical line segments. In this paper we focus our attention on interactive orthogonal graph drawing. In [19] and [21] it is shown that every biconnected planar graph of maximum degree four can be drawn in the grid with 2n + 4 bends. If the graph is not biconnected then the total number of bends rises to 2:4n + 2. In all cases, no more than four bends per edge are required. The algorithms of [21] take linear time and produce drawings, such that at most one edge may have four bends. Kant [9] shows that if the graph is triconnected of maximum degree four, then it can be drawn on an n n grid with at most three bends per edge. The total number of bends is no more than b 23 nc + 3. For planar graphs of maximum degree three it is shown in the same paper that a gridsize of d n2 e d n2 e is sucient and no more than b n2 c + 1 bends are required. In this case, no edge bends more than twice. Even and Granot [6] present an algorithm for obtaining an orthogonal drawing of a 4-planar graph with at most three bends per edge. If the embedding of a planar graph is xed, then an orthogonal drawing with the minimum number of bends can be computed in O(n2 log n) time [20]. If the planar embedding is not given, the problem is polynomially solvable for 3-planar graphs [5], and NP-hard for 4-planar graphs [8]. There is a lower bound of 2n ? 2 bends for biconnected planar graphs [22]. Upper and lower bounds have been proved in the case when the orthogonal drawing of the graph is not necessarily planar. Leighton [10] presented an in nite family of planar graphs which require area (n log n). Independently, Leiserson [11] and Valiant [23] showed that 1
every planar graph of degree three or four has an orthogonal drawing with area O(n log2 n). Valiant [23] showed that the orthogonal drawing of a general (nonplanar) graph of degree three or four requires area no more than 9n2, and described families of graphs that require area (n2). Schater [18] presented an algorithm which constructs orthogonal drawings of graphs with at most two bends per edge. The area required is 2n 2n. A better algorithm is presented in [1] and [2], which draws the graph within an n n grid with no more than two bends per edge. This algorithm introduces at most 2n + 2 bends. Recently, we presented an algorithm that produces an orthogonal drawing of a graph of maximum degree four that requires area at most 0:76n2 [15]. This algorithm introduces at most 2n + 2 bends, while the number of bends that appear on each edge is no more than two. If the maximum degree is three, then we have another algorithm which produces an orthogonal drawing that needs area at most 41 n2 and b n2 c +3 bends [15, 16]. In this drawing, no more than one bend appears on each edge except for one edge, which may have at most two bends. In all of the above, the drawing algorithm is given a graph as an input and it produces a drawing of this graph. If an insertion (or deletion) is performed on the graph, then we have a \new" graph. Running the drawing algorithm again will result in a new drawing, which might be vastly dierent from the previous one. This is an inecient use of time and resources from two points of view: (a) the time to run the algorithm on the new graph, and (b) the user may have spent a signi cant amount of time in order to understand and analyze the previous drawing. We investigate techniques that run eciently and introduce minimal changes to the drawing. The rst systematic approach to dynamic graph drawing appeared in [3]. There the target was to perform queries and updates on an implicit representation of the drawing. The algorithms presented were for straight line, polyline and visibility representations of trees, series-parallel graphs, and planar graphs. Most updates of the data structures required O(log n) time. The algorithms maintained the planarity of the drawing. The insertion of a single edge however, might cause a planar graph to drastically change embedding, or even to become non planar. An incremental approach to orthogonal graph drawing was presented in [13], where the focus was on routing edges eciently without disturbing existing nodes or edges. Layout 2
adjustment methods were proposed in [14] for rearranging a diagram to avoid overlapping nodes, and for changing the focus of interest of the user in a diagram. The layout adjustment methods of [14] have the property that they preserve the user's \mental map", that is the way that the user \visualizes" and \understands" the drawing. In this paper we investigate issues in interactive graph drawing. We introduce four scenaria for interactive graph drawing, and we analyze two of them. These scenaria are based on the assumption that the underlying drawing is orthogonal and the maximum degree of any vertex is four at the end of an update operation. We show that in one scenario (Relative-Coordinates), the general shape of the current drawing remains unchanged after an update is performed. The coordinates of some vertices and bends of the current drawing may shift by a total amount of at most 6 units along the x and y axes. Linear programming is employed to prove upper bounds on the area and the number of bends for this scenario. More speci cally, an interactive graph drawing system under the Relative-Coordinates scenario builds a drawing that has no more than 3n(t) ? 1 bends when the graph is connected at all times, and no more than 4n(t) bends otherwise. The area of the drawing is never larger than 2:25n(t)2 when the graph is connected at all times, and no larger than 3n(t)2 otherwise. Note that n(t) is the number of vertices that have been inserted to an initially empty graph up to time t. No edge has more than 3 bends at any time during the drawing process. Results regarding the performance of this scenario when the very rst update operation applies to a non-empty graph are also presented. In another scenario (No-Change), we discuss an interactive graph drawing technique for building an orthogonal drawing of a graph from scratch, so that any update operation inserts a new vertex and routes new edges in the drawing without disturbing the current drawing. Analyzing the performance of the No-Change scenario reveals that the area of the drawing at any time t is no more than 1:77n(t)2 when the graph is connected at all times, and no more than 4n(t)2 otherwise. Note that n(t) is the total number of vertices at time t. Apart from the area, this scenario has good behavior in terms of the total number of bends as well, which are no more than 2:66n(t) + 2 when the graph is connected at all times, and no more than 4n(t) otherwise. At most 3 bends may appear on any edge of the drawing, any time. In Section 2 we give an example of some features that an interactive drawing system should 3
have. In Sections 3 and 4 we analyze two interactive graph drawing scenaria (i.e., RelativeCoordinates and No-Change), and present our results on their performance. In Section 5 we compare these two scenaria in terms of their performance, and discuss some extensions. Finally, Section 6 presents conclusions and open problems.
2 Interactive Scenaria Software which supports interactive graph drawing features should be able to: (a) create a drawing of the given graph under some layout standard (e.g., orthogonal, straight line, etc.), and (b) give the user the ability to interact with the drawing in the following ways:
insert an edge between two speci ed vertices, insert a vertex along with its incident edges, delete edges, vertices or blocks of vertices, move a vertex around the drawing, move a block of vertices and edges around the drawing. The drawing of the graph that we have at hand at some time moment t is called current drawing, and the graph is called current graph. The drawing resulting after the user request is satis ed is called new drawing. There are various factors which aect the decisions that an interactive drawing system takes at each moment a user request is posted and before the next drawing is displayed. Some of these factors are the following:
The amount of control the user has upon the position of a newly inserted vertex. The amount of control the user has on how a new edge will be routed in the current drawing connecting two vertices of the current graph.
How dierent the new drawing is, when compared with the current drawing. Keeping these factors in mind, we propose four dierent scenaria for interactive graph drawing, in this section. They are the following: 4
1. The Full-Control scenario. The user has full control over the position of a new vertex in the current drawing. The control can range from specifying lower and upper bounds on the x and y coordinates that the new vertex will have, up to providing the exact desired coordinates to the system. The edges can be routed by the user or by the system. 2. The Draw-From-Scratch scenario which is based on a very simple idea: every time a user request is posted, the new graph is drawn using one of the popular drawing techniques. Apart from the fact that this scenario gives rather slow interactive drawing systems, the new drawing might be completely dierent compared to the current one. 3. The Relative-Coordinates scenario. The general shape of the current drawing remains the same. The coordinates of some vertices and/or edges may change by a small constant because of the insertion of a new vertex and its incident edges (somewhere in the middle of the current drawing), and the insertion of a constant number of rows and columns. 4. The No-Change scenario. In this approach, the coordinates of the already placed vertices, bends and edges do not change at all. In order to achieve such a property, we need to maintain some invariants after each insertion. There is a close connection between the Full-Control scenario and global routing in VLSI layout [12]. The reason is that this approach deals with (re)location of vertices and (re)routing of edges using the free space in the current drawing. The technique presented in [13] computes routes for new edges inserted in the graph, and it does so without disturbing any of the existing vertices and edges. The Draw-From-Scratch scenario is not interesting since every time an update is requested by the user, the drawing system ignores all the work that it did up to that point. The major disadvantage here is that the user has to \relearn" the drawing. In the rest of the paper, we discuss the other two scenaria when they are used by interactive systems to produce orthogonal drawings of graphs. In these drawings, we assume that the maximum degree of any vertex at any time is less than or equal to four. We also present our results regarding the area and the number of bends that drawings under these two scenaria require, and compare their performance. 5
3 The Relative-Coordinates Scenario In this scenario, every time a new vertex is about to be inserted into the current drawing, the system makes a decision about the coordinates of the vertex and the routing of its incident edges. New rows and columns may be inserted anywhere in the current drawing in order for this routing to be feasible. The coordinates of the new vertex (say v ) as well as the locations of the new rows and/or columns will depend on the following:
v's degree (at the time of insertion). for each vertex u that is adjacent to v, which directions (i.e., up, down, right, or left) around placed vertex u new edges can be inserted. Whether or not the required routing of edges can be done utilizing segments of existing rows or columns that are free (not covered by an edge).
Our optimization criteria. When we use the Relative-Coordinates scenario in an interactive system, we can start from an existing drawing of a graph, or we can start from scratch, that is from an empty graph. In either case, we assume that the insertion of any vertex/edge under this scenario will not increase the number of connected components of the current graph. The only exception to this is when a single vertex is inserted to an empty current graph. Any other vertex inserted during an update operation will be connected to at least one vertex of the current drawing. Let us assume that v is the next vertex to be inserted in the current graph during an update operation. The number of vertices in the current graph that v is connected to, is called the local degree of v , and is denoted by local degree(v ). From the discussion above it follows that we only consider the case where an inserted vertex has local degree one, two, three or four, except for the rst vertex inserted in an empty graph. If the user wishes to insert a new vertex that has local degree zero, then this vertex is placed in a temporary location and it will be inserted automatically in the future, when some newer vertices increase its (local) degree. Assume that vertex v is about to be inserted in the current graph. For each one of the vertices of the current drawing that is adjacent to v , the system checks the possible directions 6
around these vertices that new edges may be inserted or routed. The target is to minimize the number of new rows or columns that have to open up in the current drawing, as well as the number of bends that appear along the routed edges. There are many dierent cases because there are many possible combinations. First, we will give examples of some of the best and worst cases one might encounter, and then, we will see in more detail how v is inserted when its local degree is one, two, three or four. In the example shown in Fig. 1a vertices u1 and u2 have a free edge (i.e., grid edge not covered by a graph edge) up and to the right respectively. In this case no new rows/columns are needed for the insertion of vertex v and no new bends are introduced. On the other hand however, in the example shown in Fig. 1b all four vertices u1 , u2 , u3 and u4 have pairwise opposite direction free edges. The insertion of new vertex v requires the insertion of three new rows and three new columns in the current drawing. Additionally, eight bends are introduced. Vertices u1 , u2 , u3 and u4 have general positions in Fig. 1b, and we can see that edge (v; u4) has four bends. We can avoid the 4-bend edge, if we insert vertex v in the way shown in Fig. 1c. The total number of new rows, columns and bends is still the same, but the maximum number of bends per edge is now three. For a more even distribution of the bends of the edges adjacent to vertex v , we may choose to insert it in the way shown in Fig. 1d, where every edge has exactly two bends (three new rows and three new columns are still required). Notice, though, that the approach described in Fig. 1d for inserting vertex v , is not always possible (e.g., we cannot have this kind of insertion if vertices u1 , u2, u3 and u4 are in the same row or column). Let v be the next vertex to be inserted. There are many cases, if one is interested in an exhaustive analysis. However, it is relatively easy to come up with all the cases for each insertion. Here, we distinguish the following main cases for vertex v : 1. v has local degree one. If u is the vertex of the current drawing that is adjacent to v , we draw an edge between u and v . Edge (u; v ) uses a direction (up, right, bottom, or left) that is not taken by some other edge incident to u. This is depicted in Fig. 2a, and this insertion requires at most either a new row or a new column. No new bend is inserted. 2. v has local degree two. In the best case, the insertion requires no new rows, columns or bends as shown in Fig. 1a. In the worst case, though, two new rows and one new 7
u1 v
u2
v
u1
u4
u2
u1
u4
u2 v
v
u3
(a)
u4
u2
u1
u3
u3 (c)
(b)
(d)
Figure 1: Insertion of v : (a) no new row or column is required, (b),(c) and (d) three new rows and three new columns are required, with a maximum of four bends per edge in (b), three bends per edge in (c), and two bends per edge in (d). column, or one new row and two new columns (see Fig. 2b), and three new bends might be required. 3. v has local degree three. In the worst case, the insertion requires a total of four new rows and columns, and ve new bends. In Fig. 2c we show an example of such an insertion that requires one new row, three new columns and ve new bends. 4. v has local degree four. The worst case requires a total of six new rows and columns; however, at most four of them can be either rows or columns. Also, eight new bends may be introduced, in the worst case. We have already discussed an example, which is depicted in Fig. 1c. In Fig. 2d we show another case, where two new rows, four new columns and eight new bends are introduced. (a) v v
u
v v
(b) (c)
(d)
Figure 2: Inserting v when its local degree is (a) one, (b) two, (c) three, and (d) four. As discussed in the previous section, single edge insertions can be handled using techniques from global routing [12] or the technique of [13]. The easiest way to handle deletions is 8
to delete vertices/edges from the data structures without changing the coordinates of the rest of the drawing. Occasionaly, or on demand, the system can perform a linear-time compaction similar to the one described in [21], and refresh the screen.
Proposition 3.1 Asssume that n vertices are inserted to a given non-empty orthogonal
drawing of a graph whose height is h and width is w, following the interactive graph drawing scheme for the \Relative-Coordinates scenario". This insertion may add up to 8n new bends and result in a new drawing whose area is at most ( h+2 w + 3n)2.
Proof. Assume that all n inserted vertices have local degree four, and each one of them falls
into one of the worst cases described above, in terms of rows, columns and bends introduced. This means that each insertion introduces eight new bends and a total of six new rows and columns. Let hfinal and wfinal be the height and the width, respectively, of the graph after the n vertex insertions are completed. We have that: hfinal + wfinal = h + w + 6n. The area of the nal drawing hfinal wfinal is maximized when hfinal = wfinal = hfinal +2wfinal = h+w + 3n. Hence the result follows. 2 2
In the rest of this section we assume that, when we use the interactive graph drawing scheme under the Relative-Coordinates scenario, we start from scratch, that is the given graph is empty. According to the discussion in the beginning of this section, the RelativeCoordinates scenario guarantees that the graph that is being built is always connected after any vertex insertion. Let n1 (t), n2 (t), n3 (t) and n4 (t) denote the number of vertices of local degree one, two, three and four, respectively, that have been inserted up to time t.
Theorem 3.1 An interactive graph drawing system under the \Relative-Coordinates scenario" produces an orthogonal drawing of a connected graph, which has the following properties at any time t:
1. after each vertex insertion, the coordinates of any vertex or bend of the current drawing may shift by a total amount of at most 6 units along the x and y axes, 2. there are at most 3 bends along any edge of the drawing, 3. the total number of bends is at most 3n(t) ? 1, and 4. the area of the drawing is at most 2:25n(t)2,
9
where n(t) is the number of vertices that have been inserted up to time t.
Proof. The rst property follows from the de nition of the Relative-Coordinates scenario
and from the fact that at most six new rows and columns might open anywhere in the current drawing (see Figs. 1b, 1c, 1d, 2d) as a result of a vertex insertion. Figures 1 and 2 cover the worst cases in terms of rows, columns and bends required for a single vertex insertion, and for all possible local degrees of the inserted vertex. From these gures we observe the following: First there can be at most three bends along any edge of the drawing (see Fig. 1c). Second, the bends along an edge are introduced at the time of insertion of the vertex that is incident to that edge. From Figs. 1 and 2 and from the discussion above, it follows that at most 3 new bends are introduced when a vertex of local degree two is inserted, at most 5 new bends when a vertex of local degree three is inserted, and at most 8 new bends when a vertex of local degree four is inserted. No new bend is introduced when a vertex of local degree one is inserted. In other words, if B (t) is the total number of bends at time t, it holds that:
B(t) 3n2(t) + 5n3(t) + 8n4 (t) We want to compute the maximum value that B (t) can take, in order to establish an upper bound on the number of bends of the drawing at time t. This is equivalent to solving the following linear program: maximize: 3n2 + 5n3 + 8n4 under the following constraints:
n1 + n 2 + n 3 + n 4 = n ? 1 n1 + 2n2 + 3n3 + 4n4 2n The rst constraint is an equation on the vertices, and the second constraint is an inequality on the edges of the graph, after n vertices have been inserted. Recall that the rst vertex to be inserted has local degree 0, since it does not have any edges yet. Solving this linear program reveals that the maximum value of the above expression is 3n + 2, and it happens when n1 = n3 = 0, n2 = n ? 2, and n4 = 1. What this solution means is that maximizing the number of bends depends solely on the number of vertices of 10
local degree two and four, following the insertion of the rst two vertices. If we take into account the fact that the rst two vertices inserted in an empty graph have local degrees 0 and 1 respectively, what we really have is that n2 = n ? 3 and n4 = 1. We can also see that any other combination of values for n2 and n4 when n2 + n4 = n ? 2 gives more than 2n ? 1 edges (recall that one edge is introduced by the second vertex, which has local degree 1). From the above analysis, it follows that the upper bound on the number of bends is 3n ? 1. Regarding the area of the drawing at time t, we can infer from Figs. 1 and 2 that:
when a vertex with local degree one is inserted, either a new row or a new column is required,
when a vertex with local degree two is inserted, either two new rows and one new column are required, or one new row and two new columns are required,
when a vertex with local degree three is inserted, we need a total of at most four new rows and columns, and
when a vertex with local degree four is inserted, we need a total of at most six new rows and columns. Let h(t) and w(t) denote the height and the width, respectively, of the drawing at time t. Then it holds that:
h(t) + w(t) n1 (t) + 3n2 (t) + 4n3 (t) + 6n4 (t) 2n(t) + n2 (t) + n3(t) + 2n4 (t) since n1 (t) + 2n2(t) + 3n3(t) + 4n4(t) 2n(t). We want to maximize h(t) + w(t). If we just multiply both sides of the last inequality (i.e., the one on the edges of the graph) by 23 , we can show that: h(t)+ w(t) 3n(t). However, this solution does not give us the values of the variables (i.e., n1 (t), n2 (t), etc), for which this upper bound is achieved. For this reason, we formulate this problem as a linear program, where the expression to be maximized is: 2n + n2 + n3 + 2n4 , and the constraints are exactly the same as the ones in the above linear program. Solving this new linear program, we have that h(t) + w(t) is maximized when n1 = n3 = 0, n2 = n ? 2, and n4 = 1, exactly as in the linear program we studied above, for the number of bends. According to the analysis we did for that linear program, these results really 11
mean that n1 = 1 (the second vertex to be inserted), n2 = n ? 3, and n4 = 1. The maximum value of expression 2n + n2 + n3 + 2n4 that we wanted to maximize is now 3n. This means that h(t) + w(t) 3n(t). It also holds that h(t) w(t) is maximized when h(t) = w(t) = h(t)+2w(t) 1:5n(t). In this case, the area of the drawing can be at most 2:25n(t)2. 2 Let us have a look at the expression giving the number of bends that we maximized in the linear program of the proof of Theorem 3.1. One might be tempted to believe that this expression is maximized when n4 (t) is maximized (and this happens when n4 (t) = n(3t) as we will see in Lemma 4.1 of the next section). The result of the linear program was quite revealing. We discovered that this expression is maximized only under the following insertion sequence: insert the rst two vertices with local degrees zero and one respectively, followed by n ? 3 vertices of local degree two, and conclude with the insertion of exactly one vertex of local degree four. In Fig. 3 we show an orthogonal drawing of a graph drawn under the Relative-Coordinates scenario we just described. This graph is regular of degree four, has 13 vertices and is shown in Fig. 10a, together with an st-numbering for it. We insert the vertices following the st-numbering, starting with an empty drawing. The nal drawing has both height and width equal to 9, and 20 bends. Notice that no edge has more than three bends; in fact, there is only one edge with three bends (i.e., edge (12; 13)), whereas all the other edges have two bends or less. The scenario that is described in this section maintains the general shape of the current drawing after an update (vertex/edge insertion/deletion) takes place. The coordinates of vertices and bends of the current drawing may shift by a total amount of at most 6 units along the x and y axes, as a result of an update operation. This change does not aect the number of bends of the current drawing even if the update operation is a vertex insertion. This scenario works well when we build a graph from scratch, or we are presented with a drawing (which was produced somehow, perhaps by a dierent system) and we want our interactive system to update it. In order to refresh the drawing after each update, the coordinates of every vertex/bend aected must be recalculated. Hence, it would take linear time.
12
13 6
10
11 3
7
5
1
2 4 8
9 12
Figure 3: An orthogonal drawing of a regular, degree four, 13-vertex graph, under the Relative-Coordinates scenario.
4 The No-Change Scenario In this scenario, the drawing system never changes the positions of vertices and bends of the current drawing. It just increments the drawing by adding the new elements. This is useful in many cases where the user has already spent a lot of time studying a particular drawing and he/she does not want to have to deal with something completely dierent after each update. Papakostas and Tollis [17] de ned this scenario and presented some preliminary results on it. No other work is known that gives satisfactory answers to the above described scenario. In this section we present a simple yet eective scheme for allowing the insertion of vertices, under the No-Change scenario. As in the previous scenario, our scheme produces an orthogonal drawing under the assumption that the maximum degree of any vertex at any time is less than or equal to four. In the description of our interactive graph drawing scheme, we assume that we build a graph from scratch. If a whole subgraph needs to be drawn initially, we can draw it by simulating the above scenario, inserting one vertex at a time. We assume that the graph is always connected. In the following section, we present an extension of the No-Change scenario, allowing the current graph to have more than one connected component at any time. 13
Let u be a vertex of the current drawing, and let v be the next vertex to be inserted. There are four possible ways that vertex u can be connected to vertex v , so that there is an edge (u; v ) in the new drawing (see Fig. 4a). Each one of these ways is a free direction of vertex u. Vertex u may have up to two free directions to the right (through edges e1 and e2 of Fig. 4a), and up to two free directions to the bottom (through edges e3 and e4 of Fig. 4a). Vertex u has a free direction to the right if and only if there is no edge of the current graph using the portion of u's row to the right of u and the portion of u's column to the top of u. Similarly, we can de ne u's free direction to the bottom. Vertex u's free direction to the right (bottom) through edge e2 (e3 ) is called bend-free (see Fig. 4a). When vertex v is inserted, it is connected to some vertices that have already been placed. The local degree of a vertex that is about to be inserted to the current drawing is de ned in the same way as in the scenario studied in the previous section. Since the graph is always connected, we only consider the case where an inserted vertex has local degree one, two, three or four, except for the rst vertex inserted in an empty graph. If a new vertex has local degree zero, then it is placed in a temporary location and it will be inserted in the future, when some newer vertices increase its (local) degree. In order to prove our results, we maintain the following invariants as vertices are inserted in the drawing:
Every vertex of the current drawing of degree one has either two free directions to the bottom and a bend-free one to the right, or two free directions to the right and a bend-free one to the bottom of the grid point where the vertex is placed.
Every vertex of the current drawing of degree two has either one free direction to the bottom and one to the right, or two free directions to the right, or two free directions to the bottom of the grid point where the vertex is placed.
Every vertex of the current drawing of degree three has a free direction either to the bottom or to the right of the grid point where the vertex is placed. Figures 4b and 4c show the rst two vertices inserted in an empty graph. Notice that after vertices v1 and v2 are inserted, they both satisfy the invariants set above. Dierent placements of the rst two vertices are possible but the edge that connects them always has to have one bend in the way shown in Fig. 4c. If a straight no-bend line is used to connect v1 and v2 , at least one of these two vertices will not satisfy the rst invariant. 14
e1
v
e2 e3 v (a)
v
u e4 v
v1
v1 v2
(b)
(c)
Figure 4: (a) Possible free directions of a vertex u of the current drawing, (b),(c) inserting the rst two vertices in an empty graph. Let us assume that vi is the next vertex to be inserted in the current drawing. We distinguish the following cases:
vi
vi
(a)
(b)
Figure 5: Insertion of local degree one vertex vi requires at most one column and one row. u2 u1
vi
u1 u2
(a)
(b)
vi
Figure 6: (a) Insertion of local degree two vertex vi requires one column, (b) insertion of vi now requires one column and one row. 1. vi has local degree one. There are two cases which are shown in Figs. 5a and 5b. At most one new column and one new row are required, and at most one bend is 15
introduced. Notice that this bend is introduced along an edge which is incident to vi and whose other end is open. In Fig. 5a the vertex will have one free direction to the bottom and two to the right. The second free direction to the right (which is responsible for introducing an extra row and bend to the drawing) will be inserted in the drawing later and only if vi turns out to be a full blown degree four vertex. We take a similar approach for the second downward free direction of vi of Fig. 5b. 2. vi has local degree two. There are four cases. We have shown two cases in Figs. 6a and 6b (the other two are symmetric and are treated in a similar fashion). At most one new row and one new column is required, and at most two bends are introduced. Notice that these bends are introduced along edges which are incident to vi and connect vi with the current drawing. 3. vi has local degree three. There are eight cases. All cases, however, can be treated by considering just two cases, as shown in Fig. 7: (a) all the vertices have a free direction to the right (bottom), and (b) two vertices have a free direction to the right (bottom) and the other vertex has a free direction to the bottom (right). The rest of the cases are symmetric and are treated in a similar fashion. At most one new row and one new column are required, and at most three bends are introduced. Notice that these bends are introduced along edges which are incident to vi and connect vi with the current drawing. 4. vi has local degree four. There are sixteen cases. All cases, however, can be treated by considering just three cases, as shown in Fig. 8: (a) all the vertices have a free direction to the right (bottom), (b) three vertices have a free direction to the right (bottom) and one vertex has a free direction to the bottom (right), and (c) two vertices have a free direction to the right (bottom) and the other two vertices have a free direction to the bottom (right). The symmetric cases are treated in a similar fashion. At most two new rows and two new columns are required, and at most six bends are introduced. Notice that these bends are introduced along edges which are incident to vi and connect vi with the current drawing. As we described above, the easiest way to handle deletions is to delete vertices/edges from the data structures without changing the coordinates of the rest of the drawing. Occasionaly, 16
u3 u2
u3 u2
vi
u1 (a)
vi
u1 (b)
Figure 7: (a) Insertion of local degree three vertex vi requires one column, (b) insertion of vi now requires one row and one column. u4
u3
u3 u2
u4
vi
u1 (a)
u4
u2
u1
u1
u3
u2
vi
(b)
vi (c)
Figure 8: (a) Insertion of local degree four vertex vi requires two columns, (b) insertion of vi requires two columns and one row, (c) insertion of vi requires two columns and two rows. or on demand, the system can perform a linear-time compaction similar to the one described in [21], and refresh the screen.
Lemma 4.1 The total number of bends introduced by an interactive graph drawing system under the \No-Change scenario" up to time t is at most 2:66n(t) + 2, where n(t) is the number of vertices at time t. This upper bound is tight.
Proof. Vertex v is the rst vertex to be inserted into an empty drawing and is also the 1
only vertex that has local degree zero (see Fig. 4b). The insertion of v1 contributes (or will contribute) at most two bends: The rst one is along edge (v1; v2); the second one will be along v1 's free direction to the right which is not bend-free (see Fig. 4c), if v1 turns out to be a degree four vertex. Let vi be the next vertex to be inserted in the drawing. If vi has local degree one, two or three, then its insertion introduces at most one, two or three bends, 17
respectively, as depicted in Figs. 5, 6 and 7. If vi has local degree four, then its insertion introduces at most six bends as shown in Fig. 8. Let B (t) denote the total number of bends at time t. Then we have the following expression P for B (t): B (t) v G(t) (local degree(v )) + 2n4 (t) + 2, where G(t) is the graph that has been drawn up to time t, and n4 (t) is the number of vertices of local degree four which have been inserted up to time t. 2
It follows that B (t) 2n(t) + 2n4 (t) + 2. In order to establish an upper bound for B (t) we need to compute the maximum number of vertices of local degree four that can be inserted up to time t under any insertion sequence. Let 4n4(t) be the number of edges of the drawing which were contributed by all n4 (t) vertices of local degree four up to time t. Let m be the number of the rest of the edges of the drawing at time t. It holds that m + 4n4 (t) 2n(t). Notice that n4 (t) is maximized when m is minimized. Since the graph that has been drawn up to time t has to be connected, it holds that m n(t) ? n4 (t). From that, it follows that the maximum value for n4 (t) is n(3t) . 0
0
0
0
Recall that the number of bends at time t, is B (t) 2n(t) + 2n4 (t) + 2, which, after the discussion above, yields: B (t) (2 + 23 )n(t) + 2, and hence the result follows. To show the tightness of this upper bound, we build the drawing of a graph with 6 vertices under the No-Change scenario, in the following way: First, we insert vertices 1 and 2 in the way shown in Fig. 4c. Next, we insert vertex 3 which is adjacent to vertex 2, and then we insert vertex 4 which is adjacent to vertices 1 and 3 of the current drawing. In the last two steps, we insert vertices 5 and 6 of local degree four, so that each one is adjacent to vertices 1, 2, 3 and 4. The nal drawing is shown in Fig. 9b. We use dotted boxes to denote the current drawing at each intermediate step. Counting the number of bends of the drawing reveals that this number is 18 = (2 + 32 )6 + 2. 2
Theorem 4.1 An interactive graph drawing system under the \No-Change scenario" produces an orthogonal drawing of a connected graph, which has the following properties at any time t: 1. every insertion operation takes constant time, 2. every edge has at most three bends,
18
3. the total number of bends at any time t is at most 2:66n(t) + 2, where n(t) is the number of vertices of the drawing at time t, 4. the area of the drawing at any time t is no more than (n(t) + n4 (t))2 1:77n(t)2, where n4 (t) is the number of vertices of local degree four which have been inserted up to time t, and 5. the upper bounds for both area and bends are tight.
Proof. Part 1 follows easily from the description we gave above regarding the insertion
of individual vertices. For Part 2, notice that each newly inserted vertex vi adds at most 2 bends along its incident edges (see Figs. 5, 6, 7 and 8). It is possible that an incident edge e of vi might have already had one bend if the vertex of the current drawing which is connected to vi through e (say u) was inserted as a local degree one vertex. This is also illustrated in Fig. 9a. From Lemma 4.1 it follows that the number of bends of the drawing at time t can be at most 2:66n(t) + 2. In the same lemma we discussed the tightness of this upper bound. Let us assume that vertex v1 is the rst vertex to be inserted to an empty drawing (see Fig. 4b). Vertex v1 is the only vertex of local degree zero inserted to the drawing. The insertion of vertex v1 may introduce a total of two new rows and two new columns, if v1 turns out to be a vertex of degree four. This can be seen in Fig. 4c, where v1 requires one row and one column to place itself, and one additional row and column for its two free directions which are not bend-free. From this and the discussion above, we have that the maximum width or height of the drawing at time t cannot be more than 2 + n1 (t) + n2(t) + n3 (t) + 2n4 (t) ? 1 where n1 (t), n2(t) and n3 (t) are the number of vertices of local degree one, two and three, respectively, which have been inserted up to time t. Notice that 1 + n1(t) + n2 (t) + n3(t) + 2n4 (t) n(t) + n4 (t). From the proof of Lemma 4.1 we have that the absolute maximum value that n4 (t) may take under any circumstances is: n(3t) . So, the area is at most: (n(t) + n4 (t))2 ( 43 )2 n(t)2, and hence the result follows. Finally, the drawing of Fig. 9b demonstrates not only the tightness of the upper bound on the number bends (see proof of Lemma 4.1), but also the tightness of the upper bound on the area discussed in the last paragraph. Notice that the area of the drawing is (8 8) = 64 squared units, and this is equal to d1:77 62e. 2 19
u
1
3
2 4
vi
e
5 6
(a)
(b)
Figure 9: (a) At most 3 bends may appear along any edge e of the drawing, (b) a drawing under the No-Change scenario demonstrating the tightness of the upper bound on area and number of bends. The interactive scheme we just described is simple and ecient. The area and bend bounds are higher than the best known [1, 2, 15, 16]. However, we have to consider that this is a scheme that gives the user a lot of exibility in inserting any node at any time. Moreover, any insertion takes place without disturbing the current drawing, since the insertion is built around it. Furthermore, n4 (t) is the number of vertices of local degree four which have been inserted up to time t, and not the total number of vertices of degree four in the graph. The area will be smaller if the user chooses an insertion strategy which keeps n4 (t) low. Notice that it is possible to reuse rows and columns on which other vertices have been placed before. Although we cannot guarantee that this will always happen, the interactive drawing program should be able to see if a reuse is possible during an insertion, and take advantage of it. In Fig. 10 we show an example of our technique when applied on a regular graph of degree four that has 13 vertices. The graph, along with an st-numbering is shown in Fig. 10a. We simulate the interactive technique we introduced above for the No-Change scenario and we insert the vertices following the st-numbering, starting with an empty drawing. The nal drawing has width 10, height 11, 24 bends, and is demonstrated in Fig. 10b. Note that the dotted boxes denote the current drawing at all intermediate steps, and we can see that it always remains unaltered. Also notice that when vertex 9 was inserted, we reused vertex 2's column.
20
13 12 10
11 8
9
7
6
4
3
5 2
1
(a)
1 2
3
4
5 7 8
11
6 9 10 12 13
(b)
Figure 10: (a) A regular graph of degree 4 with 13 vertices, (b) drawing the graph under the No-Change scenario.
21
5 Comparisons and Extensions From the analyses of the Relative-Coordinates and No-Change scenaria which we presented in the previous sections, we can conlcude that the worst-case performance of the No-Change scenario is better than that of the Relative-Coordinates scenario in terms of the area and the number of bends of the drawings that they produce. More precicely, an interactive graph drawing system under the No-Change scenario produces an orthogonal drawing with:
less area, and smaller total number of bends than the orthogonal drawing of the same graph produced by an interactive drawing system under the Relative-Coordinates scenario. Note that this comparison is a worst-case comparison. It holds when both systems draw a graph from scratch (i.e., the very rst update operation applies on an empty graph), and when the drawn graph is connected at all times. Another advantage of the No-Change scenario is that each update operation takes constant time, since the coordinates of vertices and bends of the current drawing are never altered. In the case of the Relative-Coordinates scenario, re-drawing the whole graph after an update operation requires linear time since the coordinates of many vertices and bends of the current graph may be shifted (by a total amount of at most 6 units along the two axes). Note that if the user does not wish to produce a drawing of the graph after an update operation, then the operation itself takes constant time, since the data structures of the graph can be updated in constant time. However, the Relative-Coordinates scenario has one important feature: it gives the user the ability to insert a vertex into any orthogonal drawing (of degree four), at any time. This results from the fact that no invariants are maintained while drawing under this scenario. The Relative-Coordinates scenario oers a lot of exibility at a very small cost: the coordinates of vertices and bends of the current drawing may be shifted by a small amount, as a result of an update operation, and re-drawing of the graph may be required. It is important to underline, though, that the shift of coordinates aects all vertices and bends of the current drawing in the same relative way. Hence, the general shape of the current drawing is still maintained after the update operation is complete. 22
In the rest of this section we extend both the Relative-Coordinates and the No-Change scenaria to the case where the current graph is allowed to become disconnected during the interactive drawing process. In other words, inserting more than one vertices of local degree zero (i.e., vertices that are not adjacent to any other vertex at the time of their insertion) is now allowed. The other characteristics of the drawing remain unchanged, that is we assume that the drawing is orthogonal with maximum degree four, and we start the update operations with an originally empty graph.
Theorem 5.1 An interactive graph drawing system under the \Relative-Coordinates scenario" produces an orthogonal drawing of a graph, which has the following properties at any time t: 1. after each vertex insertion, the coordinates of any vertex or bend of the current drawing may shift by a combined of at most 6 units along the x and y axes, 2. there are at most 3 bends along any edge of the drawing, 3. the total number of bends is at most 4n(t), and 4. the area of the drawing is at most 3n(t)2 , where n(t) is the number of vertices that have been inserted up to time t.
Proof. The rst two parts of the theorem come directly from Theorem 3.1. Regarding the total number of bends at time t, it still holds that:
B(t) 3n2(t) + 5n3 (t) + 8n4 (t) since the insertion of vertices of local degree zero introduces no bends (see also the proof of Theorem 3.1). Linear programming is employed once again to compute the maximum value that B (t) can take, which is an upper bound on the number of bends of the drawing at time t. The new linear program is the following: maximize: 3n2 + 4n3 + 8n4 under the following constraints:
n0 + n 1 + n 2 + n 3 + n 4 = n n1 + 2n2 + 3n3 + 4n4 2n 23
The rst constraint is an equation on the vertices, and the second constraint is an equation on the edges of the graph, after n vertices have been inserted. Note that n0 is the number of vertices of local degree zero; these vertices do not contribute any edges to the drawing. Solving this linear program reveals that the above expression is maximized when n1 = n2 = n3 = 0, and n0 = n4 = n2 , and this maximum is equal to 4n. Let h(t) and w(t) denote the height and the width, respectively, of the drawing at time t. Vertices of local degree zero open up either a new row or a new column. Vertices of local degree one, two, three or four follow the rules described in the proof of Theorem 3.1, regarding the number of rows or columns that they open up. It holds that:
h(t)+ w(t) n0 (t)+ n1 (t)+3n2 (t)+4n3 (t)+6n4 (t) 2n(t)+ n0 (t)+ n2 (t)+ n3 (t)+2n4 (t) since n1 (t) + 2n2 (t) + 3n3 (t) + 4n4 (t) 2n(t). We want to maximize h(t) + w(t). As above, this problem can be formulated as a linear program, where the expression to be maximized is: 2n + n0 + n2 + n3 + 2n4 , and the constraints are exactly the same as the ones in the above linear program. Solving this new linear program, we have that h(t) + w(t) is maximized when n1 = n2 = n3 = 0, and n0 = n4 = n2 , exactly as in the linear program we studied above, for the number of bends. The maximum value of the expression is equal to 3:5n, which means that h(t) + w(t) 3:5n(t). It also holds that h(t) w(t) is maximized when h(t) = w(t) = h(t)+w(t) 1:75n(t). In this case, the area of the drawing can be at most 3n(t)2 . 2 2 We now extend the No-Change scenario to the case where the current graph is allowed to become disconnected during the interactive drawing process. When a vertex of local degree zero is inserted, we either open up a new column and place it to the right of a bend of the current drawing (thus reusing a row), or open up a new row and place it to the bottom of a bend of the current drawing (thus reusing a column). If neither of the two is possible, we open up one new row and one new column to place the local degree zero vertex. Note that a vertex of local degree zero may later contribute one more row and one more column to the drawing, if it uses its free directions which are not bend-free (see Fig. 4a). In this case, the vertex of local degree zero will be connected to four other vertices. As above, ni (t) denotes the number of vertices of local degree i (i = 0; 1; 2; 3; 4) which have been inserted up to time t. The following theorem holds: 24
Theorem 5.2 An interactive graph drawing system under the \No-Change scenario" produces an orthogonal drawing of a graph, which has the following properties at any time t: 1. every insertion operation takes constant time, 2. every edge has at most three bends, 3. the total number of bends at any time t is at most 4n(t), where n(t) is the number of vertices of the drawing at time t, and 4. the area of the drawing at any time t is at most 4n(t)2.
Proof. The rst two parts come directly from Theorem 4.1. Following the proof technique of Lemma 4.1 for the total number of bends B (t) at time t, we have that: B (t) 2n +
2n4 (t)+2n0 (t). Recall that each vertex of local degree zero can contribute up to two bends, if it is connected to four vertices at time t (see description of the No-Change scenario in previous section). If n(t) is the total number of vertices that have been inserted up to time t, then the maximum value that n4 (t) can take is: n(2t) (similar to the proof of Lemma 4.1 by replacing m with 0 since the graph may be disconnected at any intermediate moment). This means that n0 (t) can be at most n(2t) , so the total number of bends is no more than 4n(t) at time t. 0
A vertex of local degree zero may open up at most two new rows and two new columns, if it is connected to four vertices at time t. Vertices of local degree one, two, three or four follow the rules described in Section 4, regarding the number of new rows and columns that they open up, for the No-Change scenario. From this, it follows that the maximum width or height of the drawing at time t is at most 2n0 (t)+n1 (t)+n2 (t)+n3 (t)+2n4 (t)?1 n(t)+n0 (t)+n4 (t). Since n0 (t) and n4 (t) can now be up to n(2t) each, the area is at most 4n(t)2 . 2 The upper bounds on the number of bends and area change, when we extend the two scenaria to the case where the graph can become disconnected during the drawing process. Notice that the Relative-Coordinates scenario has now a better worst-case behavior than the No-Change scenario, with respect to the area that the drawing requires. As far as the number of bends is concerned, we have a tie, since both scenaria depict an upper bound equal to 4n(t). 25
It is also worth noting that vertices of local degree zero and four play the most major role in the worst-case behavior of the Relative-Coordinates scenario, in terms of both the area and the number of bends. In fact, based on the results of the two linear programs discussed above, the upper bound expressions for the area and the number of bends were maximized, when the total number of vertices inserted is split between these two kinds of vertices. Recall that, when the graph has to be connected at all times, it is the vertices of local degree two, that play the most important part in the worst-case behavior of the Relative-Coordinates scenario (see proof of Theorem 3.1).
6 Conclusion and Future Work In this paper we discussed some possible scenaria for an interactive orthogonal graph drawing system. We used linear programming as an upper bound technique to analyze the performance of the Relative-Coordinates scenario. We also analyzed the No-Change scenario and compared the two scenaria. Our results focus on the following aspects of the produced drawings, or the drawing process:
area, number of bends (per edge and total), tightness of upper bounds, extent to which the drawing changes after an update operation, and time to complete an update operation. An important property of an interactive graph drawing system is to introduce the minimum possible change to a drawing (that is preserve the user's \mental map"), after each update operation. The No-Change scenario guarantees that the current drawing is never altered since any vertex insertion and edge routing takes place around it. On the other hand, the Relative-Coordinates scenario typically requires a small change in the coordinates of vertices and bends of the current drawing. However, the general shape of the drawing is maintained after each update operation. The worst-case performance bounds of the No-Change scenario, in terms of area and bends, are better than the corresponding bounds 26
obtained by the Relative-Coordinates scenario (if the drawn graph is at all times connected). However, the Relative-Coordinates scenario is less restrictive, since it does not maintain any invariants when it produces a new drawing. In [14] three dierent models are proposed to capture the notion of the user's \mental map" of a drawing. Although our work was developed independently of the work in [14] and addresses dierent problems, it turns out that our scenaria follow some of their models. Speci cally:
the Relative-Coordinates scenario preserves the user's mental map in terms of the orthogonal ordering model of [14], and
the No-Change scenario preserves the user's mental map in terms of both the orthogonal ordering and proximity models of [14].
We have implemented the two scenaria (i.e., Relative-Coordinates and No-Change) and conducted a preliminary experimental study comparing their performance on a data set containing over 8000 graphs of maximum degree four. Our experiments mainly focus on measuring the area and the total number of bends that the two scenaria require for the graphs of our data set. Our preliminary results indicate that:
The Relative-Coordinates scenario always exhibited better performance than NoChange in terms of both area and number of bends.
The practical behavior of the two scenaria was much better than their established theoretical worst-case bounds, in most cases. In other words, the worst case did not happen very frequently. An extensive description of our experimental results along with heuristics on the placement of vertices will appear in a forthcoming paper. It is an interesting open problem to develop a theory that enables the insertion, move or deletion of more than one vertices simultaneously (that is a block of vertices) in the current drawing, eciently. The area of interactive graph drawing will grow in the next years because of the many applications that demand it. Techniques for interactive graph drawing in other standards (straight line, polyline, etc.) are needed, and should be explored. Since 27
it is counterproductive for the user to spend a signi cant amount of time to \relearn" the new drawing, the main target is to produce a drawing that is as close to the drawing before the update as possible.
Acknowledgement We would like to thank Brendan Madden and Roberto Tamassia for helpful discussions.
References [1] Therese Biedl, Embedding Nonplanar Graphs in the Rectangular Grid, Rutcor Research Report 27-93, 1993. [2] T. Biedl and G. Kant, A Better Heuristic for Orthogonal Graph Drawings, Proc. 2nd Ann. European Symposium on Algorithms (ESA '94), Lecture Notes in Computer Science, vol. 855, pp. 24-35, Springer-Verlag, 1994. [3] R. Cohen, G. DiBattista, R. Tamassia, and I. G. Tollis, Dynamic Graph Drawing, SIAM Journal on Computing, vol. 24, no. 5, pp. 970-1001, 1995. [4] G. DiBattista, P. Eades, R. Tamassia and I. Tollis, Algorithms for Drawing Graphs: An Annotated Bibliography, Computational Geometry: Theory and Applications, vol. 4, no 5, 1994, pp. 235-282. Also available via anonymous ftp from ftp.cs.brown.edu, gdbiblio.tex.Z and gdbiblio.ps.Z in /pub/papers/compgeo. [5] G. DiBattista, G. Liotta and F. Vargiu, Spirality of orthogonal representations and optimal drawings of series-parallel graphs and 3-planar graphs, Proc. Workshop on Algorithms and Data Structures, Lecture Notes in Computer Science 709, SpringerVerlag, 1993, pp. 151-162. [6] S. Even and G. Granot, Rectilinear Planar Drawings with Few Bends in Each Edge, Tech. Report 797, Comp. Science Dept., Technion, Israel Inst. of Tech., 1994. [7] S. Even and R.E. Tarjan, Computing an st-numbering, Theor. Comp. Sci. 2 (1976), pp. 339-344. 28
[8] A. Garg and R. Tamassia, On the Computational Complexity of Upward and Rectilinear Planarity Testing, Proc. DIMACS Workshop GD '94, Lecture Notes in Comp. Sci. 894, Springer-Verlag, 1994, pp. 286-297. [9] Goos Kant, Drawing planar graphs using the lmc-ordering, Proc. 33th Ann. IEEE Symp. on Found. of Comp. Science, 1992, pp. 101-110. [10] F. T. Leighton, New lower bound techniques for VLSI, Proc. 22nd Ann. IEEE Symp. on Found. of Comp. Science, 1981, pp. 1-12. [11] Charles E. Leiserson, Area-Ecient Graph Layouts (for VLSI), Proc. 21st Ann. IEEE Symp. on Found. of Comp. Science, 1980, pp. 270-281. [12] Thomas Lengauer, Combinatorial Algorithms for Integrated Circuit Layout, John Wiley and Sons, 1990. [13] K. Miriyala, S. W. Hornick and R. Tamassia, An Incremental Approach to Aesthetic Graph Layout, Proc. Int. Workshop on Computer-Aided Software Engineering (Case '93), 1993. [14] K. Misue, P. Eades, W. Lai and K. Sugiyama, Layout Adjustment and the Mental Map, Journal of Visual Languages and Computing, vol. 6, pp. 183-210, 1995. [15] A. Papakostas and I. G. Tollis, Algorithms for Area-Ecient Orthogonal Drawings, Technical Report UTDCS-06-95, The University of Texas at Dallas, 1995. [16] A. Papakostas and I. G. Tollis, Improved Algorithms and Bounds for Orthogonal Drawings, Proc. DIMACS Workshop GD '94, Lecture Notes in Comp. Sci. 894, SpringerVerlag, 1994, pp. 40-51. [17] A. Papakostas and I. G. Tollis, Issues in Interactive Orthogonal Graph Drawing, Proc. of GD '95, Lecture Notes in Comp. Sci. 1027, Springer-Verlag, 1995, pp. 419-430. [18] Markus Schater, Drawing Graphs on Rectangular Grids, Discr. Appl. Math. 63 (1995), pp. 75-89. [19] J. Storer, On minimal node-cost planar embeddings, Networks 14 (1984), pp. 181-212.
29
[20] R. Tamassia, On embedding a graph in the grid with the minimum number of bends, SIAM J. Comput. 16 (1987), pp. 421-444. [21] R. Tamassia and I. Tollis, Planar Grid Embeddings in Linear Time, IEEE Trans. on Circuits and Systems CAS-36 (1989), pp. 1230-1234. [22] R. Tamassia, I. Tollis and J. Vitter, Lower Bounds for Planar Orthogonal Drawings of Graphs, Information Processing Letters 39 (1991), pp. 35-40. [23] L. Valiant, Universality Considerations in VLSI Circuits, IEEE Trans. on Comp., vol. C-30, no 2, (1981), pp. 135-140.
30