Graphology Shortest Path
Shortest path functions for graphology
.
Installation
npm install graphology-shortest-path
Usage
Unweighted
shortestPath
Returns the shortest path in the graph between source & target or null
if such a path does not exist (same as bidirectional).
If you only pass the source & omit the target, will return a map of every shortest path between the source & all the nodes of the graph (same as singleSource).
import shortestPath from 'graphology-shortest-path';
import shortestPath from 'graphology-shortest-path/unweighted';
const path = shortestPath(graph, source, target);
const paths = shortestPath(graph, source);
Arguments
- graph Graph: a
graphology
instance. - source any: source node.
- target ?any: optionally, target node.
bidirectional
Returns the shortest path in the graph between source & target or null
if such a path does not exist.
import {bidirectional} from 'graphology-shortest-path';
import {bidirectional} from 'graphology-shortest-path/unweighted';
const path = bidirectional(graph, source, target);
Arguments
- graph Graph: a
graphology
instance. - source any: source node.
- target any: target node.
singleSource
Return a map of every shortest path between the given source & all the nodes of the graph.
import {singleSource} from 'graphology-shortest-path';
import {singleSource} from 'graphology-shortest-path/unweighted';
const paths = singleSource(graph, source);
Arguments
- graph Graph: a
graphology
instance. - source any: source node.
singleSourceLength
Return a map of every shortest path length between the given source & all the nodes of the graph.
import {singleSourceLength} from 'graphology-shortest-path';
import {singleSourceLength} from 'graphology-shortest-path/unweighted';
const paths = singleSourceLength(graph, source);
Arguments
- graph Graph: a
graphology
instance. - source any: source node.
undirectedSingleSourceLength
Return a map of every shortest path length between the given source & all the nodes of the graph. This is basically the same as singleSourceLength except that it will consider any given graph as undirected when traversing.
import {undirectedSingleSourceLength} from 'graphology-shortest-path';
import {undirectedSingleSourceLength} from 'graphology-shortest-path/unweighted';
const paths = undirectedSingleSourceLength(graph, source);
Arguments
- graph Graph: a
graphology
instance. - source any: source node.
brandes
Apply Ulrik Brandes' method to collect single source shortest paths from the given node. This is mostly used to compute betweenness centrality.
import {brandes} from 'graphology-shortest-path';
import {brandes} from 'graphology-shortest-path/unweighted';
const [S, P, sigma] = brandes(graph, source);
Arguments
- graph Graph: a
graphology
instance. - source any: source node.
Dijkstra
bidirectional
Returns the shortest path in the weighted graph between source & target or null
if such a path does not exist.
import {dijkstra} from 'graphology-shortest-path';
import dijkstra from 'graphology-shortest-path/dijkstra';
const path = dijkstra.bidirectional(graph, source, target);
const paths = dijkstra.bidirectional(graph, source, target, 'customWeight');
Arguments
- graph Graph: a
graphology
instance. - source any: source node.
- target any: target node.
- weightAttribute ?string [
weight
]: name of the weight attribute.
singleSource
Return a map of every shortest path between the given source & all the nodes of the weighted graph.
import {dijkstra} from 'graphology-shortest-path';
import dijkstra from 'graphology-shortest-path/dijkstra';
const paths = dijkstra.singleSource(graph, source);
const paths = dijkstra.singleSource(graph, source, 'customWeight');
Arguments
- graph Graph: a
graphology
instance. - source any: source node.
- weightAttribute ?string [
weight
]: name of the weight attribute.
brandes
Apply Ulrik Brandes' method to collect single source shortest paths from the given node. This is mostly used to compute betweenness centrality.
import {dijkstra} from 'graphology-shortest-path';
import dijkstra from 'graphology-shortest-path/dijkstra';
const [S, P, sigma] = dijkstra.brandes(graph, source);
const [S, P, sigma] = dijkstra.brandes(graph, source, 'customWeight');
Arguments
- graph Graph: a
graphology
instance. - source any: source node.
- weightAttribute ?string [
weight
]: name of the weight attribute.