Greedy geometric spanner

In computational geometry, a greedy geometric spanner is an undirected graph whose distances approximate the Euclidean distances among a finite set of points in a Euclidean space.

The greedy spanner was first described in the PhD thesis of Gautam Das[1] and conference paper[2] and subsequent journal paper by Ingo Althöfer et al.[3] These sources also credited Marshall Bern (unpublished) with the independent discovery of the same construction.

Greedy geometric spanners have bounded degree, a linear total number of edges, and total weight close to that of the Euclidean minimum spanning tree.

Although known construction methods for them are slow, fast approximation algorithms with similar properties are known.

[4] The greedy geometric spanner is determined from an input consisting a set of points and a parameter

The goal is to construct a graph whose shortest path distances are at most

times the geometric distances between pairs of points.

It may be constructed by a greedy algorithm that adds edges one at a time to the graph, starting from an edgeless graph with the points as its vertices.

of points, the algorithm tests whether the graph constructed so far already contains a path from

By construction, the resulting graph is a geometric spanner with stretch factor at most

pairs of points involve an instance of Dijkstra's algorithm to find a shortest path in a graph with

space to store the sorted list of pairs of points.

More careful algorithms can construct the same graph in time

[6] A construction for a variant of the greedy spanner that uses graph clustering to quickly approximate the graph distances runs in time

[7][8] The same method can be extended to spaces with bounded doubling dimension.

[4] The same greedy construction produces spanners in arbitrary metric spaces, but in Euclidean spaces it has good properties some of which do not hold more generally.

[4] The greedy geometric spanner in any metric space always contains the minimum spanning tree of its input, because the greedy construction algorithm follows the same insertion order of edges as Kruskal's algorithm for minimum spanning trees.

If the greedy spanner algorithm and Kruskal's algorithm are run in parallel, considering the same pairs of vertices in the same order, each edge added by Kruskal's algorithm will also be added by the greedy spanner algorithm, because the endpoints of the edge will not already be connected by a path.

is the number of vertices in the graph) the two algorithms produce the same output.

[3] In Euclidean spaces of bounded dimension, for any constant

[9][10][7] This property does not extend even to well-behaved metric spaces: there exist spaces with bounded doubling dimension where the greedy spanner has unbounded vertex degree.

[4] Greedy geometric spanners in bounded-dimension Euclidean spaces also have total weight at most a constant times the total weight of the Euclidean minimum spanning tree.

[9][10][7] This property remains true in spaces of bounded doubling dimension.

Greedy geometric spanner of 100 random points with stretch factor t = 2
Greedy geometric spanner of the same points with stretch factor t = 1.1