A faster computation of the most vital edge of a shortest path

A faster computation of the
most vital edge of a
shortest path
Enrico Nardelli,
Guido Proietti,
Pete Widmayer
MVE Problem
► Given
an undirected graph G=(V,E) with
positive real edge weight
► A source node r and a destination node s
find out an edge e whose removal
from G result in the largest distance from r
to s
► We refer this edge as the Most Vital Edge
► Goal:
r
s
Obviously
► The
vital edge is in the shortest path PG(r,s)
► More
precisely, the MVE problem asks for
finding an edge e*PG(r,s) such that dGe*(r,s)dG-e(r,s) for any e PG(r,s)
r
e
s
Brute force…
one edge of PG(r,s) and recompute
new shortest path between r and s
► Remove
r
Mr(e)
e
Nr(e)
s
r
s
r
s
Non-tree edge
► dG-e(r,s)=min
► That
{dG-e(r,x)+w(f)+dG-e(y,s)}
is, one non-tree edge is one possible
replacement for an tree edge
Transmuter
►
A smart idea from R.E. Tarjan
Applications of path compression on balanced trees, J. ACM 26(1979)690-715
►
Given a spanning tree T of a graph G. The transmuter DG(T)
contains source node ve for a tree edge e sink node vf for
a non-tree edge f
►
There is a directed path from a source ve node to a sink
node vf iff e and f form a cycle in G
Source nodes
……
Sink nodes
e1
e2
f1
ve
ve
1
vf
1
2
e1
e2
f1
f2
e3
ve
ve
1
vf
1
ve
2
vf
2
3
ve
ve
1
vf
1
ve
2
vf
2
3
Solve MVE problem
► Give
every sink node a value
a sink node vf is respect to a non-tree edge f
(x,y)
c(vf)=dG(r,x)+w(f)+dG(y,s)
► Afterwards,
process the nodes of the transmuter in
reverse topological order
► Label each nodes with minimum value of it’s
children
ve
ve
1
vf
1
ve
2
vf
2
3
r
s
Time complexity
transmuter can be determined in
O(m*(m,n))  is inverse of Acknerman
► The
function
► Computing shortest path tree rooted r and
rooted s needs O(m)
► Input sink node value…O(m)
Conclusion
► Linear
time?
► Other
vital edge?
► Transmuter?