Presentation is loading. Please wait.

Presentation is loading. Please wait.

The selfish-edges Minimum Spanning Tree (MST) problem.

Similar presentations


Presentation on theme: "The selfish-edges Minimum Spanning Tree (MST) problem."— Presentation transcript:

1 The selfish-edges Minimum Spanning Tree (MST) problem

2 A very well-known problem… INPUT: an undirected, weighted graph G=(V,E,w), w(e)  R + for any e  E Recall: T is a spanning tree of G if: 1. T is a tree 2. T is a subgraph of G 3. T contains all the nodes of G OUTPUT: T=(V,E T ) minimum spanning tree of G, namely having minimum total weight w(T)=  w(e) Fastest centralized algorithm costs O(m  (m,n)) time eETeET

3 The Ackermann function A(i,j) and its inverse  (m,n) For integers i,j  1, let us define A(i,j) as:

4 A(i,j) for small values of i and j 2 2323 2424 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 16 2 2 2 2 2 2 2 2 2 2 2 2 2.............. j=1 j=2 j=3 j=4 i=1 i=2 i=3

5 The  (m,n) function For integers m  n  0, let us define  (m,n) as:

6 Properties of  (m,n) 1. For fixed n,  (m,n) is monotonically decreasing for increasing m  (m,n)= min {i>0 : A(i,  m/n  ) > log 2 n} growing in m 2.  (n,n)   for n    (n,n)= min {i>0 : A(i,  n/n  ) > log 2 n} = min {i>0 : A(i, 1) > log 2 n}   

7  (m,n)  4 for any practical purposes (i.e., for reasonable values of n) A(4,  m/n  )  A(4,1) = A(3,2) =2 2 2 16... >> 10 80  estimated number of atoms in the universe!  (m,n)= min {i>0 : A(i,  m/n  ) > log 2 n} Remark  hence,  (m,n)  4 for any n<2 10 80

8 The selfish-edges MST problem Input: a 2-edge-connected, undirected graph G=(V,E) such that each edge is owned by a distinct selfish agent; we assume that agent’s private type is the positive cost of the edge, and his valuation function is equal to his type if edge is selected in the solution, and 0 otherwise. SCF: a (true) MST of G.

9 VCG mechanism The problem is utilitarian (indeed, the cost of a solution is given by the sum of the valuations of the selected edges)  VCG-mechanism M= : g(r): computes a MST T=(V,E T ) of G=(V,E,r) p e : For any edge e  E, p e =  j≠e v j (r j,x(r - e )) -  j≠e v j (r j,x), namely p e =w(T G-e )-w(T)+ r e if e  E T, (notice that p e  r e ) p e =0otherwise.  For any e  T we have to compute T G-e, namely the replacement MST for e (MST in G-e =(V,E\{e},r -e )) Remark: G is 2-edge-connected since otherwise w(T G-e ) might be unbounded  agent owning e might report an unbounded cost!)

10 A trivial solution  e  T we compute an MST of G-e Time complexity: we pay O(m  (m,n)) for each of the n-1 edges of the MST  O(nm  (m,n)) We will show an efficient solution costing O(m  (m,n)) time!!!

11 A related problem: MST sensitivity analysis Input G=(V,E,w) weighted and undirected T=(V,E T ) MST of G Question For any e  E T, how much w(e) can be increased until the minimality of T is affected? For any f  T, how much w(f) can be decreased until the minimality of T is affected? (we will not be concerned with it)

12 An example 8 6 2 7 1 9 3 10 4 8 13 11

13 Notation G=(V,E), T any spanning tree of G. We define: For any f=(x,y)  E\E(T) T(f): (unique) simple path in T joining x and y For any e  E(T) C(e)={f  E\E(T): e  T(f)}

14 Proof (by contr.): Let e be in the cycle C={e}  P, and assume that e  T  MST(G). Then e e’  T T’=T \ {e}  {e’} w(e’) < w(e)  w(T’) < w(T) T is not an MST of G X V\X P The cycle property Theorem: Let G=(V,E) be an undirected weighted graph, and let e be the strongly heaviest edge of any cycle in G. Then, e  MST(G) (the set of all MSTs of G).

15 Minimality condition for a MST Corollary G=(V,E) undirected weighted graph T spanning tree of G. THEN T is a MST iff for any edge f not in T it holds: w(f)  w(e) for any e in T(f).

16 …therefore… If e is an edge of the MST, then this remains minimal until w(e) ≤ w(f), where f is the cheapest edge forming a cycle with e in the MST (f is called a swap edge for e); let us call this value up(e) More formally, for any e  E(T) up(e)= min f  C(e) w(f) swap(e)= arg min f  C(e) w(f)

17 MST sensitivity analysis up(e)=8 6 2 7 1 9 3 10 4 8 13 11 e C(e)

18 Remark Computing all the values up(e) is equivalent to compute a MST of G-e for any edge e in T; indeed w(T G-e )=w(T)-w(e)+up(e)  In the VCG-mechanism, the payment p e of an edge e in the solution is exactly up(e)!!

19 Idea of the efficient algorithm For any e  E(T), check efficiently all the edges which form a cycle in T with e, and take the minimum (up(e))

20 The Transmuter Given a graph G=(V,E,w) and a spanning tree T, a transmuter D(G,T) is a directed acyclic graph (DAG) representing in a compact way the set of all fundamental cycles of T w.r.t. G, namely {T(f) : f is not in T} D will contain: 1. A source node (in-degree=0) s(e) for any edge e in T 2. A sink node (out-degree=0) t(f) for any edge f not in T 3. A certain number of auxiliary nodes of in-degree=2 and out-degree not equal to zero. Fundamental property: there is a path in D from s(e) to t(f) iff e  T(f)

21 An example

22 How to build a tranmuter Tarjan showed that for a graph of n nodes and m edges, a transmuter contains O(m  (m,n)) nodes and edges, and can be computed in O(m  (m,n)) time: R. E. Tarjan, Application of path compression on balanced trees, J. ACM 26 (1979) pp 690-715

23 Topological sorting Let D=(N,A) be a directed graph. Then, a topological sorting of D is an order v 1, v 2, …,v n for the nodes s.t. for any (v i, v j )  A, we have i<j. D has a topological sorting iff is a DAG A topological sorting, if any, can be computed in O(n+m) time.

24 Computing up(e) We start by topologically sorting the transmuter (which is a DAG) We label each node in the transmuter with a weight, obtained by processing the trasmuter in reverse topological order: We label a sink node t(f) with w(f) We label a non-sink node v with the minimum weight out of all its adjacent successors When all the nodes have been labeled, a source node s(e) is labelled with up(e) (and the corresponding swap edge)

25 2 5 3 6 4 9 7 8 9 6 11 10 77 66 9 76 7 89 6 11 An example

26 Time complexity 1. Transmuter build-up: O(m  (m,n)) time 2. Computing up(e) values: Topological sorting: O(m  (m,n)) time Processing the transmuter: O(m  (m,n)) time

27 Time complexity of the VCG-mechanism Theorem There exists a VCG-mechanism for the selfish- edges MST problem running in O(m  (m,n)) time. Proof. Time complexity of g( ٠ ): O(m  (m,n)) Time complexity of p( ٠ ): we compute all the values up(e) in O(m  (m,n)) time.


Download ppt "The selfish-edges Minimum Spanning Tree (MST) problem."

Similar presentations


Ads by Google