Abstract

We consider a two-edge connected, non-negatively real-weighted graph G with n vertices and m edges, and a single-source shortest paths tree (SPT) of G rooted at an arbitrary vertex. If an edge of the SPT is temporarily removed, a widely recognized approach to reconnect the vertices disconnected from the root consists of joining the two resulting subtrees by means of a single non-tree edge, called a swap edge. This allows to reduce consistently the set-up and computational costs which are incurred if one instead rebuilds a new optimal SPT from scratch. In the past, several optimality criteria have been considered to select a best possible swap edge, and here we restrict our attention to arguably the two most significant measures: the minimization of either the maximum or the average distance between the root and the disconnected vertices. For the former criteria, we present an $$O(m \log \alpha (m,n))$$O(mlog?(m,n)) time algorithm--where $$\alpha $$? is the inverse of the Ackermann function--to find a best swap edge for every edge of the SPT, thus improving onto the previous $$O(m \log n)$$O(mlogn) time algorithm. Concerning the latter criteria, we provide an $$O(m+n \log n)$$O(m+nlogn) time algorithm for the special but important case where G is unweighted, which compares favourably with the $$O\left( m+n \, \alpha (n,n)\log ^2n\right) $$Om+n?(n,n)log2n time bound that one would get by using the fastest algorithm known for the weighted case--once this is suitably adapted to the unweighted case.

Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call