GraphTheory[GeometricGraphs] - Maple Programming Help

Online Help

All Products    Maple    MapleSim


Home : Support : Online Help : Mathematics : Discrete Mathematics : Graph Theory : GraphTheory Package : GeometricGraphs : GraphTheory/GeometricGraphs/NearestNeighborGraph

GraphTheory[GeometricGraphs]

  

NearestNeighborGraph

  

construct a nearest neighbor or k-nearest neighbor graph

  

FarthestNeighborGraph

  

construct a farthest neighbor or k-farthest neighbor graph

 

Calling Sequence

Parameters

Options

Description

Definition

Examples

Compatibility

Calling Sequence

NearestNeighborGraph( P, opts )

NearestNeighborGraph( P, k, opts )

FarthestNeighborGraph( P, opts )

FarthestNeighborGraph( P, k, opts )

Parameters

P

-

Matrix or list of lists representing set of points

k

-

(optional) integer

opts

-

(optional) one or more options as specified below

Options

• 

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.

• 

norm : positive real or one of Euclidean or infinity.

  

Specifies the norm to be used in computing distances. The default is 2, the Euclidean norm.

  

For more information on norms, see LinearAlgebra[Norm].

• 

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.

Description

• 

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.

Definition

• 

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.

Examples

Generate a set of random two-dimensional points and draw a nearest neighbor graph and a 2-nearest neighbor graph.

withGraphTheory:

withGeometricGraphs:

pointsLinearAlgebra:-RandomMatrix60,2,generator=0..100.,datatype=float8

(1)

NNGNearestNeighborGraphpoints

NNGGraph 1: an undirected unweighted graph with 60 vertices and 42 edge(s)

(2)

DrawGraphNNG

Generate a directed k nearest neighbor graph for k=3 on the same data.

kNNGNearestNeighborGraphpoints,3,directed

kNNGGraph 2: a directed unweighted graph with 60 vertices and 180 arc(s)

(3)

DrawGraphkNNG

Draw the farthest neighbor graph on the same data.

FNGFarthestNeighborGraphpoints

FNGGraph 3: an undirected unweighted graph with 60 vertices and 58 edge(s)

(4)

DrawGraphFNG

Compatibility

• 

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.

See Also

GeometricGraphs

GraphTheory[GeometricGraphs][SphereOfInfluenceGraph]