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

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

2. Beta tier

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

FastRPExtended

gds.beta.fastRPExtended.mutate

gds.beta.fastRPExtended.mutate.estimate

gds.beta.fastRPExtended.stats

gds.beta.fastRPExtended.stats.estimate

gds.beta.fastRPExtended.stream

gds.beta.fastRPExtended.stream.estimate

gds.beta.fastRPExtended.write

gds.beta.fastRPExtended.write.estimate

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

K-Nearest Neighbors

gds.beta.knn.mutate

gds.beta.knn.mutate.estimate

gds.beta.knn.stats

gds.beta.knn.stats.estimate

gds.beta.knn.stream

gds.beta.knn.stream.estimate

gds.beta.knn.write

gds.beta.knn.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

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

Breadth First Search

gds.alpha.bfs.stream

Closeness Centrality

gds.alpha.closeness.stream

gds.alpha.closeness.write

gds.alpha.closeness.harmonic.stream

gds.alpha.closeness.harmonic.write

Collapse Path

gds.alpha.collapsePath.mutate

Depth First Search

gds.alpha.dfs.stream

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

Random Walk

gds.alpha.randomWalk.stream

Strongly Connected Components

gds.alpha.scc.stream

gds.alpha.scc.write

Single Source Shortest Path

gds.alpha.shortestPath.deltaStepping.write

gds.alpha.shortestPath.deltaStepping.stream

Scale Properties

gds.alpha.scaleProperties.mutate

gds.alpha.scaleProperties.stream

Cosine Similarity

gds.alpha.similarity.cosine.stats

gds.alpha.similarity.cosine.stream

gds.alpha.similarity.cosine.write

gds.alpha.similarity.cosine

Euclidean Similarity

gds.alpha.similarity.euclidean.stats

gds.alpha.similarity.euclidean.stream

gds.alpha.similarity.euclidean.write

gds.alpha.similarity.euclidean

gds.alpha.similarity.euclideanDistance

Jaccard Similarity

gds.alpha.similarity.jaccard

Overlap Similarity

gds.alpha.similarity.overlap.stats

gds.alpha.similarity.overlap.stream

gds.alpha.similarity.overlap.write

gds.alpha.similarity.overlap

Pearson Similarity

gds.alpha.similarity.pearson.stats

gds.alpha.similarity.pearson.stream

gds.alpha.similarity.pearson.write

gds.alpha.similarity.pearson

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

Approximate Nearest Neighbours

gds.alpha.ml.ann.stream

gds.alpha.ml.ann.write

Link Prediction

gds.alpha.ml.linkPrediction.predict.mutate

gds.alpha.ml.linkPrediction.predict.mutate.estimate

gds.alpha.ml.linkPrediction.predict.stream

gds.alpha.ml.linkPrediction.predict.stream.estimate

gds.alpha.ml.linkPrediction.predict.write

gds.alpha.ml.linkPrediction.predict.write.estimate

gds.alpha.ml.linkPrediction.train

gds.alpha.ml.linkPrediction.train.estimate

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

Node Classification

gds.alpha.ml.nodeClassification.predict.mutate

gds.alpha.ml.nodeClassification.predict.mutate.estimate

gds.alpha.ml.nodeClassification.predict.stream

gds.alpha.ml.nodeClassification.predict.stream.estimate

gds.alpha.ml.nodeClassification.predict.write

gds.alpha.ml.nodeClassification.predict.write.estimate

gds.alpha.ml.nodeClassification.train

gds.alpha.ml.nodeClassification.train.estimate

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