Algorithms and Networks: Shortest paths Shortest paths Algorithms and Networks.
Vickery Prices and Shortest Paths: What is an edge worth?
description
Transcript of Vickery Prices and Shortest Paths: What is an edge worth?
![Page 1: Vickery Prices and Shortest Paths: What is an edge worth?](https://reader035.fdocuments.us/reader035/viewer/2022062805/56814d4c550346895dba7a8a/html5/thumbnails/1.jpg)
Vickery Prices and Shortest Paths:What is an edge worth?
Authors:
John Hershberger and Subhash Suri
Presenter:
Ali Ebnenasir
![Page 2: Vickery Prices and Shortest Paths: What is an edge worth?](https://reader035.fdocuments.us/reader035/viewer/2022062805/56814d4c550346895dba7a8a/html5/thumbnails/2.jpg)
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.
![Page 3: Vickery Prices and Shortest Paths: What is an edge worth?](https://reader035.fdocuments.us/reader035/viewer/2022062805/56814d4c550346895dba7a8a/html5/thumbnails/3.jpg)
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)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)
![Page 4: Vickery Prices and Shortest Paths: What is an edge worth?](https://reader035.fdocuments.us/reader035/viewer/2022062805/56814d4c550346895dba7a8a/html5/thumbnails/4.jpg)
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
![Page 5: Vickery Prices and Shortest Paths: What is an edge worth?](https://reader035.fdocuments.us/reader035/viewer/2022062805/56814d4c550346895dba7a8a/html5/thumbnails/5.jpg)
Outline• Preliminary concepts
• Payment calculation in
– Path graph
– Undirected graph
– Directed graph
• Related work
• Conclusion and future work
![Page 6: Vickery Prices and Shortest Paths: What is an edge worth?](https://reader035.fdocuments.us/reader035/viewer/2022062805/56814d4c550346895dba7a8a/html5/thumbnails/6.jpg)
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
![Page 7: Vickery Prices and Shortest Paths: What is an edge worth?](https://reader035.fdocuments.us/reader035/viewer/2022062805/56814d4c550346895dba7a8a/html5/thumbnails/7.jpg)
Preliminary Concepts - continued
• Cut (Vx , Vy): set of edges between 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
![Page 8: Vickery Prices and Shortest Paths: What is an edge worth?](https://reader035.fdocuments.us/reader035/viewer/2022062805/56814d4c550346895dba7a8a/html5/thumbnails/8.jpg)
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
![Page 9: Vickery Prices and Shortest Paths: What is an edge worth?](https://reader035.fdocuments.us/reader035/viewer/2022062805/56814d4c550346895dba7a8a/html5/thumbnails/9.jpg)
Payment Calculation in Path Graphs
![Page 10: Vickery Prices and Shortest Paths: What is an edge worth?](https://reader035.fdocuments.us/reader035/viewer/2022062805/56814d4c550346895dba7a8a/html5/thumbnails/10.jpg)
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 vi+1
Vx Vy
v1= x vn= y
![Page 11: Vickery Prices and Shortest Paths: What is an edge worth?](https://reader035.fdocuments.us/reader035/viewer/2022062805/56814d4c550346895dba7a8a/html5/thumbnails/11.jpg)
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
Vx Vy
u vv1= x vn= y
![Page 12: Vickery Prices and Shortest Paths: What is an edge worth?](https://reader035.fdocuments.us/reader035/viewer/2022062805/56814d4c550346895dba7a8a/html5/thumbnails/12.jpg)
Path Graphs - Payment CalculationFor i := 1, …, n-1
1. Create a cut (Vx , Vy) for edge ei = (vi, vi+1)
2. 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
Vx Vy
u vv1= x vn= y
How do we calculate Ei?
![Page 13: Vickery Prices and Shortest Paths: What is an edge worth?](https://reader035.fdocuments.us/reader035/viewer/2022062805/56814d4c550346895dba7a8a/html5/thumbnails/13.jpg)
Calculating the Cuts
d e
Vx Vy
f
E(d,e) = {(a,g), (b,f), (c,f), (c,e), (d,g)}
cba g h k
How can we create E(e,f) from E(d,e)?
![Page 14: Vickery Prices and Shortest Paths: What is an edge worth?](https://reader035.fdocuments.us/reader035/viewer/2022062805/56814d4c550346895dba7a8a/html5/thumbnails/14.jpg)
Calculating Successive Cuts
d e
Vx Vy
fcba g h k
E(e,f) = {(a,g), (b,f), (c,f), (c,e), (d,g)} - {(c,e)} {(e,h), (e,k)}
• To produce Ei+1 from Ei
vi vi+1 vi+2
1. Remove edges whose right endpoint is vi+1 2. Add edges whose left endpoint is vi+1
![Page 15: Vickery Prices and Shortest Paths: What is an edge worth?](https://reader035.fdocuments.us/reader035/viewer/2022062805/56814d4c550346895dba7a8a/html5/thumbnails/15.jpg)
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 )
![Page 16: Vickery Prices and Shortest Paths: What is an edge worth?](https://reader035.fdocuments.us/reader035/viewer/2022062805/56814d4c550346895dba7a8a/html5/thumbnails/16.jpg)
Undirected Graphs
![Page 17: Vickery Prices and Shortest Paths: What is an edge worth?](https://reader035.fdocuments.us/reader035/viewer/2022062805/56814d4c550346895dba7a8a/html5/thumbnails/17.jpg)
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
![Page 18: Vickery Prices and Shortest Paths: What is an edge worth?](https://reader035.fdocuments.us/reader035/viewer/2022062805/56814d4c550346895dba7a8a/html5/thumbnails/18.jpg)
The Effect of Edge Removal
Ge
X e
Ye
x y
![Page 19: Vickery Prices and Shortest Paths: What is an edge worth?](https://reader035.fdocuments.us/reader035/viewer/2022062805/56814d4c550346895dba7a8a/html5/thumbnails/19.jpg)
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
u v
![Page 20: Vickery Prices and Shortest Paths: What is an edge worth?](https://reader035.fdocuments.us/reader035/viewer/2022062805/56814d4c550346895dba7a8a/html5/thumbnails/20.jpg)
Bk-1
Bi+1
Bi
B3
B2
Defining the Blocks
X e
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=1i Bj and Vy = j=i+1
k Bj
x = v1 y = vkv2vi
vi+1
![Page 21: Vickery Prices and Shortest Paths: What is an edge worth?](https://reader035.fdocuments.us/reader035/viewer/2022062805/56814d4c550346895dba7a8a/html5/thumbnails/21.jpg)
Calculating d(v,y,G\ ei)• Lemma 1: Let v be a vertex in Vy = j=i+1
k Bj for some ei = (vi, vi+1) . Then, d(v,y) = d(v,y,G\ ei).
X
x y
vi vi+1
vu
Proof follows by contradiction
VxVy
![Page 22: Vickery Prices and Shortest Paths: What is an edge worth?](https://reader035.fdocuments.us/reader035/viewer/2022062805/56814d4c550346895dba7a8a/html5/thumbnails/22.jpg)
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
![Page 23: Vickery Prices and Shortest Paths: What is an edge worth?](https://reader035.fdocuments.us/reader035/viewer/2022062805/56814d4c550346895dba7a8a/html5/thumbnails/23.jpg)
Directed Graphs
![Page 24: Vickery Prices and Shortest Paths: What is an edge worth?](https://reader035.fdocuments.us/reader035/viewer/2022062805/56814d4c550346895dba7a8a/html5/thumbnails/24.jpg)
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?
![Page 25: Vickery Prices and Shortest Paths: What is an edge worth?](https://reader035.fdocuments.us/reader035/viewer/2022062805/56814d4c550346895dba7a8a/html5/thumbnails/25.jpg)
Creating Cuts
1 1 1x y
10 10055
e
Yx y
Xx ye
![Page 26: Vickery Prices and Shortest Paths: What is an edge worth?](https://reader035.fdocuments.us/reader035/viewer/2022062805/56814d4c550346895dba7a8a/html5/thumbnails/26.jpg)
Lemma 1 for Directed Graphs?
• Recall: Let v be a vertex in Vy = j=i+1k Bj for
some ei = (vi, vi+1) . Then, d(v,y) = d(v,y,G\ ei).
• Counterexample for Lemma 1
100
10 10 1010
1010
1000
Vx Vy
x y
u v
d(v,y) = 40d(v,y,G\ ei) = 130
![Page 27: Vickery Prices and Shortest Paths: What is an edge worth?](https://reader035.fdocuments.us/reader035/viewer/2022062805/56814d4c550346895dba7a8a/html5/thumbnails/27.jpg)
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
Vx Vy
x ye
P
uv
Corollary: path(v,y) = path(v,y; G\e)
![Page 28: Vickery Prices and Shortest Paths: What is an edge worth?](https://reader035.fdocuments.us/reader035/viewer/2022062805/56814d4c550346895dba7a8a/html5/thumbnails/28.jpg)
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) e and
path(v,y) Vx =
How do we compute path(v,y) Vx ?
![Page 29: Vickery Prices and Shortest Paths: What is an edge worth?](https://reader035.fdocuments.us/reader035/viewer/2022062805/56814d4c550346895dba7a8a/html5/thumbnails/29.jpg)
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
B2 B3 B4 B5
v block(v) = 5miniblock(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
![Page 30: Vickery Prices and Shortest Paths: What is an edge worth?](https://reader035.fdocuments.us/reader035/viewer/2022062805/56814d4c550346895dba7a8a/html5/thumbnails/30.jpg)
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
![Page 31: Vickery Prices and Shortest Paths: What is an edge worth?](https://reader035.fdocuments.us/reader035/viewer/2022062805/56814d4c550346895dba7a8a/html5/thumbnails/31.jpg)
Is ‘d(v,y) = d(v,y; G\e)’ really true?
![Page 32: Vickery Prices and Shortest Paths: What is an edge worth?](https://reader035.fdocuments.us/reader035/viewer/2022062805/56814d4c550346895dba7a8a/html5/thumbnails/32.jpg)
Flawed Results
• The Corollary of Lemma 2 is flawed [2]– d(v,y) d(v,x; G\e)
1 1 1x y
10 10055
e
Yx y
• path(v,y) includes e
e
v
![Page 33: Vickery Prices and Shortest Paths: What is an edge worth?](https://reader035.fdocuments.us/reader035/viewer/2022062805/56814d4c550346895dba7a8a/html5/thumbnails/33.jpg)
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.
![Page 34: Vickery Prices and Shortest Paths: What is an edge worth?](https://reader035.fdocuments.us/reader035/viewer/2022062805/56814d4c550346895dba7a8a/html5/thumbnails/34.jpg)
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
![Page 35: Vickery Prices and Shortest Paths: What is an edge worth?](https://reader035.fdocuments.us/reader035/viewer/2022062805/56814d4c550346895dba7a8a/html5/thumbnails/35.jpg)
Questions?
![Page 36: Vickery Prices and Shortest Paths: What is an edge worth?](https://reader035.fdocuments.us/reader035/viewer/2022062805/56814d4c550346895dba7a8a/html5/thumbnails/36.jpg)
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 )