Download presentation
Presentation is loading. Please wait.
1
Vickery Prices and Shortest Paths: What is an edge worth? Authors: John Hershberger and Subhash Suri Presenter: Ali Ebnenasir
2
References [1] John Hershberger and Subhash Suri. Vickrey Prices and Shortest Paths: What is an edge worth?, FOCS 2001. [2] John Hershberger, Matthew Maxel and Subhash Suri. Finding the K Shortest Simple Paths: A New Algorithm and its Implementation. ALENEX 2003, Jan 11-14, Baltimore.
3
Motivation Shortest path mechanism –Given a graph G = and two vertices x and y, –Each selfish agent owns an edge e = (u,v) E with cost w(e) –Each agent gets paid for transmitting a message from u to v Payment of e: (denoted p e ) 1.d(x,y,G\e) – d(x,y, G|e=0) if e is on the shortest path 2.0 otherwise –Where d(x,y,G\e) denotes the cost of shortest path without e, and –Where d(x,y, G|e=0) denotes the cost of shortest path when w(e) =0. How can we calculate d(x,y, G|e=0)? How can we calculate d(x,y,G\e)? Design an efficient way to calculate d(x,y,G\e)
4
Problem Statement Given a graph G = and two vertices x and y For all edge e E, determine the effect of deleting e on the cost of the shortest path between x and y
5
Outline Preliminary concepts Payment calculation in –Path graph –Undirected graph –Directed graph Related work Conclusion and future work
6
Preliminary Concepts Graph G =, |V| = n, |E| = m, and c(u,v) denotes the cost of edge e = (u,v) Shortest path between a and b in G with minimum cost (denoted path(a, b)) d(a,b): the distance of the shortest path between a and b in G path(a,b, G\e): path between a and b when edge e is removed; –likewise d(a,b, G\e) Distinguished vertices x and y (source and target) –path(x, y) = (v 1, …, v k ) where v 1 =x and v k =y –d(a,b, G\e i ) = x-y distance omitting e i
7
Preliminary Concepts - continued Cut (V x, V y ): set of edges between two partitions V x and V y such that x V x and y V x and V y = V - V x E cut = E(V x, V y ): set of edges of a cut (V x, V y ) For each edge (u,v) E cut, u V x and v V y Any path from x to y must include at least one edge from E cut
8
Reformulating the Problem For each edge e i = (v i, v i+1 ) and some cut (V x, V y ) d(x,y,G\e i ) = min ( d(x,u,G\e i ) + c(u,v) + d(v,y,G\e i ) ) (u,v) E cut and (u,v) e i
9
Payment Calculation in Path Graphs
10
Path Graphs path(x,y) = (v 1, …, v n ) includes all vertices Cut E i = E(V x,V y ) induced by removing e i –V x = (v 1, …, v i ) –V y = (v i+1, …, v n ) vivi v i+1 VxVx VyVy v 1 = xv n = y
11
Path Graphs - Observations Consider a cut edge (u,v) –Observation 1: d(x,u) = d(x, u, G\e) –Observation 2: d(v,y) = d(v, y, G\e) vivi v i+1 VxVx VyVy u v v 1 = x v n = y
12
Path Graphs - Payment Calculation For i := 1, …, n-1 1.Create a cut (V x, V y ) for edge e i = (v i, v i+1 ) 2.d(x,y,G\e i ) = min ( d(x,u) + c(u,v) + d(v,y) ) (u,v) E i and (u,v) e i vivi v i+1 VxVx VyVy u v v 1 = x v n = y How do we calculate E i ?
13
Calculating the Cuts de VxVx VyVy f E (d,e) = {(a,g), (b,f), (c,f), (c,e), (d,g)} cba ghk How can we create E (e,f) from E (d,e) ?
14
Calculating Successive Cuts de VxVx VyVy f cba ghk E (e,f) = {(a,g), (b,f), (c,f), (c,e), (d,g)} - {(c,e)} {(e,h), (e,k)} To produce E i+1 from E i vivi v i+1 v i+2 1.Remove edges whose right endpoint is v i+1 2. Add edges whose left endpoint is v i+1
15
Path Algorithm Q is a priority queue of (weight, edge) For each e (E \ path(x,y)) –Identify the endpoints left(e) and right(e) of each edge For i :=1 to n-1 –For each e=(u,v) with left(e) = i Insert ((d(x,u)+c(u,v)+d(v,y)), e) into Q –Remove (w,e) from Q where right(e) = i –Find the minimum weight in Q as the x-y distance omitting e i O(m + n log n )
16
Undirected Graphs
17
Not all vertices lie on path(x,y) Can we still use the same approach as in path graphs? How do we define cuts? Construct shortest path trees –X with the source vertex x –Y with the sink vertex y In path graphs, X = Y = path(x,y) –Removal of e splits X and Y into identical components –Not true in undirected graphs
18
The Effect of Edge Removal G e X e Y e x y
19
VxVx VyVy Defining the Cuts Define the cut using the shortest path tree X –path(x,u) is contained in X X e x y u v
20
B k-1 B i+1 BiBi B3B3 B2B2 Defining the Blocks X e Block B i : subgraph connected to v i For each u V, Block(u) = i iff u B i For ( v i, v i+1 ) path(x,y), V x = j=1 i B j and V y = j=i+1 k B j x = v 1 y = v k v2v2 vivi v i+1
21
Calculating d(v,y,G\ e i ) Lemma 1: Let v be a vertex in V y = j=i+1 k B j for some e i = ( v i, v i+1 ). Then, d(v,y) = d(v,y,G\ e i ). X x y vivi v i+1 vu Proof follows by contradiction VxVx VyVy
22
Calculating the Payments Trivially, d(x,u) = d(x,u,G\ e i ) By Lemma 1, we have d(v,y) = d(v,y,G\ e i ) –d(v,y) calculated using Y For e = (u,v) path(x,y), define –left(e) = block(u) –right(e) = block(v) Reduce to the case of path graph
23
Directed Graphs
24
How to compute shortest path trees X and Y? –Shortest path tree with sink y may not be equal to the shortest path tree with source y –Reverse directions and compute shortest path tree Y How about d(x,u) = d(x,u;G\e)? How about d(v,y) = d(v,y;G\e)? Does Lemma 1 still hold?
25
Creating Cuts 111 xy 10100 55 e Y xy X xy e
26
Lemma 1 for Directed Graphs? Recall: Let v be a vertex in V y = j=i+1 k B j for some e i = ( v i, v i+1 ). Then, d(v,y) = d(v,y,G\ e i ). Counterexample for Lemma 1 100 10 1000 VxVx VyVy xy u v d(v,y) = 40 d(v,y,G\ e i ) = 130
27
Fixing Lemma 1 for Directed Graphs Lemma 2: path(x,y; G\e) includes exactly one edge of E(V x, V y ). Proof: For a path P from x to y, since path(x,u) = path(x,u; G\e), we can shorten P VxVx VyVy xy e P u v Corollary: path(v,y) = path(v,y; G\e)
28
Calculating the Payments Do not consider any edge (u,v) ( V x, V y ) such that path(v,y) includes a vertex in V x d(x,y,G\e) = min ( d(x,u) + c(u,v) + d(v,y) ) (u,v) E (V x, V y ) and (u,v) e and path(v,y) V x = How do we compute path(v,y) V x ?
29
Calculating the Payments – Continued miniblock(v): the smallest i such that path(v,y) contains a vertex of block B i –Can be computed in O(n) for all vertices v B2B2 B3B3 B4B4 B5B5 v block(v) = 5 miniblock(v) = 3 For a directed edge e =(u,v) path(x,y) left(e) = block(u) right(e) = miniblock(v) Apply the path algorithm d(x,u) and d(v,y) are available from X and Y x y
30
Complexity Analysis Given a directed graph G with m edges and a pair of vertices x and y, For each edge e path(x,y), compute d(x,y; G\e) in O(m + n log n) + the time to compute a shortest path tree
31
Is ‘d(v,y) = d(v,y; G\e)’ really true?
32
Flawed Results The Corollary of Lemma 2 is flawed [2] –d(v,y) d(v,x; G\e) 111 xy 10100 55 e Y xy path(v,y) includes e e v
33
Related Work Sensitivity analysis in Operations Research –Sensitivity of solution to change in its parameters E.g., how much the cost of each edge should change so that the minimum spanning tree remains unchanged This work is not concerned with the threshold of change, just the deletion of an edge R.E. Tarjan. Sensitivity analysis of minimum spanning trees and shortest path trees. IPL, 14(1), pp. 30-33, 1982.
34
Conclusion Well-defined need for efficient mechanisms in the Internet –This paper provides an efficient way to implement the Vickery payments for the shortest path routing Application to other graph problems –K simple (loopless) shortest paths [2] Future work –Apply for mechanism design in distributed computing
35
Questions?
36
Complexity Analysis Using Fibonacci heap –O(m) DecreaseKey operations –O(n) Insert, Delete, and FindMinimum Operations –Only delete take O(long n) –Other operations take O(1) amortized time price The complexity of the Path Algorithm is O(m + n log n )
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.