1 / 31

A Truthful 2-approximation Mechanism for the Steiner Tree Problem

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)=  eT c(e). An example. N={a,b,c}. 5.

kevork
Download Presentation

A Truthful 2-approximation Mechanism for the Steiner Tree Problem

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. A Truthful 2-approximation Mechanism for the Steiner Tree Problem

  2. 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)=eTc(e)

  3. 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

  4. About Steiner Tree problem • It is NP-hard • It is approximable within 1.55 • Robins, Zelikovsky (2000)

  5. 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

  6. 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 TF: • ve(e,T)= e if eE(T), 0 otherwise • SCF: minimum Steiner tree of G=(V,E,) with terminals N

  7. How 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

  8. VCG mechanism • M= <g(r), p(x)>: • 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, COCOON’05

  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

  10. 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

  11. 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

  12. 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

  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

  14. 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

  15. 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

  16. 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

  17. 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

  18. 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’))

  19. 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 (aa’) then M=M\{(a,b)}  {(a’,b)}

  20. 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’

  21. 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)

  22. 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)

  23. 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

  24. 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?

  25. 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)

  26. 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

  27. 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

  28. 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

  29. …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)

  30. 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

  31. Theorem The running time of the mechanism is O((n+k2)m log (m,n). The space used is O(n2).

More Related