Graph Algorithms

Algorithms exist in one of three tiers of maturity:

  • Production-quality

    • Indicates that the algorithm has been tested with regards to stability and scalability.

    • Algorithms in this tier are prefixed with gds.<algorithm>.

  • Beta

    • Indicates that the algorithm is a candidate for the production-quality tier.

    • Algorithms in this tier are prefixed with gds.beta.<algorithm>.

  • Alpha

    • Indicates that the algorithm is experimental and might be changed or removed at any time.

    • Algorithms in this tier are prefixed with gds.alpha.<algorithm>.

1. Production-quality tier

Table 1. List of all production-quality algorithms in the GDS library. Functions are written in italic.
Algorithm name Operation

Label Propagation

gds.labelPropagation.mutate

gds.labelPropagation.mutate.estimate

gds.labelPropagation.write

gds.labelPropagation.write.estimate

gds.labelPropagation.stream

gds.labelPropagation.stream.estimate

gds.labelPropagation.stats

gds.labelPropagation.stats.estimate

Louvain

gds.louvain.mutate

gds.louvain.mutate.estimate

gds.louvain.write

gds.louvain.write.estimate

gds.louvain.stream

gds.louvain.stream.estimate

gds.louvain.stats

gds.louvain.stats.estimate

Node Similarity

gds.nodeSimilarity.mutate

gds.nodeSimilarity.mutate.estimate

gds.nodeSimilarity.write

gds.nodeSimilarity.write.estimate

gds.nodeSimilarity.stream

gds.nodeSimilarity.stream.estimate

gds.nodeSimilarity.stats

gds.nodeSimilarity.stats.estimate

PageRank

gds.pageRank.mutate

gds.pageRank.mutate.estimate

gds.pageRank.write

gds.pageRank.write.estimate

gds.pageRank.stream

gds.pageRank.stream.estimate

gds.pageRank.stats

gds.pageRank.stats.estimate

Weakly Connected Components

gds.wcc.mutate

gds.wcc.mutate.estimate

gds.wcc.write

gds.wcc.write.estimate

gds.wcc.stream

gds.wcc.stream.estimate

gds.wcc.stats

gds.wcc.stats.estimate

Triangle Count

gds.triangleCount.stream

gds.triangleCount.stream.estimate

gds.triangleCount.stats

gds.triangleCount.stats.estimate

gds.triangleCount.write

gds.triangleCount.write.estimate

gds.triangleCount.mutate

gds.triangleCount.mutate.estimate

Local Clustering Coefficient

gds.localClusteringCoefficient.stream

gds.localClusteringCoefficient.stream.estimate

gds.localClusteringCoefficient.stats

gds.localClusteringCoefficient.stats.estimate

gds.localClusteringCoefficient.write

gds.localClusteringCoefficient.write.estimate

gds.localClusteringCoefficient.mutate

gds.localClusteringCoefficient.mutate.estimate

Betweenness Centrality

gds.betweenness.stream

gds.betweenness.stream.estimate

gds.betweenness.stats

gds.betweenness.stats.estimate

gds.betweenness.mutate

gds.betweenness.mutate.estimate

gds.betweenness.write

gds.betweenness.write.estimate

Fast Random Projection

gds.fastRP.mutate

gds.fastRP.mutate.estimate

gds.fastRP.stats

gds.fastRP.stats.estimate

gds.fastRP.stream

gds.fastRP.stream.estimate

gds.fastRP.write

gds.fastRP.write.estimate

Degree Centrality

gds.degree.mutate

gds.degree.mutate.estimate

gds.degree.stats

gds.degree.stats.estimate

gds.degree.stream

gds.degree.stream.estimate

gds.degree.write

gds.degree.write.estimate

ArticleRank

gds.articleRank.mutate

gds.articleRank.mutate.estimate

gds.articleRank.write

gds.articleRank.write.estimate

gds.articleRank.stream

gds.articleRank.stream.estimate

gds.articleRank.stats

gds.articleRank.stats.estimate

Eigenvector

gds.eigenvector.mutate

gds.eigenvector.mutate.estimate

gds.eigenvector.write

gds.eigenvector.write.estimate

gds.eigenvector.stream

gds.eigenvector.stream.estimate

gds.eigenvector.stats

gds.eigenvector.stats.estimate

All Shortest Paths Delta-Stepping

gds.allShortestPaths.delta.stream

gds.allShortestPaths.delta.stream.estimate

gds.allShortestPaths.delta.write

gds.allShortestPaths.delta.write.estimate

gds.allShortestPaths.delta.mutate

gds.allShortestPaths.delta.mutate.estimate

gds.allShortestPaths.delta.stats

gds.allShortestPaths.delta.stats.estimate

Shortest Path Dijkstra

gds.shortestPath.dijkstra.stream

gds.shortestPath.dijkstra.stream.estimate

gds.shortestPath.dijkstra.write

gds.shortestPath.dijkstra.write.estimate

gds.shortestPath.dijkstra.mutate

gds.shortestPath.dijkstra.mutate.estimate

All Shortest Paths Dijkstra

gds.allShortestPaths.dijkstra.stream

gds.allShortestPaths.dijkstra.stream.estimate

gds.allShortestPaths.dijkstra.write

gds.allShortestPaths.dijkstra.write.estimate

gds.allShortestPaths.dijkstra.mutate

gds.allShortestPaths.dijkstra.mutate.estimate

Shortest Paths Yens

gds.shortestPath.yens.stream

gds.shortestPath.yens.stream.estimate

gds.shortestPath.yens.write

gds.shortestPath.yens.write.estimate

gds.shortestPath.yens.mutate

gds.shortestPath.yens.mutate.estimate

Shortest Path AStar

gds.shortestPath.astar.stream

gds.shortestPath.astar.stream.estimate

gds.shortestPath.astar.write

gds.shortestPath.astar.write.estimate

gds.shortestPath.astar.mutate

gds.shortestPath.astar.mutate.estimate

Similarity functions

gds.similarity.cosine

gds.similarity.euclidean

gds.similarity.euclideanDistance

gds.similarity.jaccard

gds.similarity.overlap

gds.similarity.pearson

K-Nearest Neighbors

gds.knn.mutate

gds.knn.mutate.estimate

gds.knn.stats

gds.knn.stats.estimate

gds.knn.stream

gds.knn.stream.estimate

gds.knn.write

gds.knn.write.estimate

BFS

gds.bfs.mutate

gds.bfs.mutate.estimate

gds.bfs.stream

gds.bfs.stream.estimate

gds.bfs.stats

gds.bfs.stats.estimate

Depth First Search

gds.dfs.mutate

gds.dfs.mutate.estimate

gds.dfs.stream

gds.dfs.stream.estimate

2. Beta tier

Table 2. List of all beta algorithms in the GDS library. Functions are written in italic.
Algorithm name Operation

Closeness Centrality

gds.beta.closeness.mutate

gds.beta.closeness.stats

gds.beta.closeness.stream

gds.beta.closeness.write

GraphSAGE

gds.beta.graphSage.stream

gds.beta.graphSage.stream.estimate

gds.beta.graphSage.mutate

gds.beta.graphSage.mutate.estimate

gds.beta.graphSage.write

gds.beta.graphSage.write.estimate

gds.beta.graphSage.train

gds.beta.graphSage.train.estimate

K1Coloring

gds.beta.k1coloring.mutate

gds.beta.k1coloring.mutate.estimate

gds.beta.k1coloring.stats

gds.beta.k1coloring.stats.estimate

gds.beta.k1coloring.stream

gds.beta.k1coloring.stream.estimate

gds.beta.k1coloring.write

gds.beta.k1coloring.write.estimate

Modularity Optimization

gds.beta.modularityOptimization.mutate

gds.beta.modularityOptimization.mutate.estimate

gds.beta.modularityOptimization.stream

gds.beta.modularityOptimization.stream.estimate

gds.beta.modularityOptimization.write

gds.beta.modularityOptimization.write.estimate

Node2Vec

gds.beta.node2vec.mutate

gds.beta.node2vec.mutate.estimate

gds.beta.node2vec.stream

gds.beta.node2vec.stream.estimate

gds.beta.node2vec.write

gds.beta.node2vec.write.estimate

Random Walk

gds.beta.randomWalk.stream

gds.beta.randomWalk.stream.estimate

3. Alpha tier

Table 3. List of all alpha algorithms in the GDS library. Functions are written in italic.
Algorithm name Operation

All Shortest Paths

gds.alpha.allShortestPaths.stream

Approximate Maximum k-cut

gds.alpha.maxkcut.mutate

gds.alpha.maxkcut.mutate.estimate

gds.alpha.maxkcut.stream

gds.alpha.maxkcut.stream.estimate

Harmonic Centrality

gds.alpha.closeness.harmonic.stream

gds.alpha.closeness.harmonic.write

Collapse Path

gds.alpha.collapsePath.mutate

HITS

gds.alpha.hits.mutate

gds.alpha.hits.mutate.estimate

gds.alpha.hits.stats

gds.alpha.hits.stats.estimate

gds.alpha.hits.stream

gds.alpha.hits.stream.estimate

gds.alpha.hits.write

gds.alpha.hits.write.estimate

Strongly Connected Components

gds.alpha.scc.stream

gds.alpha.scc.write

Scale Properties

gds.alpha.scaleProperties.mutate

gds.alpha.scaleProperties.stream

Speaker-Listener Label Propagation

gds.alpha.sllpa.mutate

gds.alpha.sllpa.mutate.estimate

gds.alpha.sllpa.stats

gds.alpha.sllpa.stats.estimate

gds.alpha.sllpa.stream

gds.alpha.sllpa.stream.estimate

gds.alpha.sllpa.write

gds.alpha.sllpa.write.estimate

Spanning Tree

gds.alpha.spanningTree.write

gds.alpha.spanningTree.kmax.write

gds.alpha.spanningTree.kmin.write

gds.alpha.spanningTree.maximum.write

gds.alpha.spanningTree.minimum.write

Adamic Adar

gds.alpha.linkprediction.adamicAdar

Common Neighbors

gds.alpha.linkprediction.commonNeighbors

Preferential Attachment

gds.alpha.linkprediction.preferentialAttachment

Preferential Attachment

gds.alpha.linkprediction.resourceAllocation

Same Community

gds.alpha.linkprediction.sameCommunity

Total Neighbors

gds.alpha.linkprediction.totalNeighbors

Split Relationships

gds.alpha.ml.splitRelationships.mutate

Triangle Listing

gds.alpha.triangles

Influence Maximization - Greedy

gds.alpha.influenceMaximization.greedy.stream

Influence Maximization - CELF

gds.alpha.influenceMaximization.celf.stream

Conductance

gds.alpha.conductance.stream

Kmeans

gds.alpha.kmeans.mutate

gds.alpha.kmeans.stats

gds.alpha.kmeans.stream

gds.alpha.kmeans.write

Filtered KNN

gds.alpha.knn.filtered.mutate

gds.alpha.knn.filtered.stats

gds.alpha.knn.filtered.stream

gds.alpha.knn.filtered.write

Leiden

gds.alpha.leiden.mutate

gds.alpha.leiden.stats

gds.alpha.leiden.stream

gds.alpha.leiden.write

Filtered NodeSimilarity

gds.alpha.nodeSimilarity.filtered.mutate

gds.alpha.nodeSimilarity.filtered.mutate.estimate

gds.alpha.nodeSimilarity.filtered.stats

gds.alpha.nodeSimilarity.filtered.stats.estimate

gds.alpha.nodeSimilarity.filtered.stream

gds.alpha.nodeSimilarity.filtered.stream.estimate

gds.alpha.nodeSimilarity.filtered.write

gds.alpha.nodeSimilarity.filtered.write.estimate