construct a nearest neighbor or k-nearest neighbor graph
construct a farthest neighbor or k-farthest neighbor graph
NearestNeighborGraph( P, opts )
NearestNeighborGraph( P, k, opts )
FarthestNeighborGraph( P, opts )
FarthestNeighborGraph( P, k, opts )
Matrix or list of lists representing set of points
(optional) one or more options as specified below
directed = truefalse
Specifies whether the resulting graph should be directed or undirected. If directed, an arc exists from a to b if b is among the k nearest or furthest neighbors, depending on which routine was called. If undirected, an edge exists between a to b whenever an arc would exist in either direction in the directed case. The default is false.
metric = positive number or one of the symbols Euclidean, Manhattan, discrete, geographical, or infinity.
Specifies the metric to be used in computing distances. The default is 2, the metric induced by the Euclidean norm.
For more information on norms, see LinearAlgebra[Norm].
norm = positive real or one of Euclidean, Manhattan, or infinity.
An alias for the metric option.
vertices = list of integers, strings or symbols
Specifies the vertices to be used in the generated graph.
weighted = true or false
If weighted=true, the result is a weighted graph whose edge weights correspond to the distance between points using the specified norm. Default is false.
The NearestNeighborGraph(P,opts) command returns a nearest neighbor graph for the point set P.
The NearestNeighborGraph(P,k,opts) command returns a k-nearest neighbor graph for the point set P.
The FarthestNeighborGraph(P,opts) command returns a farthest neighbor graph for the point set P.
The FarthestNeighborGraph(P,k,opts) command returns a k-farthest neighbor graph for the point set P.
The parameter P must be a Matrix or list of lists representing a set of points.
Let P be a set of points in an arbitrary number of dimensions and p be a norm.
The directed nearest neighbor graph is the graph in which an arc exists from a to b if b is the nearest point to a in P according to norm p.
The directed k-nearest neighbor graph is the directed graph in which an arc exists from a to b if b is among the k nearest to a in P according to norm p.
The undirected nearest neighbor graph and nearest neighbor graphs are obtained from their directed equivalents by simply converting all arcs to undirected edges.
The farthest and k-farthest neighbor graphs are defined similarly by replacing "nearest" with "farthest" in the definition.
The nearest neighbor graph is not guaranteed to be connected.
The (undirected) nearest neighbor graph has the following relationships with other graphs:
The nearest neighbor graph is a subgraph of the Gabriel graph.
The nearest neighbor graph is a subgraph of the sphere of influence graph.
Generate a set of random two-dimensional points and draw a nearest neighbor graph and a 2-nearest neighbor graph.
points ≔ LinearAlgebra:-RandomMatrix⁡60,2,generator=0..100.,datatype=float8
NNG ≔ NearestNeighborGraph⁡points
NNG≔Graph 1: an undirected graph with 60 vertices and 42 edge(s)
Generate a directed k nearest neighbor graph for k=3 on the same data.
kNNG ≔ NearestNeighborGraph⁡points,3,directed
kNNG≔Graph 2: a directed graph with 60 vertices and 180 arc(s)
Draw the farthest neighbor graph on the same data.
FNG ≔ FarthestNeighborGraph⁡points
FNG≔Graph 3: an undirected graph with 60 vertices and 58 edge(s)
The GraphTheory[GeometricGraphs][NearestNeighborGraph] and GraphTheory[GeometricGraphs][FarthestNeighborGraph] commands were introduced in Maple 2020.
For more information on Maple 2020 changes, see Updates in Maple 2020.
The metric option was introduced in Maple 2023.
For more information on Maple 2023 changes, see Updates in Maple 2023.
Download Help Document