1 / 36

Vickery Prices and Shortest Paths: What is an edge worth?

Vickery Prices and Shortest Paths: What is an edge worth?. Authors: John Hershberger and Subhash Suri Presenter: Ali Ebnenasir. References. [1] John Hershberger and Subhash Suri . Vickrey Prices and Shortest Paths: What is an edge worth?, FOCS 2001.

willem
Download Presentation

Vickery Prices and Shortest Paths: What is an edge worth?

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. 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 =<V, E> 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 pe) • d(x,y,G\e) – d(x,y, G|e=0) if e is on the shortest path • 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 = <V, E> 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, E>, |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) = (v1, …, vk) where v1=x and vk=y • d(a,b, G\ei) = x-y distance omitting ei

  7. Preliminary Concepts - continued • Cut (Vx , Vy):set of edgesbetween two partitions Vx and Vy such that x  Vx and y  Vx and Vy = V - Vx • Ecut = E(Vx , Vy): set of edges of a cut (Vx , Vy) • For each edge (u,v)Ecut , u  Vx and v  Vy • Any path from x to y must include at least one edge from Ecut

  8. Reformulating the Problem For each edge ei = (vi, vi+1) and some cut (Vx , Vy) d(x,y,G\ei) = min ( d(x,u,G\ei) + c(u,v) + d(v,y,G\ei) ) (u,v)Ecut and (u,v)  ei

  9. Payment Calculation in Path Graphs

  10. Path Graphs • path(x,y) = (v1, …, vn) includes all vertices • Cut Ei = E(Vx ,Vy) induced by removing ei • Vx = (v1, …, vi) • Vy = (vi+1, …, vn) vi v1= x vi+1 vn= y Vx Vy

  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) vi vi+1 v u vn= y v1= x Vx Vy

  12. Path Graphs - Payment Calculation For i := 1, …, n-1 • Create a cut (Vx , Vy) for edge ei = (vi, vi+1) • d(x,y,G\ei) = min ( d(x,u) + c(u,v) + d(v,y) ) (u,v)Ei and (u,v)  ei vi vi+1 v vn= y u v1= x Vx Vy How do we calculate Ei?

  13. Calculating the Cuts a b c g h k d e f Vx Vy E(d,e) = {(a,g), (b,f), (c,f), (c,e), (d,g)} How can we create E(e,f) from E(d,e)?

  14. vi vi+1 vi+2 • To produce Ei+1 from Ei Calculating Successive Cuts a b c g h k d e f Vx Vy E(e,f) = {(a,g), (b,f), (c,f), (c,e), (d,g)} - {(c,e)}  {(e,h), (e,k)} • Remove edges whose right endpoint is vi+1 • Add edges whose left endpoint is vi+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 ei O(m + n log n )

  16. Undirected Graphs

  17. Undirected Graphs • 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. G e X Y e The Effect of Edge Removal e x y

  19. Vx Vy Defining the Cuts • Define the cut using the shortest path tree X • path(x,u) is contained in X X e x y v u

  20. B2 Bk-1 Bi vi+1 x = v1 vi y = vk v2 B3 Bi+1 Defining the Blocks Block Bi : subgraph connected to vi For each u  V, Block(u) = i iff u  Bi For (vi, vi+1)  path(x,y), Vx = j=1iBj and Vy = j=i+1kBj X e

  21. Calculating d(v,y,G\ ei) • Lemma 1: Let v be a vertex in Vy = j=i+1kBjfor some ei = (vi, vi+1) . Then, d(v,y) = d(v,y,G\ ei). Proof follows by contradiction vi vi+1 X x y u v Vy Vx

  22. Calculating the Payments • Trivially, d(x,u) = d(x,u,G\ ei) • By Lemma 1, we have d(v,y) = d(v,y,G\ ei) • 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. Directed Graphs • 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. X x y e Y x y Creating Cuts 10 100 5 5 1 1 1 x y e

  26. Lemma 1 for Directed Graphs? • Recall: Let v be a vertex in Vy = j=i+1kBjfor some ei = (vi, vi+1) . Then, d(v,y) = d(v,y,G\ ei). • Counterexample for Lemma 1 d(v,y) = 40 d(v,y,G\ ei) = 130 1000 u 10 v Vx Vy 10 10 10 10 10 x y 100

  27. Fixing Lemma 1 for Directed Graphs • Lemma 2: path(x,y; G\e) includes exactly one edge of E(Vx, Vy). • Proof: For a path P from x to y, since path(x,u) = path(x,u; G\e), we can shorten P P Vx Vy v u x y e Corollary: path(v,y) = path(v,y; G\e)

  28. Calculating the Payments • Do not consider any edge (u,v)  (Vx, Vy) such that path(v,y) includes a vertex in Vx • d(x,y,G\e) = min ( d(x,u) + c(u,v) + d(v,y) ) • (u,v)E (Vx, Vy) and (u,v)  eand • path(v,y) Vx =  How do we computepath(v,y)  Vx ?

  29. B2 B3 B4 B5 Calculating the Payments – Continued • miniblock(v): the smallest i such that path(v,y) contains a vertex of block Bi • Can be computed in O(n) for all vertices v y x block(v) = 5 miniblock(v) = 3 v • 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

  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) v 10 100 5 5 1 1 1 x y e Y x y e • path(v,y) includes e

  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 )

More Related