We give a simple algorithm to find a spanning tree that simultaneously approximates a shortest-path tree and a minimum spanning tree. The algorithm provides a continuous trade-off: given the two trees and a γ > 0, the algorithm returns a spanning tree in which the distance between any vertex and the root of the shortest-path tree is at most 1 + √ 2γ times the shortest-path distance, and yet the total weight of the tree is at most 1 + √ 2/γ times the weight of a minimum spanning tree. Our algorithm runs in linear time and obtains the best-possible trade-off. It can be implemented on a CREW PRAM to run in logarithmic time using one processor per vertex.
A broadcast version of the problem was discussed in REF , where an efficient algorithm was proposed to construct a spanning tree in which the distance from the root to any node is at most a constant times the shortest-path distance in the graph and the total cost of the tree is at most the same constant times the cost of minimum spanning tree.
Balancing Minimum Spanning and Shortest Path Trees
Algorithmica 14(4):305-322 (1995)
Mathematics Computer Science