Minimum bottleneck spanning tree

Last updated

In mathematics, a minimum bottleneck spanning tree (MBST) in an undirected graph is a spanning tree in which the most expensive edge is as cheap as possible. A bottleneck edge is the highest weighted edge in a spanning tree. A spanning tree is a minimum bottleneck spanning tree if the graph does not contain a spanning tree with a smaller bottleneck edge weight. [1] For a directed graph, a similar problem is known as Minimum Bottleneck Spanning Arborescence (MBSA).

Contents

Definitions

Undirected graphs

Minimal Bottleneck Spanning Tree 
G
(
V
,
E
)
{\displaystyle G(V,E)}
 MBST.png
Minimal Bottleneck Spanning Tree

In an undirected graph G(V, E) and a function w : E  R, let S be the set of all spanning trees Ti. Let B(Ti) be the maximum weight edge for any spanning tree Ti. We define subset of minimum bottleneck spanning trees S such that for every Tj  S and Tk  S we have B(Tj)  B(Tk) for all i and k. [2]

The graph on the right is an example of MBST, the red edges in the graph form a MBST of G(V, E).

Directed graphs

Minimal Bottleneck Spanning Arborescence G(V,E) Minimum Bottleneck Spanning Arborescence (MBSA).png
Minimal Bottleneck Spanning Arborescence G(V,E)

An arborescence of graph G is a directed tree of G which contains a directed path from a specified node L to each node of a subset V of V \{L}. Node L is called the root of arborescence. An arborescence is a spanning arborescence if V = V \{L}. MBST in this case is a spanning arborescence with the minimum bottleneck edge. An MBST in this case is called a Minimum Bottleneck Spanning Arborescence (MBSA).

The graph on the right is an example of MBSA, the red edges in the graph form a MBSA of G(V, E).

Properties

A MST (or minimum spanning tree) is necessarily a MBST, but a MBST is not necessarily a MST. [3]

[4]

Camerini's algorithm for undirected graphs

Camerini proposed [5] an algorithm used to obtain a minimum bottleneck spanning tree (MBST) in a given undirected, connected, edge-weighted graph in 1978. It half divides edges into two sets. The weights of edges in one set are no more than that in the other. If a spanning tree exists in subgraph composed solely with edges in smaller edges set, it then computes a MBST in the subgraph, a MBST of the subgraph is exactly a MBST of the original graph. If a spanning tree does not exist, it combines each disconnected component into a new super vertex, then computes a MBST in the graph formed by these super vertices and edges in the larger edges set. A forest in each disconnected component is part of a MBST in original graph. Repeat this process until two (super) vertices are left in the graph and a single edge with smallest weight between them is to be added. A MBST is found consisting of all the edges found in previous steps. [4]

Pseudocode

The procedure has two input parameters. G is a graph, w is a weights array of all edges in the graph G. [6]

function MBST(graph G, weights w)     E ← the set of edges of Gif | E | = 1 thenreturnEelseA ← half edges in E whose weights are no less than the median weight         BE - AF ← forest of GBifF is a spanning tree thenreturn MBST(GB,w)         elsereturn MBST((GA)η, w) F

In the above (GA)η is the subgraph composed of super vertices (by regarding vertices in a disconnected component as one) and edges in A.

Running time

The algorithm is running in O (E) time, where E is the number of edges. This bound is achieved as follows:

NOTE: The run time estimate O(E) instead of O(E+V) (traversing a graph takes O(E+V) time), but for this case the graph is connected, therefore V-1<=E, hence, O(E+V)=O(E).

Example

In the following example green edges are used to form a MBST and dashed red areas indicate super vertices formed during the algorithm steps.

Camerini Algorithm 1.svg The algorithm half divides edges in two sets with respect to weights. Green edges are those edges whose weights are as small as possible.
Camerini Algorithm 2.svg Since there is a spanning tree in the subgraph formed solely with edges in the smaller edges set. Repeat finding a MBST in this subgraph.
Camerini Algorithm 3.svg Since there is not a spanning tree in current subgraph formed with edges in the current smaller edges set. Combine the vertices of a disconnected component to a super vertex (denoted by a dashed red area) and then find a MBST in the subgraph formed with super vertices and edges in larger edges set. A forest formed within each disconnected component will be part of a MBST in the original graph.
Camerini Algorithm 4.svg Repeat similar steps by combining more vertices into a super vertex.
Camerini Algorithm 1.svg The algorithm finally obtains a MBST by using edges it found during the algorithm.

MBSA algorithms for directed graphs

There are two algorithms available for directed graph: Camerini's algorithm for finding MBSA and another from Gabow and Tarjan. [4]

Camerini's algorithm for MBSA

For a directed graph, Camerini's algorithm focuses on finding the set of edges that would have its maximum cost as the bottleneck cost of the MBSA. This is done by partitioning the set of edges E into two sets A and B and maintaining the set T that is the set in which it is known that GT does not have a spanning arborescence, increasing T by B whenever the maximal arborescence of G(B  T) is not a spanning arborescence of G, otherwise we decrease E by A. The total time complexity is O(E log E). [5] [4]

Pseudocode

function MBSA(G, w, T) isE ← the set of edges of Gif | E − T | > 1 thenA ← UH(E-T)         B ← (E − T)AF ← BUSH(GBUT)         ifF is a spanning arborescence of G then             S ← F             MBSA((GBUT), w, T)         else             MBSA(G, w, TUB);
  1. T represents a subset of E for which it is known that GT does not contain any spanning arborescence rooted at node “a”. Initially T is empty
  2. UH takes (E−T) set of edges in G and returns A ⊂ (E−T) such that:
    1. Wa Wb , for a ∈ A and b ∈ B
  3. BUSH(G) returns a maximal arborescence of G rooted at node “a”
  4. The final result will be S

Example

MBSA Example 1.png MBSA Example 2.png MBSA Example 3.png After running the first iteration of this algorithm, we get the F and F is not a spanning arborescence of G, So we run the code
MBSA Example 4.png MBSA Example 5.png MBSA Example 6.png In the second iteration, we get the and is also not a spanning arborescence of G, So we run the code
MBSA Example 7.png MBSA Example 8.png MBSA Example 9.png In the third iteration, we get the and is a spanning arborescence of G, So we run the code
MBSA Example 10.png MBSA Example 11.png when we run the , the is equal to 1, which is not larger than 1, so the algorithm return and the final result is .

Gabow and Tarjan algorithm for MBSA

Gabow and Tarjan provided a modification of Dijkstra's algorithm for single-source shortest path that produces an MBSA. Their algorithm runs in O(E + V log V) time if Fibonacci heap used. [7]

Pseudocode

 For a graph G(V,E), F is a collection of vertices in V.   Initially, F = {s} where s is the starting point of the graph G and c(s) = -   1  function MBSA-GT(G, w, T)  2      repeat |V| times  3          Select v with minimum c(v) from F;   4          Delete it from the F;  5          for edge(v, w) do  6              ifwF or  Tree then  7                  add w to F;            8                  c(w) = c(v,w);  9                  p(w) = v;       10             else  11                 ifwF and c(w) > c(v, w)then  12                     c(w) = c(v, w);  13                     p(w) = v;

Example

The following example shows that how the algorithm works.

At the first step of the algorithm, we select the root s from the graph G, in the above figure, vertex 6 is the root s. Then we found all the edge(6,w) [?] E and their cost c(6,w), where w [?] V. MBSA-GT-example-1.png
At the first step of the algorithm, we select the root s from the graph G, in the above figure, vertex 6 is the root s. Then we found all the edge(6,w) E and their cost c(6,w), where w V.
Next we move to the vertex 5 in the graph G, we found all the edge(5,w) [?] E and their cost c(5,w), where w [?] V. MBSA-GT-example-2.png
Next we move to the vertex 5 in the graph G, we found all the edge(5,w) E and their cost c(5,w), where w V.
Next we move to the vertex 4 in the graph G, we found all the edge(4,w) [?] E and their cost c(4,w), where w [?] V. We find that the edge(4,5) > edge(6.5), so we keep edge(6,5) and remove the edge(4,5). MBSA-GT-example-7.png
Next we move to the vertex 4 in the graph G, we found all the edge(4,w) E and their cost c(4,w), where w V. We find that the edge(4,5) > edge(6.5), so we keep edge(6,5) and remove the edge(4,5).
Next we move to the vertex 1 in the graph G, we found all the edge(1,w) [?] E and their cost c(1,w), where w [?] V. We find that the edge(5,2) > edge(1,2), so we remove edge(5,2) and keep the edge(1,2). MBSA-GT-example-3.png
Next we move to the vertex 1 in the graph G, we found all the edge(1,w) E and their cost c(1,w), where w V. We find that the edge(5,2) > edge(1,2), so we remove edge(5,2) and keep the edge(1,2).
Next we move to the vertex 2 in the graph G, we found all the edge(2,w) [?] E and their cost c(2,w), where w [?] V. MBSA-GT-example-4.png
Next we move to the vertex 2 in the graph G, we found all the edge(2,w) E and their cost c(2,w), where w V.
Next we move to the vertex 3 in the graph G, we found all the edge(3,w) [?] E and their cost c(3,w), where w [?] V. We find that the edge(3,4) > edge(6,4), so we remove the edge(3,4) and keep the edge(6,4). MBSA-GT-example-5.png
Next we move to the vertex 3 in the graph G, we found all the edge(3,w) E and their cost c(3,w), where w V. We find that the edge(3,4) > edge(6,4), so we remove the edge(3,4) and keep the edge(6,4).
After we loop through all the vertices in the graph G, the algorithm has finished. MBSA-GT-example-6.png
After we loop through all the vertices in the graph G, the algorithm has finished.

Another approach proposed by Tarjan and Gabow with bound of O(E log* V) for sparse graphs, in which it is very similar to Camerini’s algorithm for MBSA, but rather than partitioning the set of edges into two sets per each iteration, K(i) was introduced in which i is the number of splits that has taken place or in other words the iteration number, and K(i) is an increasing function that denotes the number of partitioned sets that one should have per iteration. K(i) = 2k(i  1) with k(1) = 2. The algorithm finds λ* in which it is the value of the bottleneck edge in any MBSA. After λ* is found any spanning arborescence in G(λ*) is an MBSA in which G(λ*) is the graph where all its edge's costs are  λ*. [4] [7]

Related Research Articles

<span class="mw-page-title-main">Minimum spanning tree</span> Least-weight tree connecting graph vertices

A minimum spanning tree (MST) or minimum weight spanning tree is a subset of the edges of a connected, edge-weighted undirected 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 has a minimum spanning forest, which is a union of the minimum spanning trees for its connected components.

<span class="mw-page-title-main">Kruskal's algorithm</span> Minimum spanning forest algorithm that greedily adds edges

Kruskal's algorithm finds a minimum spanning forest of an undirected edge-weighted graph. If the graph is connected, it finds a minimum spanning tree. It is a greedy algorithm that in each step adds to the forest the lowest-weight edge that will not form a cycle. The key steps of the algorithm are sorting and the use of a disjoint-set data structure to detect cycles. Its running time is dominated by the time to sort all of the graph edges by their weight.

<span class="mw-page-title-main">Prim's algorithm</span> Method for finding minimum spanning trees

In computer science, Prim's algorithm is a greedy algorithm that finds a minimum spanning tree for a weighted undirected graph. This means it finds a subset of the edges that forms a tree that includes every vertex, where the total weight of all the edges in the tree is minimized. The algorithm operates by building this tree one vertex at a time, from an arbitrary starting vertex, at each step adding the cheapest possible connection from the tree to another vertex.

<span class="mw-page-title-main">Borůvka's algorithm</span> Method for finding minimum spanning trees

Borůvka's algorithm is a greedy algorithm for finding a minimum spanning tree in a graph, or a minimum spanning forest in the case of a graph that is not connected.

This is a glossary of graph theory. Graph theory is the study of graphs, systems of nodes or vertices connected in pairs by lines or edges.

<span class="mw-page-title-main">Spanning tree</span> Tree which includes all vertices of a graph

In the mathematical field of graph theory, a spanning treeT of an undirected graph G is a subgraph that is a tree which includes all of the vertices of G. In general, a graph may have several spanning trees, but a graph that is not connected will not contain a spanning tree. If all of the edges of G are also edges of a spanning tree T of G, then G is a tree and is identical to T.

In the mathematical discipline of graph theory, a matching or independent edge set in an undirected graph is a set of edges without common vertices. In other words, a subset of the edges is a matching if each vertex appears in at most one edge of that matching. Finding a matching in a bipartite graph can be treated as a network flow problem.

<span class="mw-page-title-main">Strongly connected component</span> Partition of a graph whose components are reachable from all vertices

In the mathematical theory of directed graphs, a graph is said to be strongly connected if every vertex is reachable from every other vertex. The strongly connected components of a directed graph form a partition into subgraphs that are themselves strongly connected. It is possible to test the strong connectivity of a graph, or to find its strongly connected components, in linear time (that is, Θ(V + E )).

In the mathematical theory of matroids, a graphic matroid is a matroid whose independent sets are the forests in a given finite undirected graph. The dual matroids of graphic matroids are called co-graphic matroids or bond matroids. A matroid that is both graphic and co-graphic is sometimes called a planar matroid ; these are exactly the graphic matroids formed from planar graphs.

<span class="mw-page-title-main">Bridge (graph theory)</span> Edge in node-link graph whose removal would disconnect the graph

In graph theory, a bridge, isthmus, cut-edge, or cut arc is an edge of a graph whose deletion increases the graph's number of connected components. Equivalently, an edge is a bridge if and only if it is not contained in any cycle. For a connected graph, a bridge can uniquely determine a cut. A graph is said to be bridgeless or isthmus-free if it contains no bridges.

The arboricity of an undirected graph is the minimum number of forests into which its edges can be partitioned. Equivalently it is the minimum number of spanning forests needed to cover all the edges of the graph. The Nash-Williams theorem provides necessary and sufficient conditions for when a graph is k-arboric.

In graph theory, a connected graph is k-edge-connected if it remains connected whenever fewer than k edges are removed.

<span class="mw-page-title-main">Biconnected component</span> Maximal biconnected subgraph

In graph theory, a biconnected component or block is a maximal biconnected subgraph. Any connected graph decomposes into a tree of biconnected components called the block-cut tree of the graph. The blocks are attached to each other at shared vertices called cut vertices or separating vertices or articulation points. Specifically, a cut vertex is any vertex whose removal increases the number of connected components. A block containing at most one cut vertex is called a leaf block, it corresponds to a leaf vertex in the block-cut tree.

In graph theory, Edmonds' algorithm or Chu–Liu/Edmonds' algorithm is an algorithm for finding a spanning arborescence of minimum weight . It is the directed analog of the minimum spanning tree problem. The algorithm was proposed independently first by Yoeng-Jin Chu and Tseng-Hong Liu (1965) and then by Jack Edmonds (1967).

<span class="mw-page-title-main">Pseudoforest</span> Graph with at most one cycle per component

In graph theory, a pseudoforest is an undirected graph in which every connected component has at most one cycle. That is, it is a system of vertices and edges connecting pairs of vertices, such that no two cycles of consecutive edges share any vertex with each other, nor can any two cycles be connected to each other by a path of consecutive edges. A pseudotree is a connected pseudoforest.

In graph theory, the planar separator theorem is a form of isoperimetric inequality for planar graphs, that states that any planar graph can be split into smaller pieces by removing a small number of vertices. Specifically, the removal of vertices from an n-vertex graph can partition the graph into disjoint subgraphs each of which has at most vertices.

In theoretical computer science and network routing, Suurballe's algorithm is an algorithm for finding two disjoint paths in a nonnegatively-weighted directed graph, so that both paths connect the same pair of vertices and have minimum total length. The algorithm was conceived by John W. Suurballe and published in 1974. The main idea of Suurballe's algorithm is to use Dijkstra's algorithm to find one path, to modify the weights of the graph edges, and then to run Dijkstra's algorithm a second time. The output of the algorithm is formed by combining these two paths, discarding edges that are traversed in opposite directions by the paths, and using the remaining edges to form the two paths to return as the output. The modification to the weights is similar to the weight modification in Johnson's algorithm, and preserves the non-negativity of the weights while allowing the second instance of Dijkstra's algorithm to find the correct second path.

<span class="mw-page-title-main">Top tree</span> Data structure

A top tree is a data structure based on a binary tree for unrooted dynamic trees that is used mainly for various path-related operations. It allows simple divide-and-conquer algorithms. It has since been augmented to maintain dynamically various properties of a tree such as diameter, center and median.

<span class="mw-page-title-main">Widest path problem</span> Path-finding using high-weight graph edges

In graph algorithms, the widest path problem is the problem of finding a path between two designated vertices in a weighted graph, maximizing the weight of the minimum-weight edge in the path. The widest path problem is also known as the maximum capacity path problem. It is possible to adapt most shortest path algorithms to compute widest paths, by modifying them to use the bottleneck distance instead of path length. However, in many cases even faster algorithms are possible.

The expected linear time MST algorithm is a randomized algorithm for computing the minimum spanning forest of a weighted graph with no isolated vertices. It was developed by David Karger, Philip Klein, and Robert Tarjan. The algorithm relies on techniques from Borůvka's algorithm along with an algorithm for verifying a minimum spanning tree in linear time. It combines the design paradigms of divide and conquer algorithms, greedy algorithms, and randomized algorithms to achieve expected linear performance.

References

  1. Everything about Bottleneck Spanning Tree
  2. Murali, T. M. (2009), Applications of Minimum Spanning Trees (PDF)
  3. in question 3 you have a proof for this claim (PDF)
  4. 1 2 3 4 5 Traboulsi, Ahmad (2014), Bottleneck Spanning Trees (PDF), archived from the original (PDF) on 2016-03-04, retrieved 2014-12-28
  5. 1 2 Camerini, P.M. (1978), "The min-max spanning tree problem and some extensions", Information Processing Letters , 7 (1): 10–14, doi:10.1016/0020-0190(78)90030-3
  6. Cui, Yuxiang (2013), Minimum Bottleneck Spanning Tree (PDF), archived from the original (PDF) on 2016-03-04, retrieved 2014-12-28
  7. 1 2 Gabow, Harold N; Tarjan, Robert E (1988). "Algorithms for two bottleneck optimization problems". Journal of Algorithms. 9 (3): 411–417. doi:10.1016/0196-6774(88)90031-4. ISSN   0196-6774.