A Truthful 2-approximation Mechanism for the Steiner
Tree Problem
The Steiner Tree problem
INPUT: Undirected, weighted graph G=(V,E,c) N V: set of terminal nodes
OUTPUT: a tree T spanning N of minimum total
cost, i.e., which minimizes c(T)=eTc(e)
An example
5
2
4
1
1
2
3
3
5
1
3 1
2
22
a
b
c
N={a,b,c}
T: optimal Steiner tree
T
About Steiner Tree problem
It is NP-hard It is approximable within 1.55
Robins, Zelikovsky (2000)
Steiner Tree game Each edge e is controlled by a selfish agent Ae
Only Ae knows te (weight of the edge e) We want to compute a “good” solution w.r.t.
the true costs We do it by designing a mechanism Our mechanism:
Asks each agent to report her cost Computes a solution using an output algorithm g(٠) Hands payments pe to each agent Ae using some
payment function p
More formally Feasible solutions:
F: set of all trees in G spanning N Type of agent Ae:
e: weight of edge e Intuition: e is the cost Ae incurs whenever
she uses e Ae’s valuation of TF:
ve(e,T)= e if eE(T), 0 otherwise SCF: minimum Steiner tree of G=(V,E,)
with terminals N
How to design a truthful mechanism for the
problem?Notice that:
the (true) total weight of a feasible T is:
eE ve(e,T)
the problem is utilitarian!
…VCG mechanisms apply
VCG mechanism M= <g(r), p(x)>:
g(r): arg minxF j vj(rj,x)
pe(x): for each eE:
pe =j≠e vj(rj,g(r-e)) -j≠e vj(rj,x)
g(r) should compute an optimal solution!!!
What to do?
…we look for (approximated) one-parameter mechanisms!
L. Gualà, G. Proietti, A Truthful (2-2/k)-Approximation Mechanism for the Steiner Tree Problem with k Terminals, COCOON’05
Our goal: to design a mechanism satisfying:
1. g(٠) is monotone2. Solution returned by g(٠) is a “good”
solution, i.e. an approximated solution
3. g(٠) and p(٠) computable in polynomial time
A 2-approximation algorithm
1. Build the weighted complete graph D with node set N
1. For every pair of nodes in N, w(a,b):= dG(a,b)
2. Compute an MST M of D3. Expand any edge of M with the
corresponding shortest path. This defines a subgraph H of G
4. Return any feasible tree T which is a subgraph of H
An example
15
2
3
4
1
2
8
13
5
10
3 1
2
212
a
b c
N={a,b,c}
a
b c
7 7
8
D
An example
15
2
3
4
1
2
8
13
5
10
3 1
2
212
a
b c
N={a,b,c}
a
b c
7 7
8
D
M
An example
15
2
3
4
1
2
8
13
5
10
3 1
2
212
a
b c
N={a,b,c}
a
b c
7 7
8
D
MH
An example
15
2
3
4
1
2
8
13
5
10
3 1
2
212
a
b c
N={a,b,c}
a
b c
7 7
8
D
MT
The algorithm is a 2-approximation algorithm for the Steiner tree problem, i.e. it returns a solution with cost at most twice the cost of the optimal solution.
Theorem [Takahashi, Matsuyama,’80]
Is the algorithm monotone?
..good question!
It depends on Steps 3 and 4
Definition of g(٠)
We modify the 2-apx algorithm in order to garantee
1. Monotonicity2. Efficiency w.r.t. the computation to
the threshold values
Idea: we can guarantee an acyclic
expansion of M
High level description of g(٠)
1. Compute D; M=MST(D)2. Let r be any terminal node. T=({r},). N(T)={r}3. At each step g(٠) reaches a new terminal node b
(until N(T)=N)1. Choose an edge (a,b) of M s.t. a N(T) and b
N(T) 2. Try to expand (a,b) whithout forming cycles3. If this is not possible, look for an edge (a’,b) of
D s.t.1. (a’,b) admits an acyclic expansion2. a’ N(T)3. w(a’,b)=w(a,b)
4. M=M\{(a,b)} {(a’,b)}5. Expand (a’,b); N(T) = N(T) {b}
4. Return T and M
Expanding (a,b) An edge (a,b) admits an acyclic expansion w.r.t. a
current tree T if there is a shortest path =PG(a,b) s.t.
[a,x] is already in the current tree [x,b] passes through no node of T (except x)
Notation Let e’=(a’,b’) E(M) Removing e’ splits M into two subtrees N(a’): the node set of the subtree containig a’ N(b’): remaining nodes CM(a’,b’): non-tree edges crossing the cut
(N(a’),N(b’))
Expanding (a,b)
1. Let =PG(a,b);2. Let x be the first node of T encountered
along (traversing from b to a)3. Let (a’,b’) be any edge of the current M s.t.:
a’,b’ N(T) ’=PT(a’,b’) passes through x a N(a’)
4. N(T)=N(T) {b}; T=T [x,b];5. if (aa’) then M=M\{(a,b)} {(a’,b)}
Correctness (sketch)
T is acyclic At any time M is an MST of D we have to show that the
expanding step is correct There are 2 cases:
a=a’ a a’
Case 1 (a’=a)
a
b
c
da
c
d
b
a’
b’a’b’
x
MT
=PG(a,b)
’=PT(a,x) [x,b] is an alternative shortest path from a to b
we expands (a,b) with ’ (acyclic expansion)
Case 2 (a’ a)
a
b
c
da
c
d
b
x
a’
b’
a’
b’
it must bedG(a,x)=dG(a’,x)
’=PT(a’,x) [x,b] is ashortest path from a’ to b
…and we expands (a’,b) with ’ (acyclic expansion)
we swap (a,b) and (a’,b) in M…
w(a,b)=w(a’,b)
TM
The algorithm g( ) is monotone
Lemma
proof
It suffices to prove that any non-selected edge e it still non-selected when Ae raises her bid
Notice: e does not belong to any shortest path selected in M
Thus, if Ae raises her bid, the only edges in D which increase their weight are edges in E(D)\E(M)
…M remains an MST of D…
…the solution computed by g() is the same and e is not selected
How much can Ae raise her bid
before exiting from the computed solution?
Computing the payments
…we have to pay each selected edge e as its threshold value
a
bb’’b’
a’ a’’
e
a’ a’’a
b’b
b’’
M T
PG(a’,b’)
PG(a’’,b’’)PG(a,b)w(a,b)w(a’,b’) w(a’’,b’’)
Ae raises her bid of be
+be +be
(a’,b’) becomes lighter than (a,b)
Example 1
e
a’
a’’a a’
a’’a
b’b b’’
b’b b’’
MT
w(a’,b’)w(a,b)+be
w(a’’,b’’)+be
g(٠) selects (a’,b’)and e exits form the solution
Example 1
a
bb’’b’
a’ a’’
e
a’ a’’a
b’b
b’’
M T
PG(a’,b’)
PG(a’’,b’’)PG(a,b)w(a,b)w(a’,b’) w(a’’,b’’)
Ae raises her bid of be
PG-e(a,b) becomes shorter than PG(a,b)
Example 2
(a,b) is still a lightest edge crossing the cut
dG-e(a,b) +be
a
bb’’b’
a’ a’’
e
a’ a’’a
b’b
b’’
M T
PG(a’,b’)
PG(a’’,b’’)PG-e(a,b)dG-e(a,b)w(a’,b’) w(a’’,b’’)+be
g(٠) still selects (a,b) bute exits from the solution
Example 2
…more formally…
The threshold for e w.r.t. the edge (a,b) Im(e) is defined as
=be + min {(dG-e(a,b) – dG(a,b)), (swap(a,b)(e) – dG(a,b))}
swap(a,b)(e)= min {dG-e(a’,b’)}(a’,b’) CM(a,b)
e(a,b)
e(a,b)
where
The image of e on M Im(e)={(a,b) E(M) | e PT(a,b)}
Threshold of e
e = max { }i=1,..,h
If Im(e)={(a1,b1), … , (ah,bh)}
e(ai,bi)
Easy to see:e can be computed in polynomial time
The running time of the mechanism is O((n+k2)m log (m,n). The space used is O(n2).
Theorem
Top Related