# On finding and updating spanning trees and shortest paths

A DT for a graph G is called optimal if it has the smallest depth of all correct DTs for G. Generating all potential DTs The runtime of all steps in the algorithm is O(m), except for the step of using the decision trees.For every integer r, it is possible to find optimal decision trees for all graphs on r vertices by brute-force search. We don't know the runtime of this step, but we know that it is optimal - no algorithm can do better than the optimal decision tree.A minimum spanning tree (MST) or minimum weight spanning tree is a subset of the edges of a connected, edge-weighted (un)directed graph that connects all the vertices together, without any cycles and with the minimum possible total edge weight.That is, it is a spanning tree whose sum of edge weights is as small as possible.More generally, any edge-weighted undirected graph (not necessarily connected) has a minimum spanning forest, which is a union of the minimum spanning trees for its connected components.

A fourth algorithm, not as commonly used, is the reverse-delete algorithm, which is the reverse of Kruskal's algorithm. Several researchers have tried to find more computationally-efficient algorithms.

If T is a tree of MST edges, then we can contract T into a single vertex while maintaining the invariant that the MST of the contracted graph plus T gives the MST for the graph before contraction.

In all of the algorithms below, m is the number of edges in the graph and n is the number of vertices.

One example would be a telecommunications company trying to lay cable in a new neighborhood.

If it is constrained to bury the cable only along certain paths (e.g.

There may be several minimum spanning trees of the same weight; in particular, if all the edge weights of a given graph are the same, then every spanning tree of that graph is minimum.