Title: A Truthful 2-approximation Mechanism for the Steiner Tree Problem
1A Truthful 2-approximation Mechanism for the
Steiner Tree Problem
2The 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)?e?Tc(e)
3An example
Na,b,c
5
T
c
a
2
3
1
4
1
T optimal Steiner tree
1
5
2
2
2
1
3
2
b
3
4About Steiner Tree problem
- It is NP-hard
- It is approximable within 1.55
- Robins, Zelikovsky (2000)
5Steiner 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
6More 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 - Aes valuation of T?F
- ve(?e,T) ?e if e?E(T), 0 otherwise
- SCF minimum Steiner tree of G(V,E,?) with
terminals N
7How to design a truthful mechanism for the
problem?
Notice that the (true) total weight of a
feasible T is
?e?E ve(?e,T)
the problem is utilitarian!
VCG mechanisms apply
8VCG mechanism
- M ltg(r), p(x)gt
- g(r) arg minx?F ?j vj(rj,x)
- pe(x) for each e?E
- pe ?j?e vj(rj,g(r-e)) -?j?e vj(rj,x)
What to do?
g(r) should compute an optimal solution!!!
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, COCOON05
9- Our goal to design a mechanism satisfying
- g(?) is monotone
- Solution returned by g(?) is a good solution,
i.e. an approximated solution - g(?) and p(?) computable in polynomial time
10A 2-approximation algorithm
- Build the weighted complete graph D with node set
N - For every pair of nodes in N, w(a,b) dG(a,b)
- Compute an MST M of D
- Expand any edge of M with the corresponding
shortest path. This defines a subgraph H of G - Return any feasible tree T which is a subgraph of
H
11An example
Na,b,c
5
D
a
2
3
1
3
1
10
15
2
12
2
4
8
2
b
c
13
12An example
Na,b,c
5
D
a
2
a
3
1
3
M
1
7
10
7
15
2
12
2
4
8
2
8
b
c
b
c
13
13An example
Na,b,c
5
D
a
2
a
3
1
H
3
M
1
7
10
7
15
2
12
2
4
8
2
8
b
c
b
c
13
14An example
Na,b,c
5
D
a
2
a
3
1
T
3
M
1
7
10
7
15
2
12
2
4
8
2
8
b
c
b
c
13
15Theorem Takahashi, Matsuyama,80
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.
Is the algorithm monotone?
..good question!
It depends on Steps 3 and 4
16Definition of g(?)
- We modify the 2-apx algorithm in order to
garantee - Monotonicity
- Efficiency w.r.t. the computation to the
threshold values
Idea we can guarantee an acyclic expansion of M
17High level description of g(?)
- Compute D MMST(D)
- Let r be any terminal node. T(r,?). N(T)r
- At each step g(?) reaches a new terminal node b
(until N(T)N) - Choose an edge (a,b) of M s.t. a ? N(T) and b
?N(T) - Try to expand (a,b) whithout forming cycles
- If this is not possible, look for an edge (a,b)
of D s.t. - (a,b) admits an acyclic expansion
- a ? N(T)
- w(a,b)w(a,b)
- MM\(a,b) ? (a,b)
- Expand (a,b) N(T) N(T) ? b
- Return T and M
18Expanding (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))
19Expanding (a,b)
- Let ?PG(a,b)
- Let x be the first node of T encountered along ?
(traversing ? from b to a) - 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)
- N(T)N(T) ? b TT? ?x,b
- if (a?a) then MM\(a,b) ? (a,b)
20Correctness (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
- aa
- a ? a
21Case 1 (aa)
M
T
c
b
a
c
a
b
?
x
a
d
d
a
b
b
?PG(a,b)
?PT(a,x) ? ?x,b is an alternative shortest
path from a to b
we expands (a,b) with ? (acyclic expansion)
22Case 2 (a ? a)
M
a
a
T
c
a
c
x
?
b
d
b
d
a
b
b
it must be dG(a,x)dG(a,x)
? w(a,b)w(a,b)
?PT(a,x) ? ?x,b is a shortest path from a
to b
we swap (a,b) and (a,b) in M
and we expands (a,b) with ? (acyclic
expansion)
23Lemma
The algorithm g( ) is monotone
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
24Computing the payments
we have to pay each selected edge e as its
threshold value
- How much can Ae raise her bid
- before exiting from the computed solution?
25Example 1
T
M
a
a
a
a
a
a
PG(a,b)
PG(a,b)
w(a,b)
?be
w(a,b)
?be
w(a,b)
e
b
b
b
PG(a,b)
b
b
b
Ae raises her bid of ?be
(a,b) becomes lighter than (a,b)
26Example 1
M
a
T
a
a
a
a
a
w(a,b)?be
w(a,b)
e
w(a,b)?be
b
b
b
b
b
b
g(?) selects (a,b) and e exits form the solution
27Example 2
T
M
a
a
a
a
a
a
PG(a,b)
PG(a,b)
w(a,b)
?be
w(a,b)
dG-e(a,b)
w(a,b)
e
b
b
b
PG(a,b)
b
b
b
Ae raises her bid of ?be
PG-e(a,b) becomes shorter than PG(a,b)
(a,b) is still a lightest edge crossing the cut
28Example 2
T
M
a
a
a
a
a
a
PG(a,b)
dG-e(a,b)
PG-e(a,b)
?be
w(a,b)
w(a,b)
e
b
b
b
PG(a,b)
b
b
b
g(?) still selects (a,b) but e exits from the
solution
29more formally
The image of e on M Im(e)(a,b) ? E(M) e ?
PT(a,b)
(a,b)
?e
The threshold for e w.r.t. the edge (a,b)
? Im(e) is defined as
(a,b)
?e
be min (dG-e(a,b) dG(a,b)), (swap(a,b)(e)
dG(a,b))
where
swap(a,b)(e) min dG-e(a,b)
(a,b) ? CM(a,b)
30Threshold of e
If Im(e)(a1,b1), , (ah,bh)
(ai,bi)
?e max
?e
i1,..,h
Easy to see ?e can be computed in polynomial time
31Theorem
The running time of the mechanism is O((nk2)m
log ?(m,n). The space used is O(n2).