Download presentation
Presentation is loading. Please wait.
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 T c(e)
3
An example 5 2 4 1 1 2 3 3 5 1 3 1 2 2 2 a b c N={a,b,c} T: optimal Steiner tree T
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 A e Only A e knows t e (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 p e to each agent A e using some payment function p
6
More formally Feasible solutions: F: set of all trees in G spanning N Type of agent A e : e : weight of edge e Intuition: e is the cost A e incurs whenever she uses e A e ’s valuation of T F: v e ( 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 v e ( e,T) the problem is utilitarian! …VCG mechanisms apply
8
VCG mechanism M= : g(r): arg min x F j v j (r j,x) p e (x): for each e E: p e = j≠e v j (r j,g(r - e )) - j≠e v j (r j,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
9
Our goal: to design a mechanism satisfying: 1. g( ٠ ) is monotone 2. Solution returned by g( ٠ ) is a “good” solution, i.e. an approximated solution 3. g( ٠ ) and p( ٠ ) computable in polynomial time
10
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):= d G (a,b) 2. Compute an MST M of D 3. 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
11
An example 15 2 3 4 1 2 8 13 5 10 3 1 2 2 12 a bc N={a,b,c} a bc 7 7 8 D
12
An example 15 2 3 4 1 2 8 13 5 10 3 1 2 2 12 a bc N={a,b,c} a bc 7 7 8 D M
13
An example 15 2 3 4 1 2 8 13 5 10 3 1 2 2 12 a bc N={a,b,c} a bc 7 7 8 D M H
14
An example 15 2 3 4 1 2 8 13 5 10 3 1 2 2 12 a bc N={a,b,c} a bc 7 7 8 D M T
15
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
16
Definition of g( ٠ ) We modify the 2-apx algorithm in order to garantee 1. Monotonicity 2. 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( ٠ ) 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 cycles 3.If this is not possible, look for an edge (a’,b) of D s.t. 1.(a’,b) admits an acyclic expansion 2.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
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 =P G (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 C M (a’,b’): non-tree edges crossing the cut (N(a’),N(b’))
19
Expanding (a,b) 1. Let =P G (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) ’=P T (a’,b’) passes through x a N(a’) 4. N(T)=N(T) {b}; T=T [x,b]; 5. 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) a b c da c d b a’ b’ a’b’ x M T =P G (a,b) ’=P T (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) a b c da c d b x a’ b’ a’ b’ it must be d G (a,x)=d G (a’,x) ’=P T (a’,x) [x,b] is a shortest 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) T M
23
The algorithm g( ) is monotone Lemma proof It suffices to prove that any non-selected edge e it still non-selected when A e raises her bid Notice: e does not belong to any shortest path selected in M Thus, if A e 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
How much can A e raise her bid before exiting from the computed solution? Computing the payments …we have to pay each selected edge e as its threshold value
25
a b b’’b’ a’a’’ e a’ a’’ a b’ b b’’ M T P G (a’,b’) P G (a’’,b’’) P G (a,b) w(a,b) w(a’,b’) w(a’’,b’’) A e raises her bid of b e +be+be +be+be (a’,b’) becomes lighter than (a,b) Example 1
26
e a’ a’’ a a’ a’’ a b’ b b’’ b’ b b’’ M T w(a’,b’) w(a,b)+ b e w(a’’,b’’)+ b e g( ٠ ) selects (a’,b’) and e exits form the solution Example 1
27
a b b’’b’ a’a’’ e a’ a’’ a b’ b b’’ M T P G (a’,b’) P G (a’’,b’’) P G (a,b) w(a,b) w(a’,b’) w(a’’,b’’) A e raises her bid of b e P G-e (a,b) becomes shorter than P G (a,b) Example 2 (a,b) is still a lightest edge crossing the cut d G-e (a,b) +be+be
28
a b b’’b’ a’a’’ e a’ a’’ a b’ b b’’ M T P G (a’,b’) P G (a’’,b’’) P G-e (a,b) d G-e (a,b) w(a’,b’) w(a’’,b’’) +be+be g( ٠ ) still selects (a,b) but e exits from the solution Example 2
29
…more formally… The threshold for e w.r.t. the edge (a,b) Im(e) is defined as =b e + min {(d G-e (a,b) – d G (a,b)), (swap (a,b) (e) – d G (a,b))} swap (a,b) (e)= min {d G-e (a’,b’)} (a’,b’) C M (a,b) ee (a,b) ee where The image of e on M Im(e)={(a,b) E(M) | e P T (a,b)}
30
Threshold of e e = max { } i=1,..,h If Im(e)={(a 1,b 1 ), …, (a h,b h )} ee (a i,b i ) Easy to see: e can be computed in polynomial time
31
The running time of the mechanism is O((n+k 2 )m log (m,n). The space used is O(n 2 ). Theorem
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.