# GraphDistanceMatrix

gives the matrix of distances between vertices for the graph g.

GraphDistanceMatrix[g,d]

gives the matrix of distances between vertices of maximal distance d in the graph g.

GraphDistanceMatrix[{vw,},]

uses rules vw to specify the graph g.

# Details and Options • GraphDistanceMatrix returns a SparseArray object or an ordinary matrix.
• The entries of the distance matrix dij give the shortest distance from vertex vi to vertex vj.
• The diagonal entries dii of the distance matrix are always zero.
• The entry dij is Infinity () if there is no path from vertex vi to vertex vj.
• In GraphDistanceMatrix[g,d], an entry dij will be Infinity if there is no path from vertex vi to vertex vj in d steps or less.
• The vertices vi are assumed to be in the order given by VertexList[g].
• For a weighted graph, the distance is the minimum of the sum of weights along any path from vertex vi to vertex vj.
• The following options can be given:
•  EdgeWeight Automatic weight for each edge Method Automatic method to use
• Possible Method settings include "Dijkstra", "FloydWarshall", and "Johnson".

# Examples

open allclose all

## Basic Examples(1)

Give the distance matrix for a Petersen graph:

## Scope(8)

GraphDistanceMatrix works with undirected graphs:

Directed graphs:

Weighted graphs:

Multigraphs:

Mixed graphs:

Use rules to specify the graph:

Extract a single matrix column for a graph of modest size:

Using GraphDistance to compute the same result takes more time:

GraphDistanceMatrix works with large graphs:

When just a single column is needed and the graph is large, using GraphDistance is faster:

## Options(6)

### Method(6)

The method is automatically chosen depending on input:

"UnitWeight" method will use the weight 1 for every edge:

"Dijkstra" can be used for graphs with positive edge weights only:

"FloydWarshall" can be used for directed graphs including negative edge weights:

"Johnson" can be used for directed graphs including negative edge weights:

"Johnson" can be faster than the "FloydWarshall" method on sparse graphs:

## Applications(2)

Find the vertex eccentricity, taking the entire graph into account:

For the strongly connected graph, the result is in agreement with VertexEccentricity:

Find the vertex eccentricity of every vertex in a connected graph:

Check the result:

## Properties & Relations(5)

Rows and columns of the distance matrix follow the order given by VertexList:

The diagonal entries of the distance matrix are always zero:

The distance matrix can be found using GraphDistance:

In a connected graph, the VertexEccentricity can be obtained from the distance matrix:

The distance between two vertices belonging to different connected components is Infinity:

## Possible Issues(2)

The matrix indices may not have the expected correspondence to vertices:

The distance from 2 to 3 is not at the expected matrix position:

The reason is that vertices are not in the expected order:

Solve the problem by listing vertices explicitly when calling functions such as Graph:

Now the distance is found at the expected position:

"BellmanFord" is not a valid Method option: Use "FloydWarshall", "Johnson", or the default choice of Method instead: