Probability-based approach for solving the Rectilinear Steiner tree problem Jayakrishnan Iyer

Download Report

Transcript Probability-based approach for solving the Rectilinear Steiner tree problem Jayakrishnan Iyer

Probability-based approach
for solving the Rectilinear
Steiner tree problem
Jayakrishnan Iyer
Steiner Tree
 Steiner Tree – Given a set of points in a plane
N={1,2,…,n} and graph G = (N,E) wherein
E  {(i, j ) | i  N , j  N , i  j}
 Here we associate a weight we for all e in E.
 A Steiner Tree for G is a subgraph St = (N’,E’) for all
N' N
E' E
such that
1)St is a tree and T  N '
2)For all s,t in T, there exists only one path from s to t in
St
Steiner tree problem
 Minimize Length of the steiner tree.
 It is an NP-complete problem
 Rectilinear Steiner Trees – Distance between 2
points is the sum of distances in the horizontal and
vertical dimensions
 Very Important in VLSI routing.
 Some good theoretical bounds



O(n22.62n) by Ganley/Cohoon
nO(√n) by Smith – quite impractical due to large
exponent.
O(n22.38n) by Fobermeir/Kaufmann and αn for random
instances where α<2
Probabilistic Model
 Grid graph – Define a grid for any set of
points P={p1,p2,…,pn} where each pi is (xi,yi)
and xi≠xj and yi ≠yj for i ≠ j.
 Optimal RST for segments in tree T such that
wire length for all segments over T is
minimum.
 Define Horizontal and Vertical Grid distances
for a given grid.
Probabilistic Model(cont’d)
 An Eg. Grid graph for a set of 3 points
2
p2
1
3
3
l2
p1
l1
2
p3 1
 Optimal Steiner tree corresponding to this
p2
p1
Sl (Steiner Point)
p3
Probabilistic Model (cont’d)
 A generic grid graph (ref. chen et. al.)
Probabilistic Model (cont’d)
 Here m and n are the vertical and horizontal
grid sizes respectively.
 M = number of all possible shortest paths
from pi to pj
 Number of paths througth R(I,J-1) i.e. R2 =
F(m,n)
 Number of paths througth C(I,J) i.e. C2 =
G(m,n)
 F(1,q) = G(q,1) = 1 and F(q,1) = G(1,q) = q
Probabilistic Model (cont’d)
 Probability of Shortest path through R(I,J-1) =
F(m,n)/M. Similarly for path through C(I,J) =
G(m,n)/M.
 F(m,n) = F(m-1,n) + G(m-1,n) and
 G(m,n) = F(m,n-1) + G(m,n-1)
 Also, F(m,n-1) = F(m-1,n-1) + G(m-1,n-1)
And G(m-1,n) = G(m-1,n-1) + F(m-1,n-1)
Probabilistic model (cont’d)
 Theorem: If for q>0 F(q,0)=G(0,q) = 1 then
n
F (m, n)   F (m  1, k )
k 0
n
G (m, n)   G (m  1, k )
k 1
M  F (m  1, n)  G (m, n  1)
Where m,n>1.
Probabilistic analysis (cont’d)
 F(m,n) and G(m,n) can be recursively defined as,
m  n 1
F (m, n) 
F (m, n  1)
n
m  n 1
G (m, n) 
G (m, n  1)
n 1
Probabilistic model (cont’d)
 Probability Matrix:
 For any row segment R(I+k,J-l-1) where 0<k<n and
0≤l≤ m-1, we have for M shortest paths, number of
paths passing through the given segment,
F (m  l , n  k )[ F (l , k )  G (l , k )]  F (m  l , n  k ).F (l  1, k )
 The probability of a shortest path passing through these
segments is given by,
F ( m  l , n  k ).F (l  1, k )
PR ( I  k , J  l  1) 
F ( m  1, n)

Similarly for a column segment the probability is,
G (m  l , n  k )G (l , k  1)
PC ( I  k , J  l ) 
G (m, n  1)
Algorithms
 Pure Probabilistic - steps
 1)Compute r(i),c(i),H(k) and V(k) for given
P={p1,p2,…,pn} where i is in {1,2,…,n} and
K=1,2,…,n-1
2)Compute F(m,n) and G(m,n).
3)Obtain PR and PC for all the N2 pairs and compute the
matrix and normalize them.
PR(i,j) = PR(i,j)/H(j) for 1<i<n and 1<j<n-1
PC(i,j) = PC(i,j)/V(i) for 1<i<n-1 and 1<j<n
4)Ignore segments leading to a cycle.
5)Delete redundant and degree-one segments not
connected to any point in P.
6)Obtain the set of Steiner points S and compute wirelength.
Algorithm (cont’d)
 Time Complexity of this algorithm is O(N4)
due to the time taken for nomalizing the N2
pairs for each of the row and column
probability matrices.
 Other algorithms have only a slight
modification the previous algorithm and
reduce the time complexity to O(N3) by using
MST to get the N-1edge set.
Certain dilemmas
 Although wire length computation results
have been provided in the paper, it does not
hint as to how accurately the problem is
solved (upper bound on success).
 Time taken for a particular point set instance
of the problem.
 Questions ??