Given an undirected, weighted graph, the minimum spanning tree (MST) is a tree that connects all of the vertices of the graph with minimum sum of edge weights. In real world applications, network designers often seek to quickly find a replacement edge for each edge in the MST. For example, when a traffic accident closes a road in a transportation network, or a line goes down in a communication network, the replacement edge may reconnect the MST at lowest cost. In the paper, we consider the case of finding the lowest cost replacement edge for each edge of the MST. A previous algorithm by Tarjan takes $O(m \alpha(m, n))$ time and space, where $\alpha(m, n)$ is the inverse Ackermann's function. Given the MST and sorted non-tree edges, our algorithm is the first practical algorithm that runs in $O(m+n)$ time and $O(m+n)$ space to find all replacement edges. Additionally, since the most vital edge is the tree edge whose removal causes the highest cost, our algorithm finds it in linear time.
翻译:在未定向、加权的图形中,最小的横幅树(MST)是一棵树,它把图中的所有顶部与最小的边缘重量相连接。在现实世界应用中,网络设计者通常寻求迅速找到MST中每个边缘的替代边缘。例如,交通事故关闭运输网络中的一条道路,或者一条线在通信网络中下降,替换边缘可以以最低的成本重新连接MST。在文件中,我们考虑了为MST的每个边缘找到最低的成本替换边缘的情况。在Tarjan的先前算法中,美元(m)/alpha(m,n)美元的时间和空间是美元(m),而美元/alpha(m,n)是Ackermann的反面功能。考虑到MST和分拣非树木边缘,我们的算法是第一个以美元(m+n)时间和美元(m)计算出所有替代边缘的实用算法。此外,由于最关键的边缘是树边缘,其去除成本最高,我们的算法是直线时间。