1. History
The history of the minimum spanning trees can be found in many
papers. In [1] details of all
the classical algorithms related to the minimal spanning tree problem
are analayzed. In [2] the
asymptotical complexity of the methods used to solve different types of
optimum undirected tree problem are discussed. In [3] an insight to the algorithmic technique for
solving the minimal spanning tree problem is provided. In [4] various computational methods
for MST algorithms are discussed. Non-greedy approaches for MST are
found in [5]. In [6] a survey of different
computational experiments is given. A nice recent survey is [7].
In this paper, we follow the notation in [8]. Many of the ideas discussed here can be found
in the two excellent sources [8] and [9]. Let be a
simple, connected, and rooted graph with a vertex set , an edge set , and a root vertex . We let and denote the number of vertices and
edges, respectively, and we let V* denote the set of non-root
vertices.
2. Motivation
The motivation to study this came from working on computer networks
for the first author. He was developing a network protocol that would
recover very quickly if a link or node were to fail. The idea was that a
sub-optimal spanning tree might be found quickly and then migrate, one
step at a time, to an optimal spanning tree. At every step the network
would still have a functional spanning tree. In order for the migration
to be possible, the collection of spanning tree for the damaged network
had to be connected.
A spanning tree of is a subgraph of containing no cycles and having edges. For more on spanning trees
see [10]. We will let denote both the spanning tree itself
and its edge set. While and are undirected graphs, it is useful to
think the edges of as having an
orientation which points in the direction of along a path in .
For any vertex in , we let is an edge in
. We say is the set of nearest neighbors of
v. Each edge in has an associated positive cost. Any
path in has an associated cost
which is equal to the sum of its edge costs. For any vertex in , there is a shortest path cost,
denoted by , which is the
minimum path cost over all paths in between and . It follows that is zero and that, for any other
vertex , is positive. A shortest path
spanning tree has the
property that for any vertex , the
cost is equal to the cost of
the (only) path in between
and . It follows that if is another vertex on the path in between and , then . A graph always has a shortest path spanning
tree and in general it is not unique.
3. A Few Observations
For any spanning tree , and for
any vertex in , there is a unique path in , having at least one edge, between
and . It follows that there is a unique
vertex , called the parent of
, which is a nearest neighbor of
and is closer to along the same path. The root vertex
has no parent, but it may be
the parent of another vertex. The spanning tree is completely described by its parent
function . Note
that an arbitrarily defined parent function may not correspond to a
valid spanning tree (e.g. arbitrary might not be a nearest neighbor. For
future reference, we make the following observations here:
Let be a spanning tree of
with parent function .
Let be a shortest
path spanning tree of with parent
function . Since path-cost on
is identical to path-cost on
, then it follows that for any in .
Let the set of all
vertices be sorted in order of increasing path cost. Thus, we have:
and if
then . The lowest cost
vertex is and .
Let and for . Now , and .5cm for any
.
Let be a sequence of parent functions such that on and on .
Let
We want to show that any parent function corresponding to spanning tree can be modified, one step at a time, to
reach parent function
corresponding to shortest path spanning tree . The modified parent functions are
denoted by and it is
important to show that each of them corresponds to a spanning tree (and doesn’t generate a loop
such as the example above). The machinery of the proof is to write the
vertices of the graph in order of path cost; that means that is the root (cost=0), is the next low-cost vertex, etc
until we come to which is
the most path-costly vertex.
We define and wherein all the vertices in are less path-costly than all the
vertices in . As the value of
goes from 1 to , we create the sequence of parent
functions such that
the sequence starts with function
and ends with function . We
argue that each
corresponds to a spanning tree . In this sequence of
modified parent functions, is followed by . We show that these
functions differ only at vertex
which means they are distance apart and hence adjacent and connected.
The corresponding spanning trees are and , respectively.
The last parent function in the migration sequence is which equals , the desired goal. The value acts like a slider from 1 to : and form a partition of the vertices. At
, is empty and is the entire list of vertices and
is . At , is the entire list of vertices and
is empty and is , the goal.
Lemma 1. If parent function corresponds to a spanning
tree , then parent
function also
corresponds to a spanning tree .
Proof. Consider (1), (2), (3), (4), (5), and (6). Vertex
is in , therefore its parent is . Now consider
the edge that connects vertices
and . If this edge is deleted
from the spanning tree , then is disconnected into two
components. One component, denoted by , is the “lower” subtree having vertex
as its root. The other
component, denoted by , is the
“upper” subtree, , which has as its
root. We now shift to parent function by changing the parent
of vertex to . We have to show that, by
including the new edge , the resulting structure is a spanning tree.
Because of (2), it follows that . However, the
vertices are sorted by the path-cost and has the smallest path-cost of nay
vertex in . Thus, it must be
that is in . Also, because of (2) and (3),
repeated applications of to
any vertex in must terminate
at . Therefore, all the vertices
in are connected to and is in the upper subtree .
Clearly, is in the lower
subtree , so this means that by
adding the new edge, the disconnected components and are reconnected. Regarding cycles,
there is no way that a single edge connecting two disjoint sets can be
part of a cycle. The two components were already trees in their own
right so neither had internal cycles. Thus, is a (connected) tree
containing all vertices, i.e. a spanning tree. 
4. Main result
Now imagine that spanning trees are abstracted as vertices themselves
in a graph of the spanning trees
of . Then we could say that two
spanning trees and are adjacent if and only if their
parent functions and differ at exactly one vertex. We
would then say that and are distance one apart. Notice
that from (5), distance . Now we ask whether is also connected or not.
Theorem 1. The graph is connected.
Proof. Consider (1), (2), (3), (4), (5), and (6). The first
function in the sequence of parent functions is . Because and , this function is identical to
which is given as corresponding
to a spanning tree . Therefore, by
repeated application of Lemma 3.1, every parent function in the sequence
corresponds to a spanning tree. The last function in the sequence of
parent functions is . Because and , this function is
identical to which
corresponds to the shortest path spanning tree . Thus, spanning trees and are connected. But, is arbitrary, so any two arbitrary
spanning trees are connected to the same shortest path tree which means they are connected to
each other. Therefore, the graph
is connected. This completes the proof. 
If we now consider , the
subgraph of containing only
shortest path spanning trees of ,
we can have the following immediate consequence:
Corollary 1. The graph is connected.
As a future work, we pose the following question: Can arbitrary
spanning trees of be path
connected without using shortest path spanning tree, i.e., is the graph
connected?