• No results found

A Fully Polynomial Time Approximation Scheme

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