4.5 Cost-Delay Minimum Steiner Path Problems
4.5.2 A Fully Polynomial Time Approximation Scheme
As we do not have a chance to solve the Cost-Delay Minimum Steiner Path Problem with Loops optimally (unless P = NP) we have to aim for approximation algorithms. In this section we give an approximation algorithm to compute a Steiner path with total cost at most 1 + times the cost of an optimum solution. The running time will be polynomial in the size of the instance and 1
. Such an algorithm is called fully polynomial
time approximation scheme (FPTAS) in literature.
The algorithm itself is similar to the algorithms of Moore [Moo59], Bellman [Bel58], and Ford [For56] for the minimum cost t-s path problem in the graph arising from G by reversing all edges. The major difference is that we round costs to powers of 1 + and store labels with minimum capacitance for each cost-class at each node.
For the proof we need the following well-known lemma: Lemma 4.7 For all x > 1 it holds that e1−1x ≤ x ≤ ex−1.
Proof The second inequality is a simple consequence of the Mean-Value Theorem which yields y ∈ [1, x] such that ex−1−e1−1
x−1 = ey−1≥ 1.
To prove the first inequality we note that the function f(x) = 1 −1
x − ln(x)has its only
maximum at x = 1. The upper bound f(x) ≤ f(1) = 0 implies ln(x) ≥ 1 − 1
x ⇒ x ≥ e 1−1x.
Theorem 4.8 Let (G, N = {s, t}, c, F, ∆) be an instance of the Cost-Delay Minimum Steiner Path Problem with Loops and k ∈ N. We require that an s-t Steiner path in G with at most k edges exists. Denote by n := |V (G)| the number of vertices and by m := |E(G)| the number of edges in G. Let
• cost↓ > 0 be a lower bound on the cost of all Steiner paths with positive cost that end
in t,
• cost↑ > 0 be an upper bound on the cost of all Steiner paths with at most k edges that
For each > 0 there is an algorithm that finds an s-t Steiner path (P, κ) with |E(P )| ≤ k and cost at most (1 + ) times the cost of an optimum s-t Steiner path with at most k edges.
Let θ be the maximum running time for an evaluation of one of the functions F , ∆, and the restriction ofllog1+/2k(.)m to the interval [cost↓,cost↑]. The running time of the algorithm is O k2· m ·log(cost ↑/cost↓) · θ . Proof We define δ :=
2k. Note that by this choice of δ and Lemma 4.7,
(1 + δ)k≤ eδk= e/2= ∞ X i=0 (/2)i i! = 1 + · ∞ X i=1 i−1 2ii! ≤ 1 + · ∞ X i=1 1 2i = 1 + .
We proceed analogously to the algorithms of Moore [Moo59], Bellman [Bel58], and Ford [For56] and propagate labels (v, i) ∈ (V (G), Z ∪ {−∞}) associated with a capacitance cap(v, i) ∈ R≥0. A label (v, i) with cap(v, i) < ∞ corresponds to a v-t Steiner path (P, κ)
in G with
• total cost at most (1 + δ)i (where (1 + δ)−∞:= 0) and
• capacitance of v in (P, κ) at most cap(v, i).
Initially, we only have a label (t, −∞) with cap(t, −∞) = 0 corresponding to the trivial t-t Steiner path. We iterate along all edges in G for k times. When we propagate along edge e = (v, w) we do the following: For all labels (w, i) at w we create a label (v, i0)
associated with value cap(v, i0) = ∆(e,cap(w, i)).
If label (w, i) corresponds to the w-t Steiner path (P, κ), (v, i0) corresponds to the
following v-t Steiner path (P0, κ0). P0 arises from P by adding a new node ν and an edge
ζ between ν and the starting point of P . We set κ0(ν) = v, κ0(ζ) = e, and κ0(ω) = κ(ω) for ω ∈ V (P ) ∪ E(P ).
The index i0
∈ Z is chosen minimum such that (1 + δ)i plus the cost increase induced
by the new edge ζ is upper bounded by (1 + δ)i0
. We keep the new label unless we have an existing label of the form (v, i0)with smaller capacitance.
A formal description of the algorithm can be found in Algorithm 6. We use the notation (P (v, i), κ(v, i))to denote the Steiner path associated with a label (v, i).
We use the notation start(P ) to denote the starting point of a path P .
Approximation guarantee: Denote the total cost of a Steiner path (P, κ) by cost(P, κ) and the capacitance of a node ν ∈ V (P ) in (P, κ) by cap(P,κ)(ν). The properties
cost(P (v, i), κ(v, i)) ≤ (1 + δ)i and cap
P (v,i),κ(v,i)(start(P (v, i))) ≤ cap(v, i)
for all labels (v, i) are fulfilled by construction.
Let (P, κ) be any s-t Steiner path with vertices V (P ) = {s = νη, νη−1, . . . , ν1, ν0= t}
and edges E(P ) = {ζη, ζη−1, . . . , ζ1}(in that order) such that η ≤ k. We may assume
that κ(ζ) 6= ◦ for all ζ ∈ E(P ). For j ∈ {0, . . . , η} we define (Pj, κj) to be the νj-t
sub-Steiner path of (P, κ), i. e. Pj consists of vertices νj, . . . , ν0 and edges ζj, . . . , ζ1.
Instance: An instance (G, N = {s, t}, c, F, ∆) of the Cost-Delay Minimum Steiner Path Problem with Loops, a natural number k.
Output: An s-t Steiner path (P, κ) in G with |E(P )| ≤ k or fail if such a Steiner path does not exist.
1
○ set Q(v) := {(v, i) : i ∈ Z ∪ {−∞}}, cap(v, i) = ∞ for all v ∈ V (G), i ∈ Z ∪ {−∞}.
2 ○ set cap(t, −∞) = 0, P (t, −∞) = ({t}, ∅), κ(t, −∞) = (t 7→ t) 3 ○ for i = 1 to k do 4 ○ for e = (v, w) ∈ E(G) do 5
○ forlabels (w, i) ∈ Q(w) with cap(w, i) < ∞ do
6
○ propagate((w, i), e)
7
○ if cap(s, i) = ∞ for all (s, i) ∈ Q(s) do
8
○ returnfail
9
○ else
10
○ select (s, i) ∈ Q(s)with cap(s, i) 6= ∞ and i minimum among these labels
11
○ return (P (s, i), κ(s, i))
function propagate(label (w, i), edge e = (v, w)):
1
○ set x := (1 + δ)i+ c(e) + F (e,cap(w, i))
2
○ set i0 :=log1+δ(x)if x > 0 and i0 := −∞if x = 0.
3
○ set P := P (w, i), κ := κ(w, i)
4
○ augment P by a new vertex ν and an edge ζ = {(ν, start(P ))}
5
○ set κ(ν) = v, κ(ζ) = e
6
○ if cap(v, i0) > ∆(e,cap(w, i)) do
7
○ setcap(v, i0) = ∆(e,cap(w, i))
8
○ set P (v, i0) = P, κ(v, i0) = κ
Algorithm 6: FPTAS for the Cost-Delay Minimum Steiner Path Problem with Loops. We use the notation start(P ) to denote the starting point of a path P .
Claim: Let j ∈ {0, . . . , η}. After the j-th iteration of the loop in line ○3 , Q(κ(νj))
contains a label (κ(νj), i)such that
(1 + δ)i ≤cost(Pj, κj) · (1 + δ)j and cap(κ(νj), i) ≤cap(P,κ)(νj).
Proof (of the claim) For j = 0 this is trivial. Let j > 0 and assume that after iteration j − 1 of the loop in line ○3 , Q(κ(νj−1)) contains a label (κ(νj−1), i) as
desired. When we call propagate for label (κ(νj−1), i)and edge κ(ζj) in○6 , we set
x := (1 + δ)i+ c(κ(ζj)) + F (κ(ζj),cap(κ(νj−1), i)) and i0 :=log1+δ(x) .
Since
(1 + δ)i0 = (1 + δ)dlog1+δ((1+δ)i+c(κ(ζj))+F (κ(ζj),cap(κ(νj−1),i)))e
≤ (1 + δ)dlog1+δ(cost(Pj−1,κj−1)·(1+δ)j−1+c(κ(ζj))+F(κ(ζj),cap(P,κ)(νj−1)))e
≤cost (Pj) · (1 + δ)j and
label (νj, i0) fulfills the conditions of the claim after iteration j of the loop in line○3 .
(claim) For the optimum s-t Steiner path (P∗, κ∗) with |E(P∗)| ≤ k, the claim for j = η
yields a label (s, i) such that
(1 + δ)i≤ (1 + δ)k·cost(P∗, κ∗) ≤ (1 + ) ·cost(P∗, κ∗).
Running time: We start by bounding the number of possible values for i such that a label (v, i) can have finite capacitance.
By definition of cost↓ and cost↑, the number I of different possible exponents of
(1 + δ)is at most k + l log1+δ(cost↑) m −llog1+δ(cost↓) m + 2 = O k + log(cost ↑/cost↓) log(1 + δ) = O k + log(cost ↑/cost↓) δ .
The last equality uses Lemma 4.7. With x := 1 + δ, the inequality e1−x1 ≤ x of
Lemma 4.7 implies 1 +1 δ =
1 1− 1
δ+1
≥ ln(1+δ)1 and hence, log(1+δ)1 = O 1δ.
To perform propagate in time O(θ) we store all labels (v, i) with v ∈ V (G) and i ∈ log1+δ(cost↓) − 1, . . . , log1+δ(cost↑) + k ∪ −∞ with corresponding
capacitances in |V (G)| arrays of size I (we do not store the other labels). Instead of storing Steiner paths directly we store the input to propagate of the call in which a label has been updated as predecessor information.
We obtain a total running time of O (kmIθ) = O k2mθ + kmθ · log(cost ↑/cost↓) δ = O k2mθ ·log(cost ↑/cost↓) . Corollary 4.9 Denote cost↓,cost↑, θ, m, n as in Theorem 4.8 and assume that log
cost↑
cost↓
is polynomally bounded in the input size. There is an FPTAS for the Minimum Cost Buffered Steiner Path Problem with running time
O m3· n2·log(cost ↑/cost↓) · θ . The condition that log cost↑/cost↓
is polynomially bounded is naturally fulfilled if the functions ∆(e, .) are either constant or of the form x 7→ x + µ(e), and if the result F (e, x) is of polynomial size (i. e. can be expressed by a polynomial number of bits) for all input values x of polynomial size. This is the case when we model the problem of computing a cheapest path minimizing linear costs and costs for Elmore delay.
Computing log1+δ(x)
for values x of polynomial size can be done by first computing an approximation y of log1+δ(x) with a bounded absolute error β > 0 and returning