• 沒有找到結果。

Obstacle-Avoiding Rectilinear Steiner Tree Construction Based on Spanning Graphs

N/A
N/A
Protected

Academic year: 2021

Share "Obstacle-Avoiding Rectilinear Steiner Tree Construction Based on Spanning Graphs"

Copied!
11
0
0

加載中.... (立即查看全文)

全文

(1)

Abstract—Given a set of pins and a set of obstacles on a plane,

an obstacle-avoiding rectilinear Steiner minimal tree (OARSMT) connects these pins, possibly through some additional points (called the Steiner points), and avoids running through any ob-stacle to construct a tree with a minimal total wirelength. The OARSMT problem becomes more important than ever for modern nanometer IC designs which need to consider numerous rout-ing obstacles incurred from power networks, prerouted nets, IP blocks, feature patterns for manufacturability improvement, an-tenna jumpers for reliability enhancement, etc. Consequently, the OARSMT problem has received dramatically increasing attention recently. Nevertheless, considering obstacles significantly increases the problem complexity, and thus, most previous works suffer from either poor quality or expensive running time. Based on the obstacle-avoiding spanning graph, this paper presents an efficient algorithm with some theoretical optimality guarantees for the OARSMT construction. Unlike previous heuristics, our algorithm guarantees to find an optimal OARSMT for any two-pin net and many higher pin nets. Extensive experiments show that our algorithm results in significantly shorter wirelengths than all state-of-the-art works.

Index Terms—Physical design, routing, spanning tree, Steiner tree.

I. INTRODUCTION

G

IVEN A SET of pins and a set of obstacles on a plane, an obstacle-avoiding rectilinear Steiner minimal tree (OARSMT) connects these pins, possibly through some ad-ditional points (called Steiner points), and avoids running through any obstacle to construct a tree with a minimal total wirelength. The OARSMT problem becomes more important than ever for modern nanometer IC designs which need to consider numerous routing obstacles incurred from large-scale power networks, prerouted nets, IP blocks, feature patterns for manufacturability improvement, antenna jumpers for reliability enhancement, etc. Consequently, the OARSMT problem has Manuscript received May 28, 2007; revised August 29, 2007. This work was supported in part by the National Science Council of Taiwan under Grants NSC 95-2221-E-002-372, NSC 95-2221-E-002-374, and NSC 95-2752-E-002-008-PAE. This paper was recommended by Associate Editor P. H. Madden.

C.-W. Lin is with the Graduate Institute of Electronics Engineering, National Taiwan University, Taipei 106, Taiwan, R.O.C. (e-mail: enorm@ eda.ee.ntu.edu.tw).

S.-Y. Chen was with the Department of Electrical Engineering, National Taiwan University, Taipei 106, Taiwan, R.O.C. He is now with the Graduate Institute of Electronics Engineering, National Taiwan University, Taipei 106, Taiwan, R.O.C. (e-mail: aknow@eda.ee.ntu.edu.tw).

C.-F. Li and C.-L. Yang are with the Department of Computer Science and Information Engineering, National Taiwan University, Taipei 106, Taiwan, R.O.C. (e-mail: akilae@eda.ee.ntu.edu.tw; yangc@csie.ntu.edu.tw).

Y.-W. Chang is with the Department of Electrical Engineering and Graduate Institute of Electronics Engineering, National Taiwan University, Taipei 106, Taiwan, R.O.C. (e-mail: ywchang@cc.ee.ntu.edu.tw).

Digital Object Identifier 10.1109/TCAD.2008.917583

received dramatically increasing attention recently [5], [8], [9], [12], [13].

The rectilinear Steiner minimal tree problem, even without obstacle consideration, is a well-known NP-complete problem [7]. The presence of obstacles further increases the complexity, and thus, most previous works on the OARSMT problem suffer from either poor quality or expensive running time. The OARSMT problem is a fundamental problem with extensive practical applications to routing and wirelength/congestion/ timing estimations in early IC design stages, such as floor planning and the placement. In particular, the application to congestion-driven routing has attracted much attention recently, where over congested regions can be treated as obstacles during routing. Therefore, it is desired to develop an effective and efficient algorithm for the OARSMT problem to facilitate the IC design flow.

Previous methods for the OARSMT problem can be classified into four major categories: 1) the maze-routing-based approach; 2) the nondeterministic approach; 3) the construction-by-correction approach (called the sequential ap-proach in [12]); and 4) the connection-graph-based apap-proach. Maze routing, which was first proposed in [10], can optimally route two-pin nets. However, its time complexity and memory usage grow prohibitively huge as the routing area becomes larger; therefore, Clow [2] presented the A∗ maze routing to reduce the time complexity and memory usage. Due to its sim-plicity, many global routers are based on Clow’s maze routing.

Based on ant-colony optimization, Hu et al. [9] presented a nondeterministic local search heuristic to handle small-scale OARSMT problems with complex obstacles of both concave and convex polygons. Although this nondeterministic approach is flexible in handling complex obstacles, it incurs prohibitively expensive running time for large-scale designs.

The construction-by-correction approach constructs a Steiner or a spanning tree for a multipin net first and then replaces the edges overlapping obstacles with edges around the obstacles. This approach is popular in industries due to its simplicity and efficiency. However, the first step for the tree construction may not have the global view of the obstacles, and thus, the second step might only remove the overlaps locally around the obstacles. As a result, the solution quality may be limited, as pointed out in [12]. In particular, when there are more/larger obstacles, this approach is less favorable because more/larger corrections need to be fixed. Example works in the category include those in [14] and [5]. Yang et al. [14] presented a heuristic to remove the overlaps. Very recently, Feng et al. [5] constructed an obstacle-avoiding Steiner tree for an arbitrary λ-geometry by Delaunay triangulation.

(2)

The last category is based on the connection graph. This ap-proach first constructs a connection graph by pins and obstacle boundaries, which guarantees that at least a desired OARSMT is embedded in the graph. Then, some search techniques are applied to find the desired OARSMT from the connection graph. Unlike the construction-by-correction approach, this approach has a more global view of both pins and obstacles. Consequently, this approach can often obtain a much better solution quality. Nevertheless, there exists a tradeoff between effectiveness and efficiency in this approach; the larger size of the connection graph, the higher probability that a better OARSMT is embedded in the connection graph, but the more expensive is the running time.

Clarkson et al. [1] considered only two-pin nets and pre-sented an O(n(lg n)2)-time algorithm to compute a rectilinear

shortest path between two pins through polygonal obstacles, where n is the number of pins and obstacle boundaries. Later, Zheng et al. [15] introduced an implicit connection graph con-taining rectilinear edges and found obstacle-avoiding shortest paths. It can be used to solve the one-to-one shortest path problem, the one-to-many shortest paths problem, and the mini-mum spanning tree problem in the presence of obstacles, where its time complexity is O(n2lg n). On the other hand, Ganley and Cohoon [6] presented an algorithm to find an optimal OARSMT with three or four pins, but its time complexity is O(n4). Hu et al. [8] developed an efficient hierarchical heuristic to partition all pins into subsets, then connect pins in each subset, and finally construct an OARSMT using a connection graphlike approach. Based on the spanning graph [16] that does not consider obstacles, Shen et al. [12] recently proposed a clever heuristic to construct an OARSMT. In this heuristic, an obstacle-avoiding spanning graph (OASG) was first constructed and then transformed into an OARSMT. The time complexity of the OASG construction is O(n lg n), and that of the OARSMT transformation is Ω(n2lg n) although not

analyzed or explicitly stated in [12]. This work [12] is effective in general, but we observe that it misses many “essential” edges which can lead to more desired solutions in the construction of the OASG, resulting in significant degradation in the solution quality for many practical cases. Furthermore, its OARSMT transformation procedure could also be significantly improved. In this paper, we construct an OASG with “essential” edges and prove the existence of a rectilinear shortest path between any two pins, which is not guaranteed in the OASG constructed by Shen et al. [12]. With this property, our algorithm guarantees to find an optimal OARSMT for any two-pin net and many higher pin nets. Moreover, we prove that the expected number of edges in our OASG is only O(n lg n), ensuring an efficient searching or processing on it. After constructing an initial OARSMT, we develop an effective refinement scheme for the U-shaped connection in the OARSMT to further reduce the total wirelength. Empirical results based on the least squares analysis show that our algorithm run in about O(n1.46) time, whereas the theoretical time complexity is O(n3) in the worst case and O(n2lg n) in a random case.

Extensive experiments based on 22 test cases (five industrial designs, 12 test cases from [5], and five larger random designs) show that our algorithm significantly outperforms all

state-of-Fig. 1. (a) Any two obstacles cannot overlap each other, but (b) two obstacles could be point-touched at the corner or line-touched at the boundary. (c) A pin vertex may not locate inside any obstacle, but (d) it could be at the corner or on the boundary of an obstacle. (e) Any edge of the OARSMT cannot intersect any obstacle, but (f) it could be point-touched at the corner or line-touched on the boundary of an obstacle.

the-art works in the total wirelength and requires comparable running time to the algorithm in [12] for practical-sized prob-lems. Considering the differences from the half-perimeter of the bounding box of all pins (which is a lower bound of the optimal OARSMT solution), the respective average improvements are 27.79%, 6.66%, 5.79%, and 0.93%, compared with the recent works [5], [12], [13], and an extension of Clow’s A maze-routing algorithm. The empirical time complexity of the exten-sion of Clow’s A∗ maze-routing algorithm is about O(n1.59),

whereas ours is about O(n1.46). With the completeness of the

OASG construction, in particular, our algorithm also provides key insights into the search for more desirable OARSMT solutions.

The rest of this paper is organized as follows. Section II formulates the OARSMT problem. Section III presents our OARSMT algorithm and its time complexity. Section IV re-ports the experimental results. Finally, we conclude this paper in Section V.

II. PROBLEMFORMULATION We define an obstacle and a pin vertex as follows.

Definition 1: An obstacle is a rectangle on the xy-plane. No two obstacles overlap with each other, but two obstacles could be point-touched at the corner or line-touched at the boundary [see Fig. 1(a) for two overlapped obstacles and Fig. 1(b) for point-touched and line-touched obstacles].

Definition 2: A pin vertex is a vertex on the xy-plane. A pin vertex must not locate inside any obstacle, but it could be at the corner or on the boundary of an obstacle [see Fig. 1(c) for an illegal instance with two pin vertices inside an obstacle and Fig. 1(d) for a legal instance with a pin vertex at the corner and another on the boundary of an obstacle].

Let P ={p1, p2, . . . , pm} be a set of pin vertices for an m-pin net, O ={o1, o2, . . . , ok} be a set of k obstacles, and n be the size of P∪ {corners in O}. We have n ≤ m + 4k since each obstacle has four corners. The rectilinear (Manhattan) distance between viand vjcan be computed by|xi− xj| + |yi− yj|.

We consider rectilinear (vertical and horizontal) routes and define the OARSMT problem as follows.

Problem: OARSMT

Given a set P of pins and a set O of obstacles on a plane, construct a rectilinear Steiner tree to connect the pins in P , possibly through some additional points (called the Steiner points), such that no tree edge intersects an obstacle in O and that the total wirelength of the tree is minimized.

(3)

Fig. 2. (b)–(e) Four steps for OARSMT construction.

Note that no edge of the OARSMT can intersect with any obstacle, but an edge could be point-touched at the corner or line-touched on the boundary of an obstacle [see Fig. 1(e) for a rectilinear Steiner tree intersecting an obstacle and Fig. 1(f) for tree edges being line-touched on the boundary of an obstacle].

Throughout this paper, we represent the bottom-left, top-left, top-right, and bottom-right corner vertices of an obstacle oi by ci,1, ci,2, ci,3, and ci,4with their coordinates being (xi,min,

yi,min), (xi,min, yi,max), (xi,max, yi,max), and (xi,max, yi,min), respectively. Moreover, C =ki=1{ci,j}, where j = 1, 2, 3, and 4.

III. ALGORITHM

We now present our algorithm. Our algorithm consists of the following four steps.

1) OASG construction: In this step, an OASG connect-ing all vertices in P ∪ C is constructed. This step en-sures that the following steps, except the operations in Section III-D3, can ignore the obstacles without violat-ing the obstacle-avoidviolat-ing property [see Fig. 2(b) for an example of OASG construction].

2) Obstacle-avoiding spanning tree (OAST) construction: An OAST connecting all pin vertices is constructed by selecting edges from the OASG constructed in Step 1) [see Fig. 2(c) for an example of OAST construction]. 3) Obstacle-avoiding rectilinear spanning tree (OARST)

construction: An OARST is constructed by transforming each slant edge of the OAST in Step 2) to rectilinear (ver-tical and horizontal) edges [see Fig. 2(d) for an example of OARST construction].

4) Obstacle-avoiding rectilinear Steiner tree (OARSMT) construction: Finally, an initial OARSMT is constructed by introducing Steiner points and removing overlapping edges of the OARST in Step 3). Then, a refinement scheme for some particular routing shapes is applied to find an OARSMT with a smaller total wirelength [see Fig. 2(e) for an example of OARSMT construction]. The following sections detail the four steps.

Fig. 3. Divided regions for (a) each corner vertex of an obstacle and (b) a pin vertex.

Fig. 4. Comparison between our OASG and that of Shen et al. (a) Our OASG has the edge (p1, p2) and (b) results in an optimal rectilinear connection. (c) The OASG of Shen et al. does not contain the edge and (d) results in two wasted segments.

A. OASG Construction

In this step, we construct an OASG which is defined as follows.

Definition 3: An OASG is an undirected connected graph on the vertex set P ∪ C, where no edge intersects with an obstacle in O.

We extend the spanning graph proposed by Zhou [16] to consider obstacles for the OASG construction. For each vertex in P ∪ C, we divide the plane into four regions, R1, R2, R3,

and R4, as shown in Fig. 3(a) and (b). The division is similar to

that in [12], but we construct an OASG with more “essential” edges to improve the solution quality. As an example shown in Fig. 4, our OASG contains the edge (p1, p2) [see Fig. 4(a)],

whereas that in [12] does not [see Fig. 4(c)]. After transforming them to rectilinear connections, we can obtain an optimal connection as shown in Fig. 4(b), whereas the work in [12] results in a suboptimal solution, as shown in Fig. 4(d).

In the example shown in Fig. 5 with r + 1 pin vertices, each obstacle is of two-unit high, and the edge (pi, pi+1), 1≤ i ≤ r, is of four-unit long. For this case, we can reduce the total wirelength by about 33% over the algorithm in [12] and obtain an optimal solution. In Fig. 5(a), our OASG contains the edges (pi, pi+1), 1≤ i ≤ r, resulting in an optimal recti-linear connection with the total wirelength of 4r, as shown in Fig. 5(b). However, the OASG constructed by Shen et al. [12] is shown in Fig. 5(c), which does not contain the edges (pi, pi+1), 1≤ i ≤ r, resulting in the connection with the total wirelength of 6r + 2, as shown in Fig. 5(d).

1) OASG Construction Within a Region: For the OASG construction within a region, the neighbors of a vertex are defined as follows.

Definition 4: A vertex f ∈ P ∪ C is a neighbor of a vertex v∈ P ∪ C if no other vertex in P ∪ C or obstacle is inside or on the boundary of the bounding box of v and f .

(4)

Fig. 5. Another comparison between our OASG and that of Shen et al. (a) Our OASG has the edges (pi, pi+1), 1≤ i ≤ r, and (b) results in an optimal rectilinear connection with the total wirelength of 4r. (c) The OASG of Shen et al. does not contain these edges and (d) results in the connection with the total wirelength of 6r + 2.

Fig. 6. (a) An example instance and (b) the OASG construction for the vertex

c6,2in R2of a vertex.

As shown in Fig. 6(b), c4,4, c2,4, and c5,4 are the neighbors

of c6,2, but p2 is not because c5,4 is on the boundary of the

bounding box of c6,2 and p2. Our OASG construction is to

construct edges between a vertex v∈ P ∪ C and each of its neighbors. We will focus on R2 of a vertex in P∪ C for the

discussion, whereas the other regions are similarly handled. Note that if the vertex is at the corner or on the boundary of an obstacle, it is clear that no edge will be constructed within the regions blocked by the obstacle.

The algorithm of the OASG construction for R2of a vertex

is shown in Fig. 7. Fig. 6(a) shows an example to construct the OASG within the R2of c6,2. After the initialization steps (lines

1–3), line sweeping is performed from left to right. When the line meets the left boundary of o1, the interval [y1,min, y1,max]

is inserted into the interval set I as the “blocking information” (lines 5–6). When the line meets the left boundary of o2, the

interval [y2,min, y2,max] is also inserted into the interval set I

as the “blocking information” (lines 5–6). At the same time, the sweeping line meets the pin vertex p1, but p1is not inserted into

the candidate set A due to the intersection of the blocking infor-mation (lines 18–20). When the sweeping line meets the right boundary of o1, [y1,min, y1,max] is deleted from the interval set

I (lines 8–9), and c1,4is inserted into the candidate set A (lines

13–15). Similarly, c4,4and c2,4 are inserted into the candidate

set A (lines 13–15), whereas c3,4is not due to the intersection

of the blocking information (lines 13–14). Then, when the sweeping line meets the pin vertex p2and the right boundary of

Fig. 7. Algorithm of the OASG construction for the R2of a vertex. o5, p2and c5,4are inserted into the candidate set A (lines 18–21

and lines 13–15). Therefore, when the sweeping line meets the left boundary of o6, the sweeping line halts, and the candidate

set A is{c1,4, c4,4, c2,4, p2, c5,4}. After the sorting (line 22), the

candidate set A becomes {c1,4, c4,4, c2,4, p2, c5,4}. Therefore,

c4,4, c2,4, and c5,4can easily be detected as the neighbors of c6,2

(lines 23–24). Finally, (c4,4, c6,2), (c2,4, c6,2), and (c5,4, c6,2)

are inserted into the set E (line 25), and the OASG within the R2of c6,2is constructed as shown in Fig. 6(b).

2) Properties of Pin-Vertex Shortest Paths: We claim that the OASG implies a rectilinear shortest path of any two vertices in P ∪ C, i.e., a rectilinear shortest path of any two vertices can be obtained by transforming some edges in the OASG to rectilinear (vertical and horizontal) edges. Moreover, each slant edge is transformed into only one vertical edge and one horizontal edge. We first define the territory of a vertex in P∪ C as follows.

Definition 5: A vertex g on the xy-plane is in the territory of a vertex v∈ P ∪ C if no other vertex in P ∪ C or obstacle is inside the bounding box of v and g.

Note that the territory of a vertex is not necessarily a close re-gion. An example territory of the vertex s is shown in Fig. 8(a). Lemma 1: Given a source s∈ P ∪ C, a target t ∈ P ∪ C (s= t), and any of their rectilinear shortest paths RSP(s, t), there must exist a neighbor f of s such that the rectilinear shortest length δr(s, t) = δr(s, f ) + δr(f, t).

Proof: By the definition of the territory in Definition 5, t is outside or on the boundary of the territory of s; therefore, any of their rectilinear shortest paths RSP(s, t) must intersect the

(5)

Fig. 8. (a) Example neighbors and territory of a vertex s. (b) A shortest path from s must intersect the boundary of the territory of s. (c) The path can be replaced by another path through a neighbor of s.

boundary of the territory (for example, in Fig. 8(b), RSP(s, t1)

intersects the boundary at u1). Assume that the intersecting

vertex is u. Since no other vertex in P∪ C or obstacle is inside the territory of s, there must exist a neighbor f of s such that RSP(s, u) can be replaced by RSP(s, f ) and RSP(f, u) with-out increasing the total wirelength, i.e., δr(s, t)≥ δr(s, f ) +

δr(f, t) [for example, in Fig. 8(c), RSP(s, u1) is replaced

by RSP(s, f4) and RSP(f4, u1)]. With the property of the

rectilinear shortest path, δr(s, t)≤ δr(s, f ) + δr(f, t). There-fore, there must exist a neighbor f of s such that δr(s, t) =

δr(s, f ) + δr(f, t). 

Lemma 2: Given a vertex v∈ P ∪ C, for any neighbor f of v, there must exist an edge between v and f in the OASG, i.e., a rectilinear shortest path of v and f is implied by the OASG.

Proof: Since the OASG construction in Section III-A1 exactly constructs the edge between a vertex and its neighbor, for any neighbor f within any region of a vertex v, there exists an edge between v and f . By the definition of neighbors in Definition 4, since no obstacle is inside the bounding box of v and its neighbor f , the slant edge between v and f can directly be transformed to only one vertical edge and one horizontal edge with the rectilinear shortest length. If the edge between v and f is originally a vertical edge or a horizontal edge, the

claim immediately follows. 

Theorem 1: The OASG implies a rectilinear shortest path of any two vertices in P∪ C.

Proof: For any pair of vertices s and t and any of their rectilinear shortest paths RSP(s, t), by Lemma 1, there must exist a neighbor f of s such that δr(s, t) = δr(s, f ) + δr(f, t). By Lemma 2, a rectilinear shortest path of s and f is implied by the OASG.

At this moment, we still need to prove that a rectilinear shortest path of f and t is implied by the OASG to complete the proof. However, because f and t are both in P∪ C, after similar proofs (the number of proofs is finite because δr(s, t)= ∞ and

δr(s, f ) > 0), it is reduced to prove that a rectilinear shortest path between the vertex t and itself (t) is implied by the OASG.

It is trivial, and the theorem thus follows. 

Note that this property is very important. It can be used to guarantee that we can construct optimal solutions in many cases. Moreover, although the quality and efficiency may de-pend on different characteristics and distributions of obstacles, this property can also make our algorithm more stable.

Fig. 9. Example of OAST construction. B. OAST Construction

We first define an OAST as follows.

Definition 6: An OAST is an undirected tree connecting all pin vertices without intersecting with any obstacle.

We construct an OAST by selecting some edges from the given OASG. As shown in Fig. 9, the OAST construction con-sists of three steps: 1) pin-vertices shortest path computation; 2) initial OAST construction; and 3) local refinement.

1) Pin-Vertices Shortest Path Computation: For each edge in the given OASG, its length is defined as the Manhattan distance of its two end vertices. We apply Dijkstra’s shortest path algorithm [3] for each pin-vertex pair to compute their distance, as shown in Fig. 9(b).

2) Initial OAST Construction: We then construct a complete graph for the |P | pin vertices. The edge weight is defined as the distance of its two end vertices computed in Section III-B1. We then apply Prim’s algorithm [3] on the complete graph to obtain a minimum spanning tree [see Fig. 9(c)]. By the shortest paths computed in Section III-B1, we can map each edge in the minimum spanning tree to a shortest path in the spanning graph; therefore, the initial spanning tree on the spanning graph is constructed [see Fig. 9(d)]. It should be noted that shortest paths may share a common edge. In such a case, the initial spanning tree on the spanning graph will count it only once.

3) Local Refinement: In the initial OAST, there could be some pairs of vertices whose corresponding edges are in the OASG but not in the initial OAST. We add such edges into the OAST [see Fig. 9(e)] and compute the minimum spanning tree on it to remove unwanted cycles [see Fig. 9(f)]. This local refinement may lead to a new OAST with a smaller total wirelength.

C. OARST Construction

In this step, we transform each slant edge of the given OAST into vertical and horizontal edges to obtain an OARST.

Definition 7: An OARST is an undirected graph connecting all pin vertices with vertical and horizontal edges.

We then define a neighboring edge and its sharing length in an OAST as follows.

Definition 8: A neighboring edge of an edge e is an edge which has a common end vertex with e.

(6)

Fig. 10. Three cases in the OARST construction for a slant edge and its neighboring edge. The graphs in (a), (c), and (e) are transformed into those in (b), (d), and (f), respectively.

Fig. 11. Example of OARST construction.

Definition 9: The sharing length of two edges e1 and e2is

the summation of the overlapping lengths when e1and e2are

projected to the x- and the y-axes.

Three cases in the OARST construction for a slant edge e and its neighboring edge eneed to be considered, in which we take the common vertex as the origin on the xy-plane.

Case 1) The two edges are in opposite regions [see Fig. 10(a)]. In this case, e is transformed into a vertical edge and a horizontal edge [see Fig. 10(b)]. There are two possible transformations; therefore, we randomly choose one.

Case 2) The two edges are in neighboring regions [see Fig. 10(c)]. In this case, both e and e are trans-formed into a vertical edge and a horizontal edge. There are several possible transformations; there-fore, we choose the one with edge overlap [see Fig. 10(d)].

Case 3) The two edges are in the same region [see Fig. 10(e)]. In this case, by using Fig. 10(f) as an example, e and e are transformed into (va, vb) and (vb, vc), respectively. There are two possible transformations for (vc, ve), and we randomly choose one.

We use the example shown in Fig. 11(a) to explain the process. Initially, the unprocessed edge set A is{(p1,c1),(p2,

c1),(c1,c2),(c2,p3),(p3,p4),(p3,p5)}, as shown in Fig. 11(a),

and the output set E is∅. In the first iteration, the longest edge in A, (p3, p5), is selected as e, and its longest neighboring edge,

(p3, p4), is selected as e. Then, Case 3) [see Fig. 10(e)] is

applied, and they are transformed into (t1, p4), (t1, p5), (t1, t2),

and (t2, p3), as shown in Fig. 11(b). After the first iteration, the

unprocessed edge set A is{(p1, c1), (p2, c1), (c1, c2), (c2, p3)},

and the output set E is {(t1, p4), (t1, p5), (t1, t2), (t2, p3)}.

Repeating similar operations, Fig. 11(b) is transformed to Fig. 11(c) and then Fig. 11(d). Finally, the OARST is con-structed as shown in Fig. 11(e).

Fig. 12. Five cases of the overlapping edge removal. The graphs in (a), (c), (e), (g), and (i) are transformed into those in (b), (d), (f), (h), and (j), respectively.

Fig. 13. OARSMT construction of Fig. 11(e). D. OARSMT Construction

In this step, we construct an OARSMT. The construc-tion consists of three steps: 1) overlapping edge removal; 2) redundant-vertex removal; and 3) U-shaped pattern refinement.

1) Overlapping Edge Removal: For each pair of edges in the OARST, we classify their relation into five cases, as shown in Fig. 12(a), (c), (e), (g), and (i), and then transform them into those in Fig. 12(b), (d), (f), (h), and (j), respectively. By using Fig. 11(e) as an example, the result after overlapping edge removal is shown in Fig. 13(a).

2) Redundant-Vertex Removal: A redundant vertex is de-fined as follows.

Definition 10: A redundant vertex is a non-pin vertex with the degree of two, and the two edges connecting to it are parallel.

For a redundant vertex, we merge the two edges connecting to it. By using Fig. 13(a) as an example, two vertices are removed, as shown in Fig. 13(b).

3) U-Shaped Pattern Refinement: The total wirelength can be further improved by some local refinements. Considering the tradeoff between solution quality and efficiency, we particularly refine U-shaped patterns because they are relatively easier to be detected. We could also consider other more complex patterns or generate some cycles and then remove the longest edges in those cycles; however, they may involve too many edges and, thus, significantly lower the efficiency. Accordingly, this refinement is much more efficient than the maze router’s wire-straightening technique [4]. The U-shaped pattern refinement rules are defined as follows.

Definition 11: A vertex satisfies the U-shaped pattern refine-ment rules if it is not a pin vertex and its degree is two.

(7)

Fig. 14. Two cases of the U-shaped pattern refinement. The graphs in (a) and (c) are transformed into those in (b) and (d), respectively.

We need to consider two cases for the U-shaped pattern refinement.

Case 1) Several edges form the shape as shown in Fig. 14(a). One of the vertices v1 and v2 must satisfy the

refinement rule. In this case, without intersecting any obstacle, the edge e2is moved as right as

pos-sible, whereas edges e1 and e3 are still connected

by it. Edges connected to a vertex satisfying the refinement rule [e1in Fig. 14(a)] are shortened. The

resulting refinement is shown in Fig. 14(b). Case 2) Several edges form the shape as shown in Fig. 14(c).

Both vertices v1and v2must satisfy the refinement

rules. In this case, without intersecting any obstacle, the edges e2and e3are moved as right as possible,

whereas edges e1 and e4 are still connected by

them. The edge e5 is stretched, but the two edges

connected to a vertex satisfying the refinement rule [e1and e4in Fig. 14(c)] are shortened. The resulting

refinement is shown in Fig. 14(d).

After the U-shaped pattern refinement, the redundant-vertex removal is applied to ensure that there is no redundant vertex in the OARSMT. By using Fig. 13(b) as an example, the resulting removal is shown in Fig. 13(c).

A Steiner vertex is a vertex which is not a pin vertex, and its degree is more than two. We also mark Steiner vertices. As an example shown in Fig. 13(c), two Steiner vertices are marked [see Fig. 13(d)].

E. Optimality

We can construct an optimal OARSMT when the pin number m = 2. Even for nets with m≥ 3, our algorithm can still achieve optimal solutions in many cases. In the following, we give theorems for the optimality of our algorithm. Note that these theorems give sufficient but not necessary conditions for an optimal solution, i.e., more optimal solutions may still be generated in other cases. Moreover, the U-shaped pattern re-finement is not necessary for these theorems, implying that our OASG is indeed complete to generate these optimal solutions.

Theorem 2: If m = 2, our constructed OARSMT is an opti-mal solution.

Proof: By Theorem 1, the OASG implies a rectilinear shortest path of any two vertices in P . Hence, its corresponding path in the OASG is constructed in Section III-B, and this recti-linear shortest path is trivially constructed by the operations in

Sections III-C and III-D. 

When m = 3, a rectilinear Steiner tree is one of the two topologies: two simple paths between pin vertices, as shown in Fig. 15(a), or three pin vertices connected to a single Steiner

a single Steiner vertex.

vertex, as shown in Fig. 15(b). We can construct an optimal OARSMT for the first topology.

Theorem 3: If m = 3 and the topology of an optimal so-lution contains two simple paths between pin vertices, our constructed OARSMT is an optimal solution.

Proof: The two simple paths are two rectilinear shortest paths between pin vertices. These rectilinear shortest paths are

generated for the same reasons in Theorem 2. 

Note that none of the aforementioned properties is guaran-teed by the algorithm in [12] due to the missing “essential” edges; therefore, the algorithm in [12] cannot guarantee optimal solutions even for m = 2, as shown in Fig. 4. In addition, most nets in a real case are two- or three-pin nets, which makes the aforementioned properties more important for practical applica-tions. Furthermore, regardless of the topology, we can construct an optimal OARSMT for a three-pin net if there is no obstacle. Theorem 4: If m = 3 and there is no obstacle, our con-structed OARSMT is an optimal solution.

Proof: If m = 3 and there is no obstacle, after the OAST construction, there are three cases for these three pin vertices. These cases are exactly the cases shown in Fig. 10(a), (c), and (e). Therefore, by our transformations, it is trivial that an

optimal solution is generated. 

When m≥ 4, we can also construct an optimal OARSMT which contains only simple paths between pin vertices.

Theorem 5: If m≥ 4 and the topology of an optimal so-lution contains only simple paths between pin vertices, our constructed OARSMT is an optimal solution.

Proof: These simple paths are rectilinear shortest paths between pin vertices. These rectilinear shortest paths are

gener-ated for the same reasons in Theorem 2. 

Similarly, this property is not guaranteed by the algorithm in [12].

F. Complexity Analysis

1) Number of Edges in the OASG: In the following, we present two theorems for the number of edges in the OASG for the worst and average cases. Let n =|P | + |C|. Theorem 6 states that the number of edges in the OASG is O(n2) in the

worst case, whereas Theorem 7 shows that the expected number of edges in the OASG is O(n lg n).

Theorem 6: The number of edges in the OASG is O(n2). Proof: There are at most n different vertices (including pin vertices and corner vertices); therefore, the number of edge

is O(n2). 

To compute the expected number of edges in the OASG, we first give several notations and lemmas.

Definition 12: Given an instance, G1: (V1, E1) is defined as

(8)

Fig. 16. Example of G1, G2, and G3. (a) Given an instance, (b) G1has fewer edges than (c) G2which has fewer edges than (d) G3.

Fig. 17. (a) Given the G3, Γ is defined by (b) labeling from 1 to n for vertices in G3 by the order of their y-coordinates and (c) permuting these labeled numbers by the order of their x-coordinates, resulting in Γ =2, 1, 3, 5, 4. (d) The six pairs make N4= 6 which is equal to the number of edges in G3.

Definition 13: Given an instance, G2: (V2, E2) is defined as

the OASG constructed after regarding all corner vertices as pin vertices and removing all obstacles from the plane, i.e., there are totally n pin vertices and no obstacle on the plane.

Definition 14: Given an instance, G3: (V3, E3) is defined

as the OASG constructed after regarding all corner vertices as pin vertices, removing all obstacles from the plane, and moving a small enough distance ε for vertices with the same x- or y-coordinate so that all vertices have different x- and y-coordinates (see Fig. 16 for an example of G1, G2, and G3).

Definition 15: Given an instance, a permutation Γ is defined by labeling from 1 to n for the vertices in G3 by the order of

their y-coordinates and by permuting these labeled numbers by the order of their x-coordinates.

Definition 16: Given a permutation Γ, N4is defined as the

number of pairs (i, j), where 1≤ i, j ≤ n, and there is no integer whose value is between i and j and whose position in the permutation Γ is between the positions of i and j (see Fig. 17 for an example of the permutation Γ and N4; we have

the following lemmas). Lemma 3: |E1| ≤ |E2|.

Proof: For any edge in G1, it is always in G2, but there

are some edges in G2 whose corresponding edges in G1 are

blocked by obstacles. As a result,|E1| ≤ |E2|. 

Lemma 4: |E2| ≤ |E3|.

Proof: For any edge (v1, v2) in G2, there is no other vertex

inside or on the boundary of the bounding box of v1 and v2.

Because the moving of each vertex is small enough, there is still no other vertex inside or on the boundary of the bounding box of v1 and v2. As a result, (v1, v2) is still in G3, and

|E2| ≤ |E3|. 

Lemma 5: |E3| = N4.

Proof: For vertices v1, v2, and v3in G3, the y-coordinate

of v3 is between those of v1 and v2 if and only if its labeled

number is between those of v1and v2; the x-coordinate of v3is

between those of v1 and v2 if and only if its position in the

permutation Γ is between those of v1 and v2. For any edge

(v1, v2) in G3, there is no other vertex inside or on the boundary

of the bounding box of v1and v2, resulting in a pair of (i, j) in

Γ where there is no integer whose value is between i and j and whose position in Γ is between those of i and j. On the other hand, a pair of (i, j) in Γ, where there is no integer whose value is between i and j and whose position in Γ is between those of i and j, means that there is no other vertex inside or on the boundary of the bounding box of the two corresponding ver-tices. As a result,|E3| = N4due to the one-to-one mapping.

Lemma 6: The expected value of N4is O(n lg n).

Proof: For any pair (i, i + j), where i≥ 1, j ≥ 1, and i + j≤ n, there are (j + 1)! permutations from i to i + j. Among these (j + 1)! permutations, (i, i + j) is counted if and only if i and i + j are permuted successively; otherwise, there is at least an integer between i and i + j whose position in Γ is between positions of i and j. Because there are 2j! permutations from i to i + j, where i and i + j are permuted successively, and there are n! permutation from 1 to n, the pair (i, i + j) is counted n!(2j!/(j + 1)!) times among all permutations from 1 to n.

Because there are (n− j) types of pairs (i, i + j), the total count is n−1j=1((n− j)n!(2j!/(j + 1)!)) among all permuta-tions from 1 to n. Therefore, the expected value of N4is

1 n! n−1  j=1  (n− j)n! 2j! (j + 1)!  = n−1  j=1  (n− j) 2 j + 1  = 2n n−1  j=1 1 j + 1− 2 n−1  j=1  1 1 j + 1  = (2n + 2) n−1  j=1 1 j + 1− 2(n − 1) < (2n + 2) n−1  1  1 x  dx− 2(n − 1) = (2n + 2) ln(n− 1) − 2(n − 1).

As a result, the expected value of N4is O(n lg n). 

Theorem 7: The expected number of edges in the OASG is O(n lg n).

Proof: Given an instance, by Lemmas 3, 4, and 5, the number of edges in the OASG is less than its corresponding N4.

By Lemma 6, the expected value of N4is O(n lg n). As a result,

the expected number of edges in the OASG is O(n lg n) since the probability for each kind of the permutation Γ is the same. 2) Time Complexity: For the OASG construction in Section III-A, sorting is applied on the pin vertices and obstacles to perform the line sweeping algorithms. Assuming n =|P | + |C|, the time complexity of the sorting is O(n lg n). By using a tree structure to maintain the pin vertices and obstacles met by the sweeping line, the insertion, deletion, and searching can be done in O(lg n). Moreover, the OASG construction within a region of a vertex is O(n lg n) because the blocking information is also maintained by a tree structure. Therefore, the total time complexity for the OASG construction is O(n2lg n) in the worst case. However, in practical cases,

(9)

topology and can be regarded as a constant, reducing the time complexity of the OASG construction to O(n lg n).

For the OAST construction in Section III-B, heaps are ap-plied. Because the number of edges in the OASG is O(n2) in

the worst case, the time complexity of the pin-vertices shortest path computation in Section III-B1 is O(n3). The time

com-plexity of the initial OAST construction in Section III-B2 and the local optimization in Section III-B3 are both O(n2). Totally,

the time complexity for the OAST construction is O(n3) in the

worst case. However, in practical cases, the expected number of edges in the OASG is O(n lg n) [by the least squares fitting to be presented in Section IV, it is about O(n1.03)], reducing the

time complexity of the pin-vertices shortest path computation and the OAST construction to O(n2lg n).

For the OARST construction in Section III-C, sorting is applied on the edges in the OAST. Because the number of the edges in the OAST is O(n), the time complexity for the OARST construction is O(n lg n). For the OARSMT construction in Section III-D, the time complexity is O(n2) for checking each

pair of edges and each vertex in the OARST. In addition, the time complexity of the U-shaped pattern refinement is also O(n2) in the worst case.

Finally, the overall time complexity of our algorithm is O(n3) in the worst case and O(n2lg n) for practical

applica-tions (see Section IV for the empirical performance). IV. EXPERIMENTALRESULTS

We implemented our algorithm in the C/C++ language on a 2-GHz AMD-64 machine with 8-GB memory under Ubuntu 6.06 operating system. There are totally 22 benchmark circuits, five industrial test cases (ind1–ind5) from Synopsys, 12 test cases used in [5] (rc1–rc12), and five random test cases (rt1–rt5) generated by us. We removed an overlap of two obstacles in rc12 because it is invalid. On the other hand, the number of obstacles is usually much larger than that of pin vertices in a

Fig. 18. Final routing result of rt3, where a pin vertex is represented by a solid circle.

real design; therefore, we set the ratios of k and m to 5, 10, and 50 to generate the five large random cases. Given the constraints on the areas and the aspect ratios of obstacles, their positions, lengths, and widths were randomly generated without overlap-ping each other. Moreover, the positions of pin vertices were also randomly generated without locating inside any obstacle.

We compared our algorithm with those presented in [5], [12], and [13]. We also compared with a maze-routing-based algorithm, namely, MZ, which constructs a minimum spanning tree first, starts from one pin as a constructed OARSMT, and iteratively finds the shortest path from an unconnected pin to the constructed OARSMT by Clow’s A∗ maze routing in [2]. The results in [13] are provided by the authors and were generated from a Unix workstation with 2.66-GHz CPU and 1-GB memory. The results in [5] are directly quoted from the paper, where the algorithm was performed on a Sun V880

(10)

TABLE II

COMPARISON ON THECPU TIME, WHERE“—” MEANSTHAT THERESULTISNOTAVAILABLE

fire workstation with 755-MHz CPU and 4-GB memory. We implemented the algorithm in [12] and MZ. Different from our OASG graph construction, the algorithm in [12] only constructs an edge within each region. In addition, it operates without the U-shaped pattern refinement, as described in Section III-D3. We also verified the generated OARSMTs by another program to ensure that all pin vertices were connected without intersect-ing any obstacle.

Table I lists the total wirelengths of these algorithms without any scaling. Fig. 18 shows the resulting layout for the test case rt3. Considering the differences from the half-perimeter of the bounding box of all the pin vertices, the respective average improvements are 6.66%, 27.70%, 5.79%, and 0.93%, as compared with the algorithms in [5], [12], and [13], and MZ. The average improvement over the algorithm in [12] with the OASG alone is about 3.69%, whereas the overall improvement is about 5.79%. Note that our algorithm is more efficient than MZ for most cases and can have both shorter wirelengths and less running times in many cases. In contrast, MZ never obtains shorter wirelengths and less running times at the same time. Since the half-perimeter of the bounding box of all pin vertices is a lower bound for an optimal solution for this OARSMT problem, these improvements are very significant (if we con-sider the differences from an optimal solution, the improvement is even larger). In larger test cases, since the half-perimeters of these cases are far from their optimal solutions, the improve-ments seem to be less than those of small cases. In fact, con-sidering the percentages of the reduced length, the algorithm is still very effective, independent of the sizes of test cases.

Table II gives the comparison on the CPU times of these algorithms. Our algorithm is also sufficiently efficient. For example, when the numbers of pin vertices and obstacles reach 200 and 800, respectively (rc8), our algorithm takes only 0.83 s and achieves 4.46% and 1.93% improvements over the

algorithm in [12] and MZ, respectively. By the least squares fitting on the log-log axes, the respective slopes of the fitting lines for our algorithm, that in [12], and MZ are 1.46, 1.40, and 1.59, implying that the empirical time complexity of our algorithm is close to O(n1.46), whereas those in [12] and the

MZ are about O(n1.40) and O(n1.59), respectively. Note that

this is reasonable since we add more edges into our OASGs to guarantee the optimality described in Section III-E, whereas the work in [12] does not. Furthermore, the empirical time complexity is far under the theoretical worst case complexity of O(n3) in Section III-F2. The much lower empirical time

complexity can be explained by the sizes of our OASGs. The numbers of edges in our OASGs are listed in the last column of Table II. By the least squares fitting on the log-log function of the number of edges to the circuit size, the number of edges in our OASG grows only about O(n1.03) empirically in the input size n, which is far under the theoretical worst case complexity of O(n2). The experimental results show that our algorithm is

very effective and efficient.

V. CONCLUSION

We have proposed an algorithm to construct an OARSMT. We can achieve an optimal solution for any two-pin net and nets with more pins in many cases. The experimental results have shown that our algorithm is very effective and efficient. With the completeness of the OASG construction, in particular, our algorithm also provides key insights into the search for more desirable OARSMT solutions.

ACKNOWLEDGMENT

The authors would like to thank J.-R. Gao and Prof. T.-C. Wang of the National Tsing Hua University for providing the test data.

(11)

Palo Alto, CA, Res. Rep. 95/3, 1995.

[5] Z. Feng, Y. Hu, T. Jing, X. Hong, X. Hu, and G. Yan, “An O(n log n) algorithm for obstacle-avoiding routing tree construction in the lambda-geometry plane,” in Proc. ISPD, 2006, pp. 48–55.

[6] J. L. Ganley and J. P. Cohoon, “Routing a multi-terminal critical net: Steiner tree construction in the presence of obstacles,” in Proc. ISCAS, 1994, pp. 113–116.

[7] M. R. Garey and D. S. Johnson, “The rectilinear Steiner tree problem is NP-complete,” SIAM J. Appl. Math., vol. 32, no. 4, pp. 826–834, Jun. 1977.

[8] Y. Hu, Z. Feng, T. Jing, X. Hong, Y. Yang, G. Yu, X. Hu, and G. Yan, “FORst: A 3-step heuristic for obstacle-avoiding rectilinear Steiner min-imal tree construction,” J. Inf. Comput. Sci., vol. 1, no. 3, pp. 107–116, 2004.

[9] Y. Hu, T. Jing, X. Hong, Z. Feng, X. Hu, and G. Yan, “An-OARSMan: Obstacle-avoiding routing tree construction with good length perfor-mance,” in Proc. ASP-DAC, 2005, pp. 7–12.

[10] C. Y. Lee, “An algorithm for path connections and its application,” IRE

Trans. Electron. Comput., vol. 10, no. 2, pp. 346–365, Sep. 1961.

[11] C.-W. Lin, S.-Y. Chen, C.-F. Li, Y.-W. Chang, and C.-L. Yang, “Efficient obstacle-avoiding rectilinear Steiner tree construction,” in Proc. ISPD, 2007, pp. 127–134.

[12] Z. C. Shen, C. C. N. Chu, and Y.-M. Li, “Efficient rectilinear Steiner tree construction with rectilinear blockages,” in Proc. ICCD, 2005, pp. 38–44. [13] Y. Shi, T. Jing, L. He, Z. Feng, and X. Hong, “CDCTree: Novel obstacle-avoiding routing tree construction based on current driven circuit model,” in Proc. ASP-DAC, 2006, pp. 630–635.

[14] Y. Yang, Q. Zhu, T. Jing, X. Hong, and Y. Wang, “Rectilinear Steiner minimal tree among obstacles,” in Proc. ASIC, 2003, pp. 348–351. [15] S. Q. Zheng, J. S. Lim, and S. S. Iyengar, “Finding obstacle-avoiding

shortest paths using implicit connection graphs,” IEEE Trans.

Comput.-Aided Design Integr. Circuits Syst., vol. 15, no. 1, pp. 103–110, Jan. 1996.

[16] H. Zhou, “Efficient Steiner tree construction based on spanning graphs,”

IEEE Trans. Comput.-Aided Design Integr. Circuits Syst., vol. 23, no. 5,

pp. 704–710, May 2004.

Chung-Wei Lin received the B.S. degree in

com-puter science and information engineering and the M.S. degree in electronics engineering from the Na-tional Taiwan University, Taipei, Taiwan, R.O.C., in 2005 and 2007, respectively.

He is currently in the military service. His research interests include routing-related topics and design for manufacturability/reliability.

Mr. Lin was the recipient of the Presidential Award from the National Taiwan University for six semesters during his college years. He is an honorary member of the Phi Tau Phi Scholastic Honor Society of Taiwan.

Szu-Yu Chen received the B.S. degree in electrical

engineering from the National Taiwan University, Taipei, Taiwan, R.O.C., in 2007. He is currently working toward the M.S. degree at the Graduate In-stitute of Electronics Engineering, National Taiwan University, Taipei.

His current research interests include VLSI elec-tronic design automation, large-scale routing, and design for manufacturability/reliability.

design automation and low-power designs for the embedded computing systems.

Yao-Wen Chang (S’94–M’96) received the B.S.

degree from National Taiwan University, Taipei, Taiwan, in 1988, and the M.S. and Ph.D. degrees from the University of Texas at Austin in 1993 and 1996, respectively, all in computer science.

He is a Professor in the Department of Electrical Engineering and the Graduate Institute of Electron-ics Engineering, National Taiwan University. He is currently also a Visiting Professor at Waseda Uni-versity, Kitakyushu, Japan. He was with the IBM T. J. Watson Research Center, Yorktown Heights, NY, in the summer of 1994. From 1996 to 2001, he was on the faculty of National Chiao Tung University, Taiwan. His current research interests include VLSI physical design, design for manufacturability and reliability, design automation for biochips, and FPGA. He has been working closely with industry on projects in these areas. He has coauthored one book on routing and over 130 ACM/IEEE conference/journal papers in these areas.

Dr. Chang received an award at the 2006 ACM ISPD Placement Contest, Best Paper Awards at ICCD-95 and the 2007 VLSI Design/CAD Sympo-sium, and 11 Best Paper Award Nominations from DAC (2000, 2005, 2007, 2008), ICCAD (2002, 2007), ISPD (two in 2007), ACM TODAES (2003), ASP-DAC (2004), and ICCD (2001). He has received many awards for re-search, such as the 2007 Distinguished Research Award, the inaugural 2005 First-Class Principal Investigator Award, and the 2004 Dr. Wu Ta You Memorial Award from the National Science Council of Taiwan, the 2004 MXIC Young Chair Professorship from the MXIC Corporation, and for excellent teaching from National Taiwan University (2004, 2006, 2007) and National Chiao Tung University (2000). He is currently an Associate Editor of the IEEE TRANSACTIONS ONCOMPUTER-AIDEDDESIGN OFINTEGRATEDCIRCUITS AND SYSTEMS(TCAD) and an editor of the Journal of Information

Sci-ence and Engineering (JISE). He currently serves on the ICCAD Executive

Committee, the ACM/SIGDA Physical Design Technical Committee, and the ISPD Organizing Committee and has served on the technical program commit-tees of ASP-DAC (topic chair), DAC, DATE, FPL, FPT (program co-chair), GLSVLSI, ICCAD, ICCD, IECON (topic chair), ISPD, SOCC (topic chair), TENCON, and VLSI-DAT (topic chair). He is currently an independent board director of Genesys Logic, Inc., a member of the board of governors of the Taiwan IC Design Society, and a member of the IEEE Circuits and Systems Society, ACM, and ACM/SIGDA.

Chia-Lin Yang (M’02) received the B.S. degree

from the National Taiwan Normal University, Taipei, Taiwan, R.O.C., in 1989, the M.S. degree from the University of Texas at Austin, in 1992, and the Ph.D. degree from the Department of Computer Science, Duke University, Durham, NC, in 2001.

In 1993, she was with VLSI Technology Inc. (now Philips Semiconductors) as a Software Engineer. She is currently an Associate Professor with the Department of Computer Science and Information Engineering, National Taiwan University, Taipei. Her research interests include energy-efficient microarchitectures, memory hierarchy design, and multimedia workload characterization.

Dr. Yang was the recipient of a 2000 to 2001 Intel Foundation Graduate Fellowship Award and the 2005 IBM Faculty Award.

數據

Fig. 1. (a) Any two obstacles cannot overlap each other, but (b) two obstacles could be point-touched at the corner or line-touched at the boundary
Fig. 4. Comparison between our OASG and that of Shen et al. (a) Our OASG has the edge (p 1 , p 2 ) and (b) results in an optimal rectilinear connection.
Fig. 5. Another comparison between our OASG and that of Shen et al.
Fig. 8. (a) Example neighbors and territory of a vertex s. (b) A shortest path from s must intersect the boundary of the territory of s
+6

參考文獻

相關文件

A factorization method for reconstructing an impenetrable obstacle in a homogeneous medium (Helmholtz equation) using the spectral data of the far-field operator was developed

A factorization method for reconstructing an impenetrable obstacle in a homogeneous medium (Helmholtz equation) using the spectral data of the far-eld operator was developed

The case where all the ρ s are equal to identity shows that this is not true in general (in this case the irreducible representations are lines, and we have an infinity of ways

Given a connected graph G together with a coloring f from the edge set of G to a set of colors, where adjacent edges may be colored the same, a u-v path P in G is said to be a

• An algorithm is any well-defined computational procedure that takes some value, or set of values, as input and produces some value, or set of values, as output.. • An algorithm is

O(log 2 k/ log log k)-Approximation Algorithm for Directed Steiner Tree: A Tight

The min-max and the max-min k-split problem are defined similarly except that the objectives are to minimize the maximum subgraph, and to maximize the minimum subgraph respectively..

Given a graph and a set of p sources, the problem of finding the minimum routing cost spanning tree (MRCT) is NP-hard for any constant p &gt; 1 [9].. When p = 1, i.e., there is only