In metric geometry and computational geometry, a minimum-diameter spanning tree of a finite set of points in a metric space is a spanning tree in which the diameter (the longest path length in the tree between two of its points) is as small as possible. [1]
It is always possible to find a minimum-diameter spanning tree with one or two vertices that are not leaves. This can be proven by transforming any other tree into a tree of this special form, without increasing its diameter. To do so, consider the longest path in any given tree (its diameter path), and the vertex or edge at the midpoint of this path. If there is a vertex at the midpoint, it is the non-leaf vertex of a star, whose diameter is at most that of the given tree. If the midpoint is interior to an edge of the given tree, then there exists a tree that includes this edge, and in which every remaining vertex is a leaf connected to the endpoint of this edge that is nearest in the given tree, with diameter at most that of the given tree. [1]
Because of this special form, it is possible to construct a minimum-diameter spanning tree of points in time , assuming that the distance between two points can be computed in constant time. To do so, test all candidates for the single point or pair of points that are not leaves. Each single point can be tested in time. Each pair of points can also be tested in , after a precomputation step in which, for each point, the other points are sorted by their distance from it. To test a pair of points, start with a tree in which all remaining points are attached to one point of the pair, and then in decreasing order by distance from that point, reattach these points one at a time to the other point of the pair, keeping track of the diameter of the tree at each step. There are candidate pairs of non-leaf points, each of which can be evaluated in time , giving a total time bound of . [1]
The problem of constructing a minimum-diameter spanning tree is different from computing the diameter of the given points, the maximum pairwise distance. For some sets of points, the diameter of the points and the diameter of their minimum-diameter spanning tree are equal; for others (for instance, three equidistant points) these two distances can differ from each other by a factor of two.
For the metric space of shortest-path distances in a graph, a minimum-diameter spanning tree can also be a spanning tree of the graph, a tree whose edges all belong to the graph. However, this may require it to have more than two non-leaf vertices. In this case, the problem is equivalent to finding an absolute 1-center of the graph. This is a point in a metric space obtained from the given graph by replacing each edge by a continuous interval of the same length. That is, it can either be a vertex or it can lie partway along any edge of the given graph. Among such points, the absolute 1-center is a point minimizing the maximum distance to all vertices. The shortest-path tree from this point to all vertices in the graph is a minimum-diameter spanning tree of the graph. [2] The absolute 1-center problem was introduced long before the first study of the minimum-diameter spanning tree problem, [2] [3] and in a graph with vertices and edges it can be solved in time . [2] [4]
The exact solution of the minimum-diameter spanning tree problem, in the Euclidean plane, can be sped up from to , at the expense of using complicated range search data structures. The same method extends to higher dimensions, with smaller reductions in the exponent compared to the cubic algorithm. In dimensions, the time bound for this method is
A polynomial-time approximation scheme is known for the minimum-diameter spanning tree in the plane. For any , one can find a tree whose diameter is at most times the optimum, in time . The algorithm involves approximating the input by the points of a coarse grid, chosen to give the best tree among a small number of grid orientations. [6]
For points in the Euclidean plane, the minimum-diameter spanning tree problem can also be approximated by the minimum-sum dipolar spanning tree. This is a tree having two non-leaf vertices, minimizing the sum of two quantities: the distance between the two non-leaf vertices, and the largest distance from a leaf vertex to the closer of the two non-leaf vertices. This approximation can be found in time , and achieves an approximation ratio of . [7]
For the minimum-diameter tree among trees with only one non-leaf vertex, the non-leaf vertex of the tree is the 1-center of the points.
If additional Steiner points are allowed to be added to the given set of points, their addition may reduce the diameter. In this case, a minimum-diameter Steiner spanning tree exists with only one non-leaf vertex, a Steiner point at the center of the smallest bounding sphere of the points. Its diameter is twice the radius of this sphere. For points in a Euclidean space of bounded dimension, this sphere and this tree can be found in linear time using algorithms for the smallest-circle problem and its generalizations. [1]
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.
Dijkstra's algorithm is an algorithm for finding the shortest paths between nodes in a weighted graph, which may represent, for example, a road network. It was conceived by computer scientist Edsger W. Dijkstra in 1956 and published three years later.
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.
In graph theory, a component of an undirected graph is a connected subgraph that is not part of any larger connected subgraph. The components of any graph partition its vertices into disjoint sets, and are the induced subgraphs of those sets. A graph that is itself connected has exactly one component, consisting of the whole graph. Components are sometimes called connected components.
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.
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 combinatorial mathematics, the Steiner tree problem, or minimum Steiner tree problem, named after Jakob Steiner, is an umbrella term for a class of problems in combinatorial optimization. While Steiner tree problems may be formulated in a number of settings, they all require an optimal interconnect for a given set of objects and a predefined objective function. One well-known variant, which is often used synonymously with the term Steiner tree problem, is the Steiner tree problem in graphs. Given an undirected graph with non-negative edge weights and a subset of vertices, usually referred to as terminals, the Steiner tree problem in graphs requires a tree of minimum weight that contains all terminals and minimizes the total weight of its edges. Further well-known variants are the Euclidean Steiner tree problem and the rectilinear minimum Steiner tree problem.
In the mathematical field of graph theory, the distance between two vertices in a graph is the number of edges in a shortest path connecting them. This is also known as the geodesic distance or shortest-path distance. Notice that there may be more than one shortest path between two vertices. If there is no path connecting the two vertices, i.e., if they belong to different connected components, then conventionally the distance is defined as infinite.
A Euclidean minimum spanning tree of a finite set of points in the Euclidean plane or higher-dimensional Euclidean space connects the points by a system of line segments with the points as endpoints, minimizing the total length of the segments. In it, any two points can reach each other along a path through the line segments. It can be found as the minimum spanning tree of a complete graph with the points as vertices and the Euclidean distances between points as edge weights.
Johnson's algorithm is a way to find the shortest paths between all pairs of vertices in an edge-weighted directed graph. It allows some of the edge weights to be negative numbers, but no negative-weight cycles may exist. It works by using the Bellman–Ford algorithm to compute a transformation of the input graph that removes all negative weights, allowing Dijkstra's algorithm to be used on the transformed graph. It is named after Donald B. Johnson, who first published the technique in 1977.
In graph theory, a connected dominating set and a maximum leaf spanning tree are two closely related structures defined on an undirected graph.
The Christofides algorithm or Christofides–Serdyukov algorithm is an algorithm for finding approximate solutions to the travelling salesman problem, on instances where the distances form a metric space . It is an approximation algorithm that guarantees that its solutions will be within a factor of 3/2 of the optimal solution length, and is named after Nicos Christofides and Anatoliy Serdyukov. Christofides published the algorithm in 1976; Serdyukov discovered it independently in 1976 but published it in 1978.
A geometric spanner or a t-spanner graph or a t-spanner was initially introduced as a weighted graph over a set of points as its vertices for which there is a t-path between any pair of vertices for a fixed parameter t. A t-path is defined as a path through the graph with weight at most t times the spatial distance between its endpoints. The parameter t is called the stretch factor or dilation factor of the spanner.
In graph theory and theoretical computer science, the longest path problem is the problem of finding a simple path of maximum length in a given graph. A path is called simple if it does not have any repeated vertices; the length of a path may either be measured by its number of edges, or by the sum of the weights of its edges. In contrast to the shortest path problem, which can be solved in polynomial time in graphs without negative-weight cycles, the longest path problem is NP-hard and the decision version of the problem, which asks whether a path exists of at least some given length, is NP-complete. This means that the decision problem cannot be solved in polynomial time for arbitrary graphs unless P = NP. Stronger hardness results are also known showing that it is difficult to approximate. However, it has a linear time solution for directed acyclic graphs, which has important applications in finding the critical path in scheduling problems.
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 graph theory, a caterpillar or caterpillar tree is a tree in which all the vertices are within distance 1 of a central path.
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.
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.
In network theory, the Wiener connector is a means of maximizing efficiency in connecting specified "query vertices" in a network. Given a connected, undirected graph and a set of query vertices in a graph, the minimum Wiener connector is an induced subgraph that connects the query vertices and minimizes the sum of shortest path distances among all pairs of vertices in the subgraph. In combinatorial optimization, the minimum Wiener connector problem is the problem of finding the minimum Wiener connector. It can be thought of as a version of the classic Steiner tree problem, where instead of minimizing the size of the tree, the objective is to minimize the distances in the subgraph.
In computational geometry, the diameter of a finite set of points or of a polygon is its diameter as a set, the largest distance between any two points. The diameter is always attained by two points of the convex hull of the input. A trivial brute-force search can be used to find the diameter of points in time but faster algorithms are possible for points in low dimensions.