310 likes | 453 Views
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)= eT c(e). An example. N={a,b,c}. 5.
E N D
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 N={a,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
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 peto 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 minxFj vj(rj,x) • pe(x): for each eE: 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, COCOON’05
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
A 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
a 7 7 8 b c An example N={a,b,c} 5 D a 2 3 1 3 1 10 15 2 12 2 4 8 2 b c 13
An example N={a,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
An example N={a,b,c} 5 D a 2 a 3 H 1 3 M 1 7 10 7 15 2 12 2 4 8 2 8 b c b c 13
An example N={a,b,c} 5 D a 2 a 3 T 1 3 M 1 7 10 7 15 2 12 2 4 8 2 8 b c b c 13
Theorem [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
Definition 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
High level description of g(٠) • Compute D; M=MST(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) • M=M\{(a,b)} {(a’,b)} • Expand (a’,b); N(T) = N(T) {b} • 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) • 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}; T=T [x,b]; • 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) M T c b’ a c b’ a’ x a’ d a d 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)
Case 2 (a’ a) M a’ a’ T c a c x b’ d b’ a d 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)
Lemma 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
Computing 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?
Example 1 T M a’ a’’ a’ a’’ a a PG(a’’,b’’) PG(a,b) w(a,b) +be +be w(a’’,b’’) 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)
Example 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
Example 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
Example 2 T M a’ a’’ a’ a’’ a a PG(a’’,b’’) dG-e(a,b) +be PG-e(a,b) 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
…more 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)
Threshold of e If Im(e)={(a1,b1), … , (ah,bh)} (ai,bi) e e= max { } i=1,..,h Easy to see: e can be computed in polynomial time
Theorem The running time of the mechanism is O((n+k2)m log (m,n). The space used is O(n2).