Capacitated minimum spanning tree is a minimal cost spanning tree of a graph that has a designated root node
r
c
r
c
c
Suppose we have a graph
G=(V,E)
n=|G|
r\inG
ai
G
cij
ai
aj
C={cij
Esau-Williams heuristic finds suboptimal CMST that are very close to the exact solutions, but on average EW produces better results than many other heuristics.
r
n | |
\displaystyle\sum | |
i=0 |
cri
aj
G-{r}
t(ai)=gi-cij
t(ai)
gi
i
aj
cij
Esau-Williams heuristics for computing a suboptimal CMST:
function CMST(c,C,r): T = while have changes: for each node
ai
aj
t(ai)
gi
cij
t(ai)
t(ai)
gk
ckj
It is easy to see that EW finds a solution in polynomial time.
Ahuja's heuristic [2] uses a local search in a large multi-exchange neighborhood from a randomized greedy initial solution.
The initial solution is found by using a randomized version of Esau-Williams. Randomization is achieved by executing a uniformly random join from the best
p
Let
T
r
T\setminusr
An improvement graph is a tool to search a very large neighborhood efficiently. Paths through an improvement graph correspond to changes to a solution and the cost of the path is the change in the cost of the solution when applying the change. Here the improvement graph is a directed multigraph built by using 2 copies
i',i''
i\inV(T)
T\setminusr
i',j''
i
j
i'
i''
The local search step uses a dynamic programming approach to find a minimum cost cycle in the improvement graph. Paths through the improvement graph with increasing length are generated and only the most favorable with the same start and end as well as involved components is stored. To this end a hash table with the tuple of those 3 properties as key is used to hold paths. Since in each negative cycle there is a node such that all paths within that cycle containing this node have negative cost, only paths with negative cost need to be considered at all. As the comparison of sets of involved components between paths is one of the most common operations in the algorithm, it is implemented as comparison of indicator bit arrays stored as integers for speed. This however clearly stems from a lot of hash collisions, which might be a consequence of the particular choice of hash function and table structure, as well as high load factor due to space restrictions (paper from 2003).
At the time the paper was written (2003) this algorithm was state of the art on a standard operations research benchmark. The execution was dominated by the building (respectively updating) of the improvement graph. The number of edges in the improvement graph empirically scaled quadratically with the size of the input graph and since this determines the number of times the comparatively complex step of finding a minimum spanning tree has to be run, this is the most critical factor. Thus one can conclude that less dense input graphs greatly benefit the running time, as this reduces the number of edges in the improvement graph.
CMST problem is important in network design: when many terminal computers have to be connected to the central hub, the star configuration is usually not the minimum cost design. Finding a CMST that organizes the terminals into subnetworks can lower the cost of implementing a network.