|
| 1 | + |
| 2 | +Algorithms in GraphBLAS vs Kepner & Gilbert's book: |
| 3 | + |
| 4 | +Graph partitioning |
| 5 | + we already have the Fiedler vector, graph coarsening, pseudo-peripheral |
| 6 | + nodes, and more, as useful tools. See p38 of Kepner & Gilbert (KG). |
| 7 | + |
| 8 | +Graph generators |
| 9 | + we have LAGraph_Random_Matrix (Erdos/Renyi). |
| 10 | + need: RMAT, preferential attachment, 2D/3D mesh generator, ... |
| 11 | + see also stochastic Kronecker graphs (ch 9 and section 10.3 of KG). |
| 12 | + |
| 13 | +Bellman Ford: we have delta-stepping sssp, but we could use an sssp that |
| 14 | + finds the shortest-path tree. See p48 of KG. |
| 15 | + |
| 16 | +Floyd-Warshall, all-pairs shortest paths: a very easy algorithm, just |
| 17 | + costly |
| 18 | + |
| 19 | +block edge-betweenness centrality: to be fast enough, will likely need some |
| 20 | + updates to the internal kernels in GraphBLAS |
| 21 | + |
| 22 | +tensor operations: can these be done in LAGraph, with GraphBLAS underneath? |
| 23 | + see chap 7 of KG and tensortoolbox.org. |
| 24 | + |
| 25 | +graph visualization: |
| 26 | + interface to graphviz, |
| 27 | + or write our own energy minimization (or both) |
| 28 | + |
| 29 | +ch 12 of KG: more centrality metrics: |
| 30 | + closeness, stress, |
| 31 | + |
| 32 | + |
| 33 | +Algorithms in NetworkX: (as compared to LAGraph) |
| 34 | + approximations and heuristics: |
| 35 | + we only have MIS and diameter; many more could be done |
| 36 | + assortivity: we have none of these ("none", below) |
| 37 | + asteroidal: none |
| 38 | + bipartite: we have maximum bipartite matching |
| 39 | + boundary: none |
| 40 | + brides: none; |
| 41 | + a chain decomposition looks hard (requires a DFS) |
| 42 | + broadcast (on a tree): none |
| 43 | + centrality: |
| 44 | + we have betweeness centralities (node and edge), need many more |
| 45 | + some are already in python graphblas |
| 46 | + chordal: none |
| 47 | + clique: none |
| 48 | + clustering: we have square clustering, Markov clustering, |
| 49 | + peer pressure clustering, local-clustering coefficents, and triangle |
| 50 | + counts; need many more |
| 51 | + coloring: we have many of these, but not all strategies |
| 52 | + communicability: none |
| 53 | + communities: we have CDLP, and Louvain in progress |
| 54 | + components: we have strongly connected components and connected components |
| 55 | + of an undirected graph; many more needed |
| 56 | + connectivity: none |
| 57 | + cores: we have k-cores and k-truss; many more needed |
| 58 | + covering: none; but we have the related maximum matching method it uses |
| 59 | + cycles: none |
| 60 | + cuts: none, but many in the python graphblas algorithms |
| 61 | + d-separation: none |
| 62 | + dags: none |
| 63 | + distance measures: we have diameter, periphery, and eccentricity |
| 64 | + distance-regular graphs: none |
| 65 | + dominance: none |
| 66 | + dominating sets: none |
| 67 | + efficiency: none, but appears in python graphblas algo |
| 68 | + eulerian: none |
| 69 | + maxflow: yes, but not min cut, and no capacity_scaling |
| 70 | + hashing: none, but isomorphism in progress |
| 71 | + graphical deg sequence: none |
| 72 | + hierarchy: none |
| 73 | + hybrid: none |
| 74 | + isolates: none, but very simple; also in python graphblas algo |
| 75 | + isomorphism: in progress |
| 76 | + link analysis: done; we have page rank and HITS |
| 77 | + link prediction: none |
| 78 | + lowest common ancestor: none |
| 79 | + matching: we have maximal matching and maximum bipartite matching; |
| 80 | + could use more variants here |
| 81 | + minors: none |
| 82 | + maximal independent set: done |
| 83 | + non-randomness: none |
| 84 | + moral graph: none |
| 85 | + node classification: none |
| 86 | + operators: none, but many are likely trivial in graphblas |
| 87 | + and some are in python graphblas algo |
| 88 | + planarity: none |
| 89 | + planar drawing: none |
| 90 | + graph polynomials: none |
| 91 | + reciprocity: none, but they are in python graphblas algo |
| 92 | + regular: none, but appear in python graphblas algo, except for |
| 93 | + k_factor |
| 94 | + rich club coefficient: done |
| 95 | + shortest paths: we have many of these, but not A*, and we don't have |
| 96 | + a method to report the shortest paths themselves (except BFS tree) |
| 97 | + similarity: none |
| 98 | + simple paths: none |
| 99 | + small world: we have random swaps |
| 100 | + s_metric: not in LAGraph but appears in python graphblas algo |
| 101 | + sparsifiers: none |
| 102 | + structural holes: none |
| 103 | + summarization: none |
| 104 | + swap: we have random double-edge swaps, but not triple edge |
| 105 | + threshold graphs: none |
| 106 | + time dependent: none |
| 107 | + tournament: none, but maybe is_tournament in progress |
| 108 | + traversal: |
| 109 | + no DFS (these would be hard in graphblas) |
| 110 | + most BFS (but missing some variants) |
| 111 | + no beam search |
| 112 | + no edge_BFS (what is this?) |
| 113 | + tree: only min spanning forest; need many more |
| 114 | + triads: none |
| 115 | + vitality: none |
| 116 | + voronoi_cells: none |
| 117 | + walks: none |
| 118 | + weiner index: none |
| 119 | + |
| 120 | +Functions in NetworkX: most would be simple in graphblas |
| 121 | + |
| 122 | +Graph Generators in NetworkX: many appear, we have very few; |
| 123 | + consider an interface to the SuiteSparse matrix collection; |
| 124 | + can use more (RMAT in particular) |
| 125 | + |
| 126 | +Linear Algebra in NetworkX: |
| 127 | + we have Fiedler vector, Laplacian matrix |
| 128 | + many other methods trivial in graphblas |
| 129 | + many methods needed here |
| 130 | + |
0 commit comments