32.4 SIMPLEX ALGORITHM WITH COLUMN GENERATIONThe first algorithm to solve the fractional global routing problem Equation 32.2 by Hu and Shing in 1985 [15] used the simplex algorithm by D
Trang 132.4 SIMPLEX ALGORITHM WITH COLUMN GENERATION
The first algorithm to solve the fractional global routing problem (Equation 32.2) by Hu and Shing in
1985 [15] used the simplex algorithm by Dantzig in 1951 [16] with column generation This method finds an optimal solution even though it does not explicitly enumerate all the possible Steiner trees, nor has variables for all Steiner trees in memory The method is limited in the size of the problem instances, and hence Hu and Shing propose a decomposition and cut-and-paste approach
In this section, we show how the simplex algorithm with column generation is applied to the fractional global routing problem The simplex method goes from vertex to vertex along edges of the polyhedron underlying the linear program until an optimal vertex is reached For a complete description of the simplex method, we refer the reader to Refs [12,13,17] Interesting is that this method requires a subroutine that computes minimal Steiner trees for nets with respect to a nonneg-ative length function on the edges, a subroutine that is also required by the approximation schemes
is presented later
The linear program of the fractional global routing problem (Equation 32.2) can be rewritten with matrices as follows in a standard form for linear programs:
min
⎧
⎨
⎩λ:
⎛
⎝x λ
v
⎞
⎠ = 0 1
, x, λ, v ≥ 0
⎫
⎬
In this linear program, the first constraint
⎛
⎝x λ
v
⎞
⎠ = 0 corresponds to the capacity constraints on the edges, the first inequality in Equation 32.2 Each row corresponds to an edge and
each column of the matrix M corresponds to a Steiner tree T for a net i and is the incidence vector for the edges of the corresponding Steiner tree The vector v contains slack variables for the equality
constrains
The second constraint
N 0 0⎛⎝x
λ v
⎞
⎠ = 1 of the linear program ensures that the weights x i,T
for each net i and all Steiner trees T for the net sum up to 1, the second inequality in Equation 32.2 The matrix N has one row for each net and each row is the incidence vector for all the Steiner trees
of the corresponding net
The dual of this linear program is as follows:
max{1z : zN ≤ yM, yc ≤ 1, y ≥ 0} (32.5) The simplex method requires an initial vertex of the polyhedron as a starting point and basis of
the matrix A= M N −c I0 0
: for each net i, pick one Steiner tree T arbitrarily, set x i,T,= 1, and the corresponding column of M
N
i,T
becomes part of the basis Next, −c
0
is part of the basis We can assume that this column is always part of the basis, becauseλ does not become 0 Finally, for all
edges that do not have the maximum relative congestion, the corresponding columns I
0
e
are part
of the basis In case several edges have the maximum relative congestion, additional columns I
0
e
are chosen until the basis has|E| + k columns We denote by M N
B1
−c
0
1 0
B2
the matrix
Trang 2that has all the columns for the basis This matrix has the full rank and can be inverted The simplex algorithm computes a dual solution as follows:
(−y, z) = M N
B1
−c
0
I
0
B2
−1⎛
⎝01 0
⎞
⎠
The algorithm checks if this is a feasible dual solution: We have yc= 1 because −c0
is part of
the basis Checking y ≥ 0 is straight forward The inequality zN ≤ yM is checked by computing a minimal Steiner tree for each net i with respect to the length function y e , e ∈ E and comparing this length with z i We will later see that the approximation algorithms require the same subroutine
If (y, c) is a feasible dual solution, the vertex for the primal linear program is an optimal solution.
Otherwise a column corresponding to a violated constraint becomes part of the basis, another column leaves the basis, and if the vertex was not degenerate, a new vertex is computed The simplex algorithm terminates in the worst case, after exponentially many steps; however, in practice, it is reasonably fast for most applications
We conclude this section by mentioning another linear programming approach for the global routing problem by Vannelli from 1989 [18] In a first step, Vannelli reduces the complexity and size of the linear program by restricting the set of Steiner trees to only the minimal or near-minimal Steiner trees using also the result by Hanan, that a shortest rectilinear Steiner tree can be found
in the grid induced by the terminals [19] This restriction of the solution space may of course result in a suboptimal solution of the fractional global routing problem Then he uses the Karmarkar algorithm [20], an interior point algorithm, which moves through the interior of the feasible region and reaches the optimal solution asymptotically The runtime of the Karmarkar algorithm is polynomial, but it has the disadvantage compared to the simplex algorithm that it requires the complete linear program as input
32.5 MULTICOMMODITY FLOW AND FRACTIONAL PACKING PROBLEMS
In this section, we give an overview about multicommodity flow and fractional packing problems These problems are similar to the fractional global routing problem In fact, the fractional packing problem is a generalization of the fractional global routing problem There have been many advances
in the field of approximation algorithms for multicommodity flow and fractional packing problems and we will apply these to the fractional global routing problem in the next section
For this section, let G = (V, E) be a directed graph with an edge utilization (or capacity) function c : E→ R+ For a vertex v ∈ V we denote by δ+(v) all outgoing edges of v and by δ−(v)
all incoming edges of v Let s (the source) and t (the sink) be two specified vertices An s–t flow is a function f : E→ R+, which fulfills the flow conservation rule
e ∈δ−(v) f (e) =e ∈δ+(v) f (e) for all
v ∈ V\{s, t} and the capacity constraints f (e) ≤ c(e) for all e ∈ E The value of an s–t flow f is
defined as value(f ) :=e ∈δ−(s) f (e) −e ∈δ+(s) f (e).
It is possible to decompose an s–t flow into at most m = |E| flows along s–t paths: Given
an s–t flow f of nonzero value, we find an s–t path P with f (e) > 0 for all e ∈ P If we set
x : = min{f (e)|e ∈ P}, the function f : E → R+with f(e) = f (e) − x if e ∈ P and f(e) = f (e)
otherwise is again an s–t flow, but it has at least one edge e with f (e) > 0 less Repeating this
procedure until the value of the flow is 0 (flow along cycles may remain), we find x1, , x t and
P1, , P tsuch that
i:e ∈ Pi x i ≤ f (e) for all e ∈ E.
For the multicommodity flow problem, several commodities are given Each commodity i has
a source s i , a sink t i , and a demand d i Let k be the number of commodities The task of the maximum-concurrent multicommodity flow problem is to find an s i –t i flow f i for each
commod-ity i subject to the capaccommod-ity constraintsk
i=1f i (e) ≤ c(e) for all e ∈ E such that the total throughput
µ is maximized The value of each flow f is at leastµ d
Trang 3Other version of the multicommodity flow problem are the maximum multicommodity flow problem for which no demands are given and just the sum of the flows is maximized and the minimum-cost multicommodity flow problem for which a cost function for the edges is given in addition to the capacitances and the task is to minimize the total cost of all the flows
It is possible to formulate the maximum concurrent flow problem as a linear program in which
the variables are the flow values for the edges f i (e) The size of this linear program is polynomial in
the size of the input, hence we can find an optimal solution in polynomial time using the ellipsoid method [21] However, for large problem instances, it is computationally impossible to solve the linear program optimally
LetP i be the set of all s i − t ipaths The following linear programming formulation makes use
of the decomposition of flows into paths
maxµ
subject to
i,P:e ∈P∈Pi
x i,P ≤ c(e) for e ∈ E
P ∈Pi
x i,P = µd i for i = 1, , k
x i,P ≥ 0 for i = 1, , k; P ∈ P i
(32.6)
This linear program has exponentially many variables Nevertheless, it is possible to compute an
-approximate solution in polynomial time using this formulation implicitly as most of the variables
x i,Pcan be 0
There has been a series of papers about fully polynomial-time approximation schemes (FPTAS) for multicommodity flow problems in the last decade An approximation scheme is a family of algorithms that compute a solution within a factor (1− ) of the optimal for any constant If the
running time can be bounded by a polynomial depending on the input size and 1/, then the scheme
is called fully polynomial time
All approximation algorithms maintain a flow and then iteratively improve it by computing single commodity flows or single commodity flows restricted to paths with respect to a cost function depending on the congestion
The fractional packing problem is a generalization of the multicommodity flow problem Given
a convex set P⊆ Rn , a matrix A ∈ Rm ×n
+ , and a vector b ∈ Rm , the task is to find an x ∈ P with
Ax ≤ b The approximation scheme, as for example by Plotkin et al [4], requires a subroutine, which finds for a vector c ∈ Rn
+, a vector x ∈ P that minimizes c T x.
The fractional global routing problem is a special case of the fractional packing problem: The
convex set P is given by the constraints
T ∈Ti x i,T = 1 for i = 1, , k and x i,T ≥ 0 for i =
1, , k, T ∈ T i and the constraints Ax ≤ b represent the constraintsi,T :e ∈T∈Ti x i,T ≤ λc(e) for
e ∈ E The subroutine needs to find a Steiner tree for each net minimizing a cost function and this
cost function is the sum of some nonnegative cost of the edges of the Steiner tree
32.6 FULLY POLYNOMIAL-TIME APPROXIMATION SCHEME
FOR FRACTIONAL GLOBAL ROUTING
In this section, we present and describe a fully polynomial-time approximation scheme for the fractional global routing problem Carden et al in 1996 [22] were the first to apply a multicommodity flow approximation algorithm to global routing They use the approximation algorithm by Shahrokhi and Matula [3] The approximation scheme presented here, first published in Ref [9], is based on the approximation scheme by Garg and Könemann [6], but also use ideas from Fleischer [7] The
Trang 4approximation scheme iteratively finds Steiner trees with respect to dual lengths y e, then adjusts the dual lengths just for the Steiner tree found
The approximation scheme that solves the fractional global routing problem for any given approximation ratio 1+ 0is shown in Figure 32.3
The variables are initialized in lines 1 and 2 The algorithm is called with the parameters and M.
The proof of the theorem in this section will show which value to choose for these parameters to get the desired approximation ratio
The algorithm runs through several phases A phase starts in line 4 and ends in line 11 For each
net i, a minimal Steiner tree T ∈ T i with respect to lengths y e , e ∈ E is computed (line 7) For this Steiner tree, the variable x i,T is increased by 1 (line 8) To achieve that for each net i, the variables
x i,T , T ∈ T i , sum up to 1, all variables x i,Tare divided by the total number of phases at the end of the
algorithm Finally, the dual variables y e are increased for all edges used by the Steiner tree T (line 9).
The variables are increased more if the net uses a greater fraction of the capacity of the edge
Theorem 2 If there exists a solution for the fractional global routing problem with maximum
relative congestion at most 1, the algorithm finds a (1 + 0)-approximation in
2λ∗ln m
phases, if := min
1,1 4
1+ 0
1
and M := m
1−
1
with := (1+ ∈)
Moreover, the variables y e , e ∈ E, provide at some time during the algorithm a (1 + 0) − approximation for the dual linear program.
The total number of phases of the algorithm depends on λ∗, but usually in the application of global routing λ∗is not arbitrarily small, for example, we can assume λ∗≥ 1
2.
To prove this theorem, we follow the proof by Garg and Könemann [6], but also use parts from
the proof by Fleischer [7] because we have a modified update rule for y e
Proof Let t be the total number of phases executed by the algorithm We will prove that if the algorithm had stopped one phase before the last one, namely after t− 1 phases, the solution would have had the desired approximation ratio
(1) Sety e := 1
c(e)for alle ∈ E.
(2) Setx i,T := 0 for i = 1, ,k; T ∈ T i.
(3) While
e∈E c(e)y e < M
(4) begin
(5) For i := 1 tok
(7) Find a minimal Steiner treeT ∈ T ifor neti
with respect to lengthy e , e ∈ E.
(8) Setx i,T := x i,T+ 1
(9) Sety e:= y e e 1 c(e) for alle ∈ T.
(11) end
FIGURE 32.3 Approximation scheme for fractional global routing.
Trang 5Let y (p,i) e be the value of variable y e , after net i has been considered in phase p and y ehas been
increased in line 9, y (0,0) e = 1
c(e) and let y e (p):= y (p,k)
e be the value at the end of phase p So we compute the minimal Steiner tree in phase p and iteration i with y (p,i−1) e as edge lengths At the beginning, we have
e ∈E
c (e)y (0)
e =
e ∈E
c (e) 1
When the dual variables y e are increased in line 9 after a Steiner tree T has been found, the expression
e ∈E
c (e)y eincreases, and we have
e ∈E
c (e)y (p,i)
e =
e /∈T
c (e)y (p,i−1)
e +
e ∈T
c (e)y (p,i−1)
e e 1
c (e)
e /∈T
c (e)y (p,i−1)
e +
e ∈T
c (e)y (p,i−1) e
1+ 1
c (e) +
2
1
c (e)
2
For the last inequality, we used e x ≤ 1 + x + x2for 0≤ x ≤ 1 We can assume c(e) ≥ 1 and because
≤ 1 we have x = 1
c (e)≤ 1 Hence,
e ∈E
c (e)y (p,i)
e ≤
e/∈T
c (e)y (p,i−1)
e +
e ∈T
c (e)y (p,i−1) e
1+ (1 + ) 1
c (e)
e ∈E
c (e)y (p,i−1)
e + (1 + )
e ∈T
y (p,i−1) e
Because y e increases only during the algorithm, for the Steiner tree T found in line 7, we have
e ∈T
y (p,i−1) e ≤ min
T ∈Ti
e ∈T
y (p) e
which means that at the end of phase p, we get
e ∈E
c (e)y (p)
e ≤
e ∈E
c (e)y (p−1)
e + ∈
k
i=1
min
T ∈Ti
e ∈T
where:= (1 + ) By linear programming duality (Theorem 1), the expression
λ (p)
lb :=
k
i=1
min
T ∈Ti
e ∈T
y (p) e
e ∈E
c (e)y (p) e
is a lower bound on the maximum relative congestion, that is,λ (p)
lb ≤ λ∗ With this, inequality (Equation 32.8) can be rewritten as
e ∈E
c (e)y (p)
e ≤
e ∈E
c (e)y (p−1)
e + λ (p)
lb
e ∈E
c (e)y (p) e
which can be transformed to
∈E
c (e)y (p)
e ≤ 1
1− λ (p)
lb
∈E
c (e)y (p−1) e
Trang 6If we setλlb:= maxp =1, ,t λ (p)
lb, we get with Equation 32.7
e ∈E
c (e)y (p)
e ≤ (1 − mλ
lb) p
(1 − λlb) 1+
λlb
1− λlb
p−1
(1 − ) 1+
λlb
1−
p−1
(1 − ) e
λlb(p−1)
1−
(32.9)
For the last inequality, 1+ x ≤ e x for x≥ 0 is used
An upper bound on the relative congestion of an edge e can now be derived: Suppose edge e is used
s times by some tree during the first t − 1 phases, and let the jth increment in the relative congestion
of edge e be a j := 1
c(e) for the appropriate i After rescaling the variables x i,T, the relative congestion
of edge e is λ(e) =s
j=1a j /(t − 1) Because y (0)
e = 1
c(e) and y (t−1) e < M
c(e)(because the condition in line 4 still holds before the last phase is executed) and because
y (t−1) e = 1
c (e)
s
j=1
e aj
we get
1
c (e)
s
j=1
e aj ≤ M
c (e)
It follows that
e s
j=1a j ≤ M
and hence
λ(e) =
s
j=1a j
ln M
Because
e ∈ E c (e)y (t)
e ≥ M, solving inequality (Equation 32.9) with p = t for λlbgives a lower bound on the optimum solution value:
λlb≥ 1(t − 1) − ln
M
m (1 − )
from which together with Equation 32.10, we get an upper bound on the approximation ratioρ:
maxe ∈E λ(e)
λlb
≤
ln M
∈(t−1)
1−
(t−1)lnM
m (1 − ) =
(1 − )
ln M
lnM
m (1 − )
If M is now chosen to be M : = ( m
1−) 1, we get
ln M
lnM
(1 − ) = 1
1−
Trang 7such that
ρ ≤ (1 − )2 = (1 + )
[1− (1 + )]2 =
(1 + )
[1− (1 + )]2
If ≤ 1, 1 + ≤ 2, we get
ρ ≤ (1 − 4) (1 + )2 ≤ (1 − 4)1 3 because1+ ≤ 1
1− ≤ 1 1−4
If is chosen such that 1
(1−4)3 ≤ 1 + 0, so we choose
= min
1,1 4
1− 1
1+0
1
we getρ ≤ 1 + 0 After all, we have = O(0) and also = O(0 ).
Because maxe ∈E λ(e) ≥ λ∗, we get from Equation 32.10 that
λ∗≤ (t − 1) ln M which means that the maximum number of phases is bounded by
t≤ 1 +ln M λ∗ = 1 + 1λ∗ln m
1−
The last expression can be bounded by O ( 1
2 0 λ∗ln m ).
It is important that the actual implementation does not have one single variable x i,T for every possible Steiner tree, because there are exponentially many A variable is only needed for a Steiner tree that was at some point during the algorithm the minimal Steiner tree and found by the algorithm
in line 7 and for which the variable x i,Tis greater than 0
To simplify the presentation of the algorithm and the proof we have omitted one idea that gives additional runtime improvements The algorithm in Figure 32.3 computes a Steiner tree for all the nets
in every phase However, this is not necessary The length (with respect to y e) of a newly computed Steiner tree is stored and then in the following phases a new Steiner tree is computed for the net only
if the length of the Steiner tree has increased by more than a certain factor (depending on) It can
be shown that still any approximation ratio can be achieved [9] This idea was used by Fleischer [7]
to reduce the theoretical runtime of the maximum multicommodity flow problem
Another practical speedup can be achieved with the Newton method as used in Refs [5,9]: After
p phases, the last Steiner tree computed has a weight of 1
pin the current solution where all previously computed Steiner trees have a total weight of p−1p After each Steiner tree is computed, the Newton method is used to compute a new weight for the new Steiner tree with respect to the other Steiner trees minimizing an expression similar toψ =e ∈E e αλ(e)
Another advantage of this approximation algorithm (compared to some rip-up and reroute algo-rithms) is that not only the maximum relative congestion is minimized, but also that the congestion of the edges is distributed and that the algorithm works toward a solution that is optimal in a well-defined sense—the vector of the relative congestion of the edges sorted in nonincreasing order is minimal by lexicographic order [9] Reducing the congestion beyond the maximum relative congestion on some edges can speed up the local router and also improves the signal integrity
Trang 832.6.2 APPROXIMATIONSCHEMEMINIMIZING THETOTALWEIGHTEDNETLENGTH
The approximation scheme described in Section 32.6.1 can be modified such that the total weighted netlength is considered and minimized subject to the condition that the maximum relative congestion
of the edges is at most 1 We follow the approach by Garg and Könemann [6] for the minimum-cost multicommodity flow problem
In addition to the capacity for each edge e = {u, v}, the L1-length l (e) is given, that is, for an
edge in x- or y-direction as the distance between the midpoints of the tiles corresponding to u and v For each net i, a weight g i ∈ R+is given We would like to minimize the total weighted netlength, which is given by the expression
k
i=1
g i
T ∈Ti
e ∈T
l (e)
x i,T
Let L be a target for the total weighted netlength Then the constraint
k
i=1
g i
T ∈Ti
e ∈T
l (e)
is added to the linear program (Equation 32.2) of the fractional global routing problem This constraint
is very similar to the capacity constraints for the edges, the first constraint in (Equation 32.2), and the algorithm can be modified to treat this new constraint in the same way as the capacity
constraints To minimize the total weighted netlength, we want L to be as small as possible such
thatλ, the maximum relative congestion, is at most 1 This is achieved by binary search over L.
In practice, the netlength in the final solution is only slightly higher compared to the minimum netlength if each Steiner tree is as short as possible ignoring capacities This gives a good estimate
for L.
For the dual of the linear program, an additional dual variable y L for the constraint in Equation 32.11 is needed The dual linear program is given by
max
k
i=1
z i
subject to
e ∈E
c (e)y e + Ly L= 1
e ∈T [y e + g i l (e)y L ] ≥ z i for i = 1, , k; T ∈ T i
y e ≥ 0 for e ∈ E
y L≥ 0 Figure 32.4 shows the modified approximation scheme During the algorithm, minimal Steiner
trees are computed with respect to the length y e + g i l (e)y L for net i and edge e ∈ E (line 7) The length of an edge e is the sum of the congestion cost y e and the wirelength cost g i l (e)y L of the edge
With the assumption that g i
e ∈T l (e) ≤ L for each Steiner tree T found in line 7 (which usually
holds for the global routing problem), the proof in Section 32.6.1 can be extended to show that a
(1+0)–approximation for the fractional global routing problem with the constraint in Equation 32.11
is found by the algorithm in Figure 32.4 in O
1
2∗ln m
phases If for some Steiner tree T we have
Trang 9(1) Sety e:= 1
c(e)for alle ∈ E and y L:= 1
L (2) Setx i,T:= 0 for i = 1, ,k; T ∈ T i.
(3) While
e∈E c(e)y e + Ly L < M
(4) begin
(5) For i := 1 tok
(7) Find a minimal Steiner treeT ∈ T ifor neti
with respect to lengths(y e + g i l(e)y L ), e ∈ E.
(8) Setx i,T:= x i,T+ 1
(9) Sety e:= y e e 1 c(e)for alle ∈ T.
SetY L:= y L e gie∈T l(e) L
(10) end
(11) end
FIGURE 32.4 Approximation scheme for fractional global routing optimizing the total weighted netlength.
g i
e ∈T l (e) > L, variable x i,T in line 9 is increased only by L /[g i
e ∈T l (e)], and another Steiner
tree has to be found for the same net until the total increment of
T ∈Ti x i,T is 1 (for details see Ref [6])
32.7 RANDOMIZED ROUNDING
So far we have focused on solving the linear relaxation of the global routing problem To come from
a fractional solution of the global routing problem to an integer solution it is necessary to choose one Steiner tree for each net This is done by randomized rounding, a technique developed by Raghavan and Thompson [1,2], which we present in this section
The technique of randomized rounding can be summarized as follows:
RULE 32.1 Independently for each net i choose randomly one Steiner tree out of the set T i The probability to choose Steiner tree T is x i,T
The expected value for the relative congestion of an edge or of the maximum relative congestion after randomized rounding is equal to the relative congestion of the fractional solution
Randomized rounding may increase the relative congestion of some edges However, it is possible
to prove that there is a positive probability that the relative congestion does not increase by more than
by a certain factor, and this factor decreases with increasing capacity of the edges We will present these results with the proofs
In the following, we denote the probability of an event by P[·] and the expectation of a random
variable X by E [X] The following lemma was proved in this version by Raghavan and Spencer
[23], and gives a variation of Chernoff’s bound [24] The lemma bounds the tail of the distribution
of the sum of independent random variable in [0,1] To simplify the notation, we use b () := (1 + ) ln(1 + ) − For small values of , b() is approximately 1
22
Lemma 1 Let X1, , X t be independent random variables in [0, 1] Let X := t
p=1X p ,
µ >t
p=1E [X p ] and > 0 Then
P [X ≥ (1 + )µ] ≤ 1
e b()µ Proof We first consider the case µ = t
p=1 E [X p] Using (1) the Markov inequality, (2) the
independence of the random variables X1, , X t,(3) (1 + ) x ≤ 1 + x for 0 ≤ x ≤ 1, and (4)
1+ x ≤ e x, we compute
Trang 10P [X ≥ (1 + )µ] = P[(1 + ) X ≥ (1 + ) (1+)µ]
= P(1 + ) t p =1 Xp ≥ (1 + ) (1+)µ
= P t
p=1(1 + ) Xp
(1 + ) (1+)µ ≥ 1
(1)
≤ E t
p=1(1 + ) Xp
(1 + ) (1+)µ
(2)
=
t
p=1(1 + ) E [Xp]
(1 + ) (1+)µ (3)
≤
t
p=1(1 + E[X p ])
(1 + ) (1+)µ
(4)
≤
t
p=1e E[Xp]
(1 + ) (1+)µ
= e
t
p =1 E[Xp]
(1 + ) (1+)µ = e µ
(1 + ) (1+)µ = 1
e b()µ
The lemma also holds ifµ > E[X] We add additional independent random variables in [0,1] to
X until µ = E[X] This only increases P[X ≥ (1 + )µ].
For an edge e ∈ E, we denote the relative congestion after randomized rounding with respect to
Rule 32.1 by ˆλ(e) The probability that the relative congestion of one edge increases by at least a
factor of(1 + ) can be bounded as follows:
Lemma 2 P[ˆλ(e) ≥ (1 + )λ] ≤ 1
eb()c(e)λ
Proof We apply Lemma 1: for i = 1, , k, let the random variable X i be 1 if for net i a Steiner tree is chosen that uses edge e, and zero otherwise The variables X1, , X kare independent random
variables in [0,1] and with X := k
i=1 X p , we have E [X] = c(e)λ Then, we have P[ˆλ(e) ≥
(1 + )λ] = P[X ≥ (1 + )c(e)λ] ≤ 1
eb()c(e)λ Finally, the probability of the overall failure, that is, the probability that any one edge has a relative congestion of at least(1 + )λ can now be bounded Let ˆλ := max e ∈E ˆλ(e) be the maximum relative congestion after randomized rounding and C := mine ∈E c (e).
Theorem 3
P [ˆλ ≥ (1 + )λ] ≤
e ∈E
1
e b()c(e)λ ≤ m
e b()Cλ
If is chosen so large that the expression m
eb()Cλ is smaller than 1, then the probability of success,
ˆλ < (1 + )λ, is positive Repeating the randomized rounding experiment increases the probability
that one of the experiments is successful
It is possible to derandomize this random experiment Assuming that for some nets a Steiner tree has already been chosen and that for each remaining net a Steiner tree is chosen according to Rule 32.1, the probability of failure is computed This is a pessimistic estimator It is then possible to choose one Steiner tree for the next net such that the probability of failure does not increase Because the total probability was smaller than 1 at the beginning, in the end this probability is also smaller than 1, and because the Steiner trees for all nets are chosen, the final solution has to be a success
32.8 EXTENSIONS
The approach of solving a fractional global routing problem and then applying randomized round-ing has been used successfully in practice and has been extended to consider additional tasks and objectives
Albrecht et al [25] consider the problem of finding global routes that need to buffered In addition, the sizes of the buffers and the widths of the wires are optimized Some areas on the