@graphty/algorithms 1.2.0 → 1.4.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (337) hide show
  1. package/README.md +375 -276
  2. package/dist/algorithms.d.ts +42 -2
  3. package/dist/algorithms.js +11402 -2
  4. package/dist/algorithms.js.map +1 -1
  5. package/dist/src/algorithms/centrality/betweenness.d.ts +14 -0
  6. package/dist/src/algorithms/centrality/betweenness.d.ts.map +1 -1
  7. package/dist/src/algorithms/centrality/betweenness.js +144 -169
  8. package/dist/src/algorithms/centrality/betweenness.js.map +1 -1
  9. package/dist/src/algorithms/centrality/closeness.d.ts +35 -1
  10. package/dist/src/algorithms/centrality/closeness.d.ts.map +1 -1
  11. package/dist/src/algorithms/centrality/closeness.js +70 -149
  12. package/dist/src/algorithms/centrality/closeness.js.map +1 -1
  13. package/dist/src/algorithms/centrality/degree.d.ts +7 -0
  14. package/dist/src/algorithms/centrality/degree.d.ts.map +1 -1
  15. package/dist/src/algorithms/centrality/degree.js +12 -9
  16. package/dist/src/algorithms/centrality/degree.js.map +1 -1
  17. package/dist/src/algorithms/centrality/delta-pagerank-simple.d.ts +57 -0
  18. package/dist/src/algorithms/centrality/delta-pagerank-simple.d.ts.map +1 -0
  19. package/dist/src/algorithms/centrality/delta-pagerank-simple.js +304 -0
  20. package/dist/src/algorithms/centrality/delta-pagerank-simple.js.map +1 -0
  21. package/dist/src/algorithms/centrality/delta-pagerank.d.ts +106 -0
  22. package/dist/src/algorithms/centrality/delta-pagerank.d.ts.map +1 -0
  23. package/dist/src/algorithms/centrality/delta-pagerank.js +320 -0
  24. package/dist/src/algorithms/centrality/delta-pagerank.js.map +1 -0
  25. package/dist/src/algorithms/centrality/eigenvector.d.ts +10 -3
  26. package/dist/src/algorithms/centrality/eigenvector.d.ts.map +1 -1
  27. package/dist/src/algorithms/centrality/eigenvector.js +11 -4
  28. package/dist/src/algorithms/centrality/eigenvector.js.map +1 -1
  29. package/dist/src/algorithms/centrality/hits.d.ts +10 -3
  30. package/dist/src/algorithms/centrality/hits.d.ts.map +1 -1
  31. package/dist/src/algorithms/centrality/hits.js +11 -4
  32. package/dist/src/algorithms/centrality/hits.js.map +1 -1
  33. package/dist/src/algorithms/centrality/index.d.ts +3 -1
  34. package/dist/src/algorithms/centrality/index.d.ts.map +1 -1
  35. package/dist/src/algorithms/centrality/index.js +2 -1
  36. package/dist/src/algorithms/centrality/index.js.map +1 -1
  37. package/dist/src/algorithms/centrality/katz.d.ts +10 -3
  38. package/dist/src/algorithms/centrality/katz.d.ts.map +1 -1
  39. package/dist/src/algorithms/centrality/katz.js +13 -8
  40. package/dist/src/algorithms/centrality/katz.js.map +1 -1
  41. package/dist/src/algorithms/centrality/pagerank.d.ts +31 -0
  42. package/dist/src/algorithms/centrality/pagerank.d.ts.map +1 -1
  43. package/dist/src/algorithms/centrality/pagerank.js +61 -1
  44. package/dist/src/algorithms/centrality/pagerank.js.map +1 -1
  45. package/dist/src/algorithms/community/girvan-newman.d.ts +2 -3
  46. package/dist/src/algorithms/community/girvan-newman.d.ts.map +1 -1
  47. package/dist/src/algorithms/community/girvan-newman.js +67 -57
  48. package/dist/src/algorithms/community/girvan-newman.js.map +1 -1
  49. package/dist/src/algorithms/community/index.d.ts +2 -0
  50. package/dist/src/algorithms/community/index.d.ts.map +1 -1
  51. package/dist/src/algorithms/community/index.js.map +1 -1
  52. package/dist/src/algorithms/community/label-propagation.d.ts +11 -4
  53. package/dist/src/algorithms/community/label-propagation.d.ts.map +1 -1
  54. package/dist/src/algorithms/community/label-propagation.js +60 -38
  55. package/dist/src/algorithms/community/label-propagation.js.map +1 -1
  56. package/dist/src/algorithms/community/leiden.d.ts +3 -3
  57. package/dist/src/algorithms/community/leiden.d.ts.map +1 -1
  58. package/dist/src/algorithms/community/leiden.js +70 -44
  59. package/dist/src/algorithms/community/leiden.js.map +1 -1
  60. package/dist/src/algorithms/community/louvain-optimized.d.ts +149 -0
  61. package/dist/src/algorithms/community/louvain-optimized.d.ts.map +1 -0
  62. package/dist/src/algorithms/community/louvain-optimized.js +338 -0
  63. package/dist/src/algorithms/community/louvain-optimized.js.map +1 -0
  64. package/dist/src/algorithms/community/louvain.d.ts +2 -3
  65. package/dist/src/algorithms/community/louvain.d.ts.map +1 -1
  66. package/dist/src/algorithms/community/louvain.js +35 -81
  67. package/dist/src/algorithms/community/louvain.js.map +1 -1
  68. package/dist/src/algorithms/community/modularity-utils.d.ts +55 -0
  69. package/dist/src/algorithms/community/modularity-utils.d.ts.map +1 -0
  70. package/dist/src/algorithms/community/modularity-utils.js +108 -0
  71. package/dist/src/algorithms/community/modularity-utils.js.map +1 -0
  72. package/dist/src/algorithms/components/connected.d.ts +23 -0
  73. package/dist/src/algorithms/components/connected.d.ts.map +1 -1
  74. package/dist/src/algorithms/components/connected.js +29 -3
  75. package/dist/src/algorithms/components/connected.js.map +1 -1
  76. package/dist/src/algorithms/matching/bipartite.d.ts +10 -0
  77. package/dist/src/algorithms/matching/bipartite.d.ts.map +1 -1
  78. package/dist/src/algorithms/matching/bipartite.js +18 -40
  79. package/dist/src/algorithms/matching/bipartite.js.map +1 -1
  80. package/dist/src/algorithms/matching/index.d.ts.map +1 -1
  81. package/dist/src/algorithms/matching/index.js.map +1 -1
  82. package/dist/src/algorithms/matching/isomorphism.d.ts +8 -0
  83. package/dist/src/algorithms/matching/isomorphism.d.ts.map +1 -1
  84. package/dist/src/algorithms/matching/isomorphism.js +36 -2
  85. package/dist/src/algorithms/matching/isomorphism.js.map +1 -1
  86. package/dist/src/algorithms/mst/index.d.ts.map +1 -1
  87. package/dist/src/algorithms/mst/index.js.map +1 -1
  88. package/dist/src/algorithms/mst/kruskal.d.ts +14 -0
  89. package/dist/src/algorithms/mst/kruskal.d.ts.map +1 -1
  90. package/dist/src/algorithms/mst/kruskal.js +17 -3
  91. package/dist/src/algorithms/mst/kruskal.js.map +1 -1
  92. package/dist/src/algorithms/mst/prim.d.ts +9 -0
  93. package/dist/src/algorithms/mst/prim.d.ts.map +1 -1
  94. package/dist/src/algorithms/mst/prim.js +9 -0
  95. package/dist/src/algorithms/mst/prim.js.map +1 -1
  96. package/dist/src/algorithms/shortest-path/bellman-ford.d.ts +10 -0
  97. package/dist/src/algorithms/shortest-path/bellman-ford.d.ts.map +1 -1
  98. package/dist/src/algorithms/shortest-path/bellman-ford.js +11 -12
  99. package/dist/src/algorithms/shortest-path/bellman-ford.js.map +1 -1
  100. package/dist/src/algorithms/shortest-path/bidirectional-dijkstra.d.ts +44 -0
  101. package/dist/src/algorithms/shortest-path/bidirectional-dijkstra.d.ts.map +1 -0
  102. package/dist/src/algorithms/shortest-path/bidirectional-dijkstra.js +195 -0
  103. package/dist/src/algorithms/shortest-path/bidirectional-dijkstra.js.map +1 -0
  104. package/dist/src/algorithms/shortest-path/dijkstra.d.ts +20 -2
  105. package/dist/src/algorithms/shortest-path/dijkstra.d.ts.map +1 -1
  106. package/dist/src/algorithms/shortest-path/dijkstra.js +30 -14
  107. package/dist/src/algorithms/shortest-path/dijkstra.js.map +1 -1
  108. package/dist/src/algorithms/shortest-path/floyd-warshall.d.ts +17 -0
  109. package/dist/src/algorithms/shortest-path/floyd-warshall.d.ts.map +1 -1
  110. package/dist/src/algorithms/shortest-path/floyd-warshall.js +17 -0
  111. package/dist/src/algorithms/shortest-path/floyd-warshall.js.map +1 -1
  112. package/dist/src/algorithms/shortest-path/index.d.ts.map +1 -1
  113. package/dist/src/algorithms/shortest-path/index.js.map +1 -1
  114. package/dist/src/algorithms/traversal/bfs-unified.d.ts +42 -0
  115. package/dist/src/algorithms/traversal/bfs-unified.d.ts.map +1 -0
  116. package/dist/src/algorithms/traversal/bfs-unified.js +370 -0
  117. package/dist/src/algorithms/traversal/bfs-unified.js.map +1 -0
  118. package/dist/src/algorithms/traversal/bfs-variants.d.ts +77 -0
  119. package/dist/src/algorithms/traversal/bfs-variants.d.ts.map +1 -0
  120. package/dist/src/algorithms/traversal/bfs-variants.js +402 -0
  121. package/dist/src/algorithms/traversal/bfs-variants.js.map +1 -0
  122. package/dist/src/algorithms/traversal/bfs.d.ts +4 -18
  123. package/dist/src/algorithms/traversal/bfs.d.ts.map +1 -1
  124. package/dist/src/algorithms/traversal/bfs.js +5 -182
  125. package/dist/src/algorithms/traversal/bfs.js.map +1 -1
  126. package/dist/src/algorithms/traversal/dfs.d.ts +10 -0
  127. package/dist/src/algorithms/traversal/dfs.d.ts.map +1 -1
  128. package/dist/src/algorithms/traversal/dfs.js +48 -0
  129. package/dist/src/algorithms/traversal/dfs.js.map +1 -1
  130. package/dist/src/algorithms/traversal/index.d.ts.map +1 -1
  131. package/dist/src/algorithms/traversal/index.js.map +1 -1
  132. package/dist/src/benchmark-all-algorithms.d.ts +25 -0
  133. package/dist/src/benchmark-all-algorithms.d.ts.map +1 -0
  134. package/dist/src/benchmark-all-algorithms.js +491 -0
  135. package/dist/src/benchmark-all-algorithms.js.map +1 -0
  136. package/dist/src/clustering/hierarchical.d.ts +23 -15
  137. package/dist/src/clustering/hierarchical.d.ts.map +1 -1
  138. package/dist/src/clustering/hierarchical.js +226 -224
  139. package/dist/src/clustering/hierarchical.js.map +1 -1
  140. package/dist/src/clustering/index.d.ts +4 -2
  141. package/dist/src/clustering/index.d.ts.map +1 -1
  142. package/dist/src/clustering/index.js +2 -2
  143. package/dist/src/clustering/index.js.map +1 -1
  144. package/dist/src/clustering/k-core.d.ts +17 -19
  145. package/dist/src/clustering/k-core.d.ts.map +1 -1
  146. package/dist/src/clustering/k-core.js +68 -30
  147. package/dist/src/clustering/k-core.js.map +1 -1
  148. package/dist/src/clustering/mcl.d.ts +6 -0
  149. package/dist/src/clustering/mcl.d.ts.map +1 -1
  150. package/dist/src/clustering/mcl.js +34 -3
  151. package/dist/src/clustering/mcl.js.map +1 -1
  152. package/dist/src/clustering/spectral.d.ts +11 -0
  153. package/dist/src/clustering/spectral.d.ts.map +1 -1
  154. package/dist/src/clustering/spectral.js +99 -47
  155. package/dist/src/clustering/spectral.js.map +1 -1
  156. package/dist/src/core/graph.d.ts +45 -0
  157. package/dist/src/core/graph.d.ts.map +1 -1
  158. package/dist/src/core/graph.js +49 -5
  159. package/dist/src/core/graph.js.map +1 -1
  160. package/dist/src/data-structures/index.d.ts.map +1 -1
  161. package/dist/src/data-structures/index.js.map +1 -1
  162. package/dist/src/data-structures/priority-queue.d.ts +18 -1
  163. package/dist/src/data-structures/priority-queue.d.ts.map +1 -1
  164. package/dist/src/data-structures/priority-queue.js +26 -5
  165. package/dist/src/data-structures/priority-queue.js.map +1 -1
  166. package/dist/src/data-structures/union-find.d.ts +21 -0
  167. package/dist/src/data-structures/union-find.d.ts.map +1 -1
  168. package/dist/src/data-structures/union-find.js +21 -0
  169. package/dist/src/data-structures/union-find.js.map +1 -1
  170. package/dist/src/flow/ford-fulkerson.d.ts +20 -12
  171. package/dist/src/flow/ford-fulkerson.d.ts.map +1 -1
  172. package/dist/src/flow/ford-fulkerson.js +170 -217
  173. package/dist/src/flow/ford-fulkerson.js.map +1 -1
  174. package/dist/src/flow/min-cut.d.ts +6 -8
  175. package/dist/src/flow/min-cut.d.ts.map +1 -1
  176. package/dist/src/flow/min-cut.js +34 -12
  177. package/dist/src/flow/min-cut.js.map +1 -1
  178. package/dist/src/index.d.ts +3 -1
  179. package/dist/src/index.d.ts.map +1 -1
  180. package/dist/src/index.js +6 -1
  181. package/dist/src/index.js.map +1 -1
  182. package/dist/src/link-prediction/adamic-adar.d.ts +26 -0
  183. package/dist/src/link-prediction/adamic-adar.d.ts.map +1 -1
  184. package/dist/src/link-prediction/adamic-adar.js +47 -30
  185. package/dist/src/link-prediction/adamic-adar.js.map +1 -1
  186. package/dist/src/link-prediction/common-neighbors.d.ts +21 -0
  187. package/dist/src/link-prediction/common-neighbors.d.ts.map +1 -1
  188. package/dist/src/link-prediction/common-neighbors.js +31 -14
  189. package/dist/src/link-prediction/common-neighbors.js.map +1 -1
  190. package/dist/src/link-prediction/index.d.ts.map +1 -1
  191. package/dist/src/optimized/bit-packed.d.ts +193 -0
  192. package/dist/src/optimized/bit-packed.d.ts.map +1 -0
  193. package/dist/src/optimized/bit-packed.js +342 -0
  194. package/dist/src/optimized/bit-packed.js.map +1 -0
  195. package/dist/src/optimized/csr-graph.d.ts +149 -0
  196. package/dist/src/optimized/csr-graph.d.ts.map +1 -0
  197. package/dist/src/optimized/csr-graph.js +404 -0
  198. package/dist/src/optimized/csr-graph.js.map +1 -0
  199. package/dist/src/optimized/direction-optimized-bfs.d.ts +95 -0
  200. package/dist/src/optimized/direction-optimized-bfs.d.ts.map +1 -0
  201. package/dist/src/optimized/direction-optimized-bfs.js +242 -0
  202. package/dist/src/optimized/direction-optimized-bfs.js.map +1 -0
  203. package/dist/src/optimized/graph-adapter.d.ts +111 -0
  204. package/dist/src/optimized/graph-adapter.d.ts.map +1 -0
  205. package/dist/src/optimized/graph-adapter.js +194 -0
  206. package/dist/src/optimized/graph-adapter.js.map +1 -0
  207. package/dist/src/optimized/index.d.ts +14 -0
  208. package/dist/src/optimized/index.d.ts.map +1 -0
  209. package/dist/src/optimized/index.js +30 -0
  210. package/dist/src/optimized/index.js.map +1 -0
  211. package/dist/src/pathfinding/astar.d.ts +25 -9
  212. package/dist/src/pathfinding/astar.d.ts.map +1 -1
  213. package/dist/src/pathfinding/astar.js +25 -10
  214. package/dist/src/pathfinding/astar.js.map +1 -1
  215. package/dist/src/pathfinding/utils.d.ts +15 -6
  216. package/dist/src/pathfinding/utils.d.ts.map +1 -1
  217. package/dist/src/pathfinding/utils.js +19 -7
  218. package/dist/src/pathfinding/utils.js.map +1 -1
  219. package/dist/src/research/grsbm.d.ts +0 -1
  220. package/dist/src/research/grsbm.d.ts.map +1 -1
  221. package/dist/src/research/grsbm.js +28 -23
  222. package/dist/src/research/grsbm.js.map +1 -1
  223. package/dist/src/research/index.d.ts.map +1 -1
  224. package/dist/src/research/index.js.map +1 -1
  225. package/dist/src/research/sync.d.ts +0 -1
  226. package/dist/src/research/sync.d.ts.map +1 -1
  227. package/dist/src/research/sync.js +31 -36
  228. package/dist/src/research/sync.js.map +1 -1
  229. package/dist/src/research/terahac.d.ts +2 -1
  230. package/dist/src/research/terahac.d.ts.map +1 -1
  231. package/dist/src/research/terahac.js +39 -7
  232. package/dist/src/research/terahac.js.map +1 -1
  233. package/dist/src/types/index.d.ts +8 -0
  234. package/dist/src/types/index.d.ts.map +1 -1
  235. package/dist/src/utils/algorithm-utilities.d.ts +2 -0
  236. package/dist/src/utils/algorithm-utilities.d.ts.map +1 -0
  237. package/dist/src/utils/algorithm-utilities.js +2 -0
  238. package/dist/src/utils/algorithm-utilities.js.map +1 -0
  239. package/dist/src/utils/graph-converters.d.ts +110 -0
  240. package/dist/src/utils/graph-converters.d.ts.map +1 -0
  241. package/dist/src/utils/graph-converters.js +227 -0
  242. package/dist/src/utils/graph-converters.js.map +1 -0
  243. package/dist/src/utils/graph-utilities.d.ts +62 -0
  244. package/dist/src/utils/graph-utilities.d.ts.map +1 -0
  245. package/dist/src/utils/graph-utilities.js +148 -0
  246. package/dist/src/utils/graph-utilities.js.map +1 -0
  247. package/dist/src/utils/index.d.ts +5 -0
  248. package/dist/src/utils/index.d.ts.map +1 -0
  249. package/dist/src/utils/index.js +5 -0
  250. package/dist/src/utils/index.js.map +1 -0
  251. package/dist/src/utils/math-utilities.d.ts +63 -0
  252. package/dist/src/utils/math-utilities.d.ts.map +1 -0
  253. package/dist/src/utils/math-utilities.js +132 -0
  254. package/dist/src/utils/math-utilities.js.map +1 -0
  255. package/dist/src/utils/matrix-utilities.d.ts +2 -0
  256. package/dist/src/utils/matrix-utilities.d.ts.map +1 -0
  257. package/dist/src/utils/matrix-utilities.js +2 -0
  258. package/dist/src/utils/matrix-utilities.js.map +1 -0
  259. package/dist/src/utils/optimization-helpers.d.ts +42 -0
  260. package/dist/src/utils/optimization-helpers.d.ts.map +1 -0
  261. package/dist/src/utils/optimization-helpers.js +59 -0
  262. package/dist/src/utils/optimization-helpers.js.map +1 -0
  263. package/dist/src/utils/priorityQueue.d.ts +24 -0
  264. package/dist/src/utils/priorityQueue.d.ts.map +1 -1
  265. package/dist/src/utils/priorityQueue.js +34 -4
  266. package/dist/src/utils/priorityQueue.js.map +1 -1
  267. package/package.json +58 -39
  268. package/src/algorithms/centrality/betweenness.ts +185 -200
  269. package/src/algorithms/centrality/closeness.ts +93 -194
  270. package/src/algorithms/centrality/degree.ts +18 -22
  271. package/src/algorithms/centrality/delta-pagerank-simple.ts +374 -0
  272. package/src/algorithms/centrality/delta-pagerank.ts +458 -0
  273. package/src/algorithms/centrality/eigenvector.ts +14 -15
  274. package/src/algorithms/centrality/hits.ts +17 -17
  275. package/src/algorithms/centrality/index.ts +20 -13
  276. package/src/algorithms/centrality/katz.ts +17 -25
  277. package/src/algorithms/centrality/pagerank.ts +91 -16
  278. package/src/algorithms/community/girvan-newman.ts +90 -86
  279. package/src/algorithms/community/index.ts +6 -5
  280. package/src/algorithms/community/label-propagation.ts +69 -48
  281. package/src/algorithms/community/leiden.ts +88 -65
  282. package/src/algorithms/community/louvain-optimized.ts +474 -0
  283. package/src/algorithms/community/louvain.ts +52 -122
  284. package/src/algorithms/community/modularity-utils.ts +134 -0
  285. package/src/algorithms/components/connected.ts +40 -17
  286. package/src/algorithms/matching/bipartite.ts +24 -53
  287. package/src/algorithms/matching/index.ts +4 -4
  288. package/src/algorithms/matching/isomorphism.ts +53 -23
  289. package/src/algorithms/mst/index.ts +3 -4
  290. package/src/algorithms/mst/kruskal.ts +21 -6
  291. package/src/algorithms/mst/prim.ts +13 -4
  292. package/src/algorithms/shortest-path/bellman-ford.ts +16 -28
  293. package/src/algorithms/shortest-path/bidirectional-dijkstra.ts +248 -0
  294. package/src/algorithms/shortest-path/dijkstra.ts +38 -30
  295. package/src/algorithms/shortest-path/floyd-warshall.ts +21 -4
  296. package/src/algorithms/shortest-path/index.ts +5 -5
  297. package/src/algorithms/traversal/bfs-unified.ts +437 -0
  298. package/src/algorithms/traversal/bfs-variants.ts +520 -0
  299. package/src/algorithms/traversal/bfs.ts +5 -229
  300. package/src/algorithms/traversal/dfs.ts +61 -42
  301. package/src/algorithms/traversal/index.ts +3 -3
  302. package/src/benchmark-all-algorithms.ts +580 -0
  303. package/src/clustering/hierarchical.ts +268 -272
  304. package/src/clustering/index.ts +8 -6
  305. package/src/clustering/k-core.ts +93 -61
  306. package/src/clustering/mcl.ts +53 -23
  307. package/src/clustering/spectral.ts +130 -72
  308. package/src/core/graph.ts +58 -18
  309. package/src/data-structures/index.ts +2 -2
  310. package/src/data-structures/priority-queue.ts +36 -11
  311. package/src/data-structures/union-find.ts +22 -1
  312. package/src/flow/ford-fulkerson.ts +221 -262
  313. package/src/flow/min-cut.ts +59 -51
  314. package/src/index.ts +9 -2
  315. package/src/link-prediction/adamic-adar.ts +75 -74
  316. package/src/link-prediction/common-neighbors.ts +49 -49
  317. package/src/link-prediction/index.ts +1 -1
  318. package/src/optimized/bit-packed.ts +390 -0
  319. package/src/optimized/csr-graph.ts +518 -0
  320. package/src/optimized/direction-optimized-bfs.ts +310 -0
  321. package/src/optimized/graph-adapter.ts +248 -0
  322. package/src/optimized/index.ts +34 -0
  323. package/src/pathfinding/astar.ts +40 -25
  324. package/src/pathfinding/utils.ts +20 -13
  325. package/src/research/grsbm.ts +36 -39
  326. package/src/research/index.ts +4 -4
  327. package/src/research/sync.ts +41 -54
  328. package/src/research/terahac.ts +63 -21
  329. package/src/types/index.ts +8 -0
  330. package/src/utils/algorithm-utilities.ts +2 -0
  331. package/src/utils/graph-converters.ts +269 -0
  332. package/src/utils/graph-utilities.ts +173 -0
  333. package/src/utils/index.ts +4 -0
  334. package/src/utils/math-utilities.ts +149 -0
  335. package/src/utils/matrix-utilities.ts +2 -0
  336. package/src/utils/optimization-helpers.ts +87 -0
  337. package/src/utils/priorityQueue.ts +40 -6
@@ -1 +1 @@
1
- {"version":3,"file":"katz.js","sourceRoot":"","sources":["../../../../src/algorithms/centrality/katz.ts"],"names":[],"mappings":"AAuBA;;;GAGG;AACH,MAAM,UAAU,cAAc,CAC1B,KAAY,EACZ,UAAiC,EAAE;IAEnC,MAAM,EACF,KAAK,GAAG,GAAG,EACX,IAAI,GAAG,GAAG,EACV,aAAa,GAAG,GAAG,EACnB,SAAS,GAAG,IAAI,EAChB,UAAU,GAAG,IAAI,GACpB,GAAG,OAAO,CAAC;IAEZ,MAAM,UAAU,GAAqB,EAAE,CAAC;IACxC,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;IACxC,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAE7C,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,UAAU,CAAC;IACtB,CAAC;IAED,6DAA6D;IAC7D,4EAA4E;IAE5E,+BAA+B;IAC/B,IAAI,aAAa,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC9C,IAAI,cAAc,GAAG,IAAI,GAAG,EAAkB,CAAC;IAE/C,gCAAgC;IAChC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC3B,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,CAAC;IAC/C,CAAC;IAED,wBAAwB;IACxB,KAAK,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,GAAG,aAAa,EAAE,SAAS,EAAE,EAAE,CAAC;QAC7D,cAAc,GAAG,IAAI,GAAG,CAAC,aAAa,CAAC,CAAC;QACxC,aAAa,GAAG,IAAI,GAAG,EAAE,CAAC;QAE1B,gCAAgC;QAChC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC3B,IAAI,GAAG,GAAG,CAAC,CAAC;YAEZ,wCAAwC;YACxC,2CAA2C;YAC3C,MAAM,SAAS,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC;gBAChC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBACvC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YAE5B,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;gBAC/B,MAAM,WAAW,GAAG,QAAQ,CAAC,QAAQ,EAAE,CAAC;gBACxC,GAAG,IAAI,cAAc,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YAChD,CAAC;YAED,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;QAC/D,CAAC;QAED,wBAAwB;QACxB,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,KAAK,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC;YACtD,MAAM,SAAS,GAAG,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAClD,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,SAAS,CAAC,CAAC;YACzC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QACtC,CAAC;QAED,IAAI,OAAO,GAAG,SAAS,EAAE,CAAC;YACtB,MAAM;QACV,CAAC;IACL,CAAC;IAED,kBAAkB;IAClB,KAAK,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC;QACtD,UAAU,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC;IAC/B,CAAC;IAED,yBAAyB;IACzB,IAAI,UAAU,EAAE,CAAC;QACb,IAAI,QAAQ,GAAG,CAAC,CAAC;QACjB,IAAI,QAAQ,GAAG,MAAM,CAAC,iBAAiB,CAAC;QAExC,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;YAC5C,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;YACrC,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QACzC,CAAC;QAED,MAAM,KAAK,GAAG,QAAQ,GAAG,QAAQ,CAAC;QAClC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YACZ,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC3C,MAAM,eAAe,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;gBAC3C,IAAI,eAAe,KAAK,SAAS,EAAE,CAAC;oBAChC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,eAAe,GAAG,QAAQ,CAAC,GAAG,KAAK,CAAC;gBAC9D,CAAC;YACL,CAAC;QACL,CAAC;IACL,CAAC;IAED,OAAO,UAAU,CAAC;AACtB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAC9B,KAAY,EACZ,MAAuB,EACvB,UAAiC,EAAE;IAEnC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CAAC,QAAQ,MAAM,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;IACjE,CAAC;IAED,MAAM,UAAU,GAAG,cAAc,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAClD,OAAO,UAAU,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC;AAC9C,CAAC"}
1
+ {"version":3,"file":"katz.js","sourceRoot":"","sources":["../../../../src/algorithms/centrality/katz.ts"],"names":[],"mappings":"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"}
@@ -34,6 +34,12 @@ export interface PageRankOptions {
34
34
  * Weight attribute for weighted PageRank (default: null = unweighted)
35
35
  */
36
36
  weight?: string;
37
+ /**
38
+ * Use delta-based optimization for faster convergence.
39
+ * Defaults to true for graphs with >100 nodes, false for smaller graphs.
40
+ * Set explicitly to override automatic heuristic.
41
+ */
42
+ useDelta?: boolean;
37
43
  }
38
44
  /**
39
45
  * PageRank algorithm result
@@ -54,18 +60,43 @@ export interface PageRankResult {
54
60
  }
55
61
  /**
56
62
  * Calculate PageRank for all nodes in the graph
63
+ *
64
+ * Uses delta-based optimization by default for improved performance on larger graphs.
65
+ * Automatically falls back to standard algorithm for very small graphs.
66
+ *
67
+ * The delta-based approach provides significant speedup for:
68
+ * - Incremental updates after graph modifications
69
+ * - Graphs with localized changes
70
+ * - Early convergence detection per vertex
71
+ *
72
+ * For initial computation on small-medium graphs, standard algorithm may be faster
73
+ * due to lower overhead.
74
+ * @param graph - The directed input graph to analyze
75
+ * @param options - Algorithm configuration options
76
+ * @returns PageRank result containing ranks, iteration count, and convergence status
57
77
  */
58
78
  export declare function pageRank(graph: Graph, options?: PageRankOptions): PageRankResult;
59
79
  /**
60
80
  * Calculate Personalized PageRank for a specific set of source nodes
81
+ * @param graph - The directed input graph to analyze
82
+ * @param personalNodes - Nodes to personalize the PageRank towards
83
+ * @param options - Algorithm configuration options
84
+ * @returns PageRank result containing ranks, iteration count, and convergence status
61
85
  */
62
86
  export declare function personalizedPageRank(graph: Graph, personalNodes: NodeId[], options?: Omit<PageRankOptions, "personalization">): PageRankResult;
63
87
  /**
64
88
  * Calculate PageRank centrality (normalized PageRank scores)
89
+ * @param graph - The directed input graph to analyze
90
+ * @param options - Algorithm configuration options
91
+ * @returns PageRank scores for each node keyed by node ID
65
92
  */
66
93
  export declare function pageRankCentrality(graph: Graph, options?: PageRankOptions): Record<string, number>;
67
94
  /**
68
95
  * Get the top-k nodes by PageRank score
96
+ * @param graph - The directed input graph to analyze
97
+ * @param k - Number of top nodes to return
98
+ * @param options - Algorithm configuration options
99
+ * @returns Array of top-k nodes with their PageRank scores, sorted descending
69
100
  */
70
101
  export declare function topPageRankNodes(graph: Graph, k: number, options?: PageRankOptions): {
71
102
  node: NodeId;
@@ -1 +1 @@
1
- {"version":3,"file":"pagerank.d.ts","sourceRoot":"","sources":["../../../../src/algorithms/centrality/pagerank.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,KAAK,EAAC,MAAM,qBAAqB,CAAC;AAC/C,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,sBAAsB,CAAC;AAEjD;;;;;GAKG;AAEH;;GAEG;AACH,MAAM,WAAW,eAAe;IAC5B;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,YAAY,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC;;OAEG;IACH,eAAe,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC3B;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,SAAS,EAAE,OAAO,CAAC;CACtB;AAED;;GAEG;AACH,wBAAgB,QAAQ,CACpB,KAAK,EAAE,KAAK,EACZ,OAAO,GAAE,eAAoB,GAC9B,cAAc,CA6JhB;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAChC,KAAK,EAAE,KAAK,EACZ,aAAa,EAAE,MAAM,EAAE,EACvB,OAAO,GAAE,IAAI,CAAC,eAAe,EAAE,iBAAiB,CAAM,GACvD,cAAc,CAuBhB;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAC9B,KAAK,EAAE,KAAK,EACZ,OAAO,GAAE,eAAoB,GAC9B,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAGxB;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC5B,KAAK,EAAE,KAAK,EACZ,CAAC,EAAE,MAAM,EACT,OAAO,GAAE,eAAoB,GAC9B;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAC,EAAE,CAYhC"}
1
+ {"version":3,"file":"pagerank.d.ts","sourceRoot":"","sources":["../../../../src/algorithms/centrality/pagerank.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAGnD;;;;;GAKG;AAEH;;GAEG;AACH,MAAM,WAAW,eAAe;IAC5B;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,YAAY,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC;;OAEG;IACH,eAAe,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC3B;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,SAAS,EAAE,OAAO,CAAC;CACtB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,GAAE,eAAoB,GAAG,cAAc,CAwMpF;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAChC,KAAK,EAAE,KAAK,EACZ,aAAa,EAAE,MAAM,EAAE,EACvB,OAAO,GAAE,IAAI,CAAC,eAAe,EAAE,iBAAiB,CAAM,GACvD,cAAc,CA4BhB;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,GAAE,eAAoB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAGtG;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC5B,KAAK,EAAE,KAAK,EACZ,CAAC,EAAE,MAAM,EACT,OAAO,GAAE,eAAoB,GAC9B;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAAE,CAYlC"}
@@ -1,5 +1,20 @@
1
+ import { SimpleDeltaPageRank } from "./delta-pagerank-simple.js";
1
2
  /**
2
3
  * Calculate PageRank for all nodes in the graph
4
+ *
5
+ * Uses delta-based optimization by default for improved performance on larger graphs.
6
+ * Automatically falls back to standard algorithm for very small graphs.
7
+ *
8
+ * The delta-based approach provides significant speedup for:
9
+ * - Incremental updates after graph modifications
10
+ * - Graphs with localized changes
11
+ * - Early convergence detection per vertex
12
+ *
13
+ * For initial computation on small-medium graphs, standard algorithm may be faster
14
+ * due to lower overhead.
15
+ * @param graph - The directed input graph to analyze
16
+ * @param options - Algorithm configuration options
17
+ * @returns PageRank result containing ranks, iteration count, and convergence status
3
18
  */
4
19
  export function pageRank(graph, options = {}) {
5
20
  const { dampingFactor = 0.85, maxIterations = 100, tolerance = 1e-6, initialRanks, personalization, weight, } = options;
@@ -14,6 +29,35 @@ export function pageRank(graph, options = {}) {
14
29
  if (n === 0) {
15
30
  return { ranks: {}, iterations: 0, converged: true };
16
31
  }
32
+ // Use delta-based optimization by default for larger graphs
33
+ // Only disable if explicitly requested or graph is very small (overhead dominates)
34
+ const shouldUseDelta = options.useDelta !== false && n > 100;
35
+ if (shouldUseDelta) {
36
+ // Use optimized delta-based implementation
37
+ const deltaOptions = {
38
+ dampingFactor,
39
+ tolerance,
40
+ maxIterations,
41
+ };
42
+ if (personalization) {
43
+ deltaOptions.personalization = personalization;
44
+ }
45
+ if (weight) {
46
+ deltaOptions.weight = weight;
47
+ }
48
+ const deltaPageRank = new SimpleDeltaPageRank(graph);
49
+ const deltaRanks = deltaPageRank.compute(deltaOptions);
50
+ // Convert to string-keyed record
51
+ const result = {};
52
+ for (const [nodeId, rank] of deltaRanks) {
53
+ result[String(nodeId)] = rank;
54
+ }
55
+ return {
56
+ ranks: result,
57
+ iterations: maxIterations, // For now, assume we used all iterations
58
+ converged: true,
59
+ };
60
+ }
17
61
  // Initialize PageRank values
18
62
  let ranks = new Map();
19
63
  if (initialRanks) {
@@ -78,7 +122,7 @@ export function pageRank(graph, options = {}) {
78
122
  danglingSum += ranks.get(danglingNode) ?? 0;
79
123
  }
80
124
  if (danglingSum > 0) {
81
- const danglingContribution = dampingFactor * danglingSum / n;
125
+ const danglingContribution = (dampingFactor * danglingSum) / n;
82
126
  for (const nodeId of nodes) {
83
127
  const currentRank = newRanks.get(nodeId) ?? 0;
84
128
  if (personalVector) {
@@ -133,8 +177,16 @@ export function pageRank(graph, options = {}) {
133
177
  }
134
178
  /**
135
179
  * Calculate Personalized PageRank for a specific set of source nodes
180
+ * @param graph - The directed input graph to analyze
181
+ * @param personalNodes - Nodes to personalize the PageRank towards
182
+ * @param options - Algorithm configuration options
183
+ * @returns PageRank result containing ranks, iteration count, and convergence status
136
184
  */
137
185
  export function personalizedPageRank(graph, personalNodes, options = {}) {
186
+ // Handle empty personal nodes by falling back to standard PageRank
187
+ if (personalNodes.length === 0) {
188
+ return pageRank(graph, options);
189
+ }
138
190
  const nodes = Array.from(graph.nodes()).map((node) => node.id);
139
191
  const personalization = new Map();
140
192
  // Initialize personalization vector
@@ -156,6 +208,9 @@ export function personalizedPageRank(graph, personalNodes, options = {}) {
156
208
  }
157
209
  /**
158
210
  * Calculate PageRank centrality (normalized PageRank scores)
211
+ * @param graph - The directed input graph to analyze
212
+ * @param options - Algorithm configuration options
213
+ * @returns PageRank scores for each node keyed by node ID
159
214
  */
160
215
  export function pageRankCentrality(graph, options = {}) {
161
216
  const result = pageRank(graph, options);
@@ -163,6 +218,10 @@ export function pageRankCentrality(graph, options = {}) {
163
218
  }
164
219
  /**
165
220
  * Get the top-k nodes by PageRank score
221
+ * @param graph - The directed input graph to analyze
222
+ * @param k - Number of top nodes to return
223
+ * @param options - Algorithm configuration options
224
+ * @returns Array of top-k nodes with their PageRank scores, sorted descending
166
225
  */
167
226
  export function topPageRankNodes(graph, k, options = {}) {
168
227
  const result = pageRank(graph, options);
@@ -176,6 +235,7 @@ export function topPageRankNodes(graph, k, options = {}) {
176
235
  }
177
236
  /**
178
237
  * Normalize ranks so they sum to 1
238
+ * @param ranks - The ranks map to normalize in place
179
239
  */
180
240
  function normalizeRanks(ranks) {
181
241
  let sum = 0;
@@ -1 +1 @@
1
- {"version":3,"file":"pagerank.js","sourceRoot":"","sources":["../../../../src/algorithms/centrality/pagerank.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pagerank.js","sourceRoot":"","sources":["../../../../src/algorithms/centrality/pagerank.ts"],"names":[],"mappings":"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"}
@@ -12,9 +12,8 @@ import type { CommunityResult, GirvanNewmanOptions } from "../../types/index.js"
12
12
  *
13
13
  * References:
14
14
  * - Girvan, M., & Newman, M. E. J. (2002). Community structure in social
15
- * and biological networks. Proceedings of the National Academy of Sciences,
16
- * 99(12), 7821-7826.
17
- *
15
+ * and biological networks. Proceedings of the National Academy of Sciences,
16
+ * 99(12), 7821-7826.
18
17
  * @param graph - The input graph
19
18
  * @param options - Algorithm options
20
19
  * @returns Array of community detection results representing the dendrogram
@@ -1 +1 @@
1
- {"version":3,"file":"girvan-newman.d.ts","sourceRoot":"","sources":["../../../../src/algorithms/community/girvan-newman.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAC,MAAM,qBAAqB,CAAC;AAC1C,OAAO,KAAK,EAAC,eAAe,EAAmB,mBAAmB,EAAS,MAAM,sBAAsB,CAAC;AAGxG;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,YAAY,CACxB,KAAK,EAAE,KAAK,EACZ,OAAO,GAAE,mBAAwB,GAClC,eAAe,EAAE,CAoEnB"}
1
+ {"version":3,"file":"girvan-newman.d.ts","sourceRoot":"","sources":["../../../../src/algorithms/community/girvan-newman.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC5C,OAAO,KAAK,EAAE,eAAe,EAAmB,mBAAmB,EAAU,MAAM,sBAAsB,CAAC;AAG1G;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,GAAE,mBAAwB,GAAG,eAAe,EAAE,CAqE/F"}
@@ -1,4 +1,3 @@
1
- import { Graph } from "../../core/graph.js";
2
1
  import { connectedComponents } from "../components/connected.js";
3
2
  /**
4
3
  * Girvan-Newman community detection algorithm
@@ -12,9 +11,8 @@ import { connectedComponents } from "../components/connected.js";
12
11
  *
13
12
  * References:
14
13
  * - Girvan, M., & Newman, M. E. J. (2002). Community structure in social
15
- * and biological networks. Proceedings of the National Academy of Sciences,
16
- * 99(12), 7821-7826.
17
- *
14
+ * and biological networks. Proceedings of the National Academy of Sciences,
15
+ * 99(12), 7821-7826.
18
16
  * @param graph - The input graph
19
17
  * @param options - Algorithm options
20
18
  * @returns Array of community detection results representing the dendrogram
@@ -22,15 +20,18 @@ import { connectedComponents } from "../components/connected.js";
22
20
  export function girvanNewman(graph, options = {}) {
23
21
  const { maxCommunities } = options;
24
22
  const minCommunitySize = options.minCommunitySize ?? 1;
23
+ const maxIterations = options.maxIterations ?? 100; // Prevent infinite loops
25
24
  const dendrogram = [];
26
- const workingGraph = cloneGraph(graph);
25
+ const workingGraph = graph.clone();
26
+ let iterations = 0;
27
27
  // Initial state: one large component
28
28
  let components = getConnectedComponentsResult(workingGraph);
29
29
  dendrogram.push({
30
30
  communities: components.components.filter((community) => community.length >= minCommunitySize),
31
31
  modularity: calculateModularity(graph, components.componentMap),
32
32
  });
33
- while (Array.from(workingGraph.edges()).length > 0) {
33
+ while (Array.from(workingGraph.edges()).length > 0 && iterations < maxIterations) {
34
+ iterations++;
34
35
  // Calculate edge betweenness centrality
35
36
  const edgeBetweenness = calculateEdgeBetweenness(workingGraph);
36
37
  if (edgeBetweenness.size === 0) {
@@ -77,6 +78,8 @@ export function girvanNewman(graph, options = {}) {
77
78
  *
78
79
  * Edge betweenness is the fraction of shortest paths that pass through the edge.
79
80
  * We adapt node betweenness centrality calculation to work with edges.
81
+ * @param graph - The input graph to analyze
82
+ * @returns Map of edge keys to their betweenness centrality values
80
83
  */
81
84
  function calculateEdgeBetweenness(graph) {
82
85
  const edgeBetweenness = new Map();
@@ -148,40 +151,45 @@ function calculateEdgeBetweenness(graph) {
148
151
  return edgeBetweenness;
149
152
  }
150
153
  /**
151
- * Find all shortest paths from a source node using BFS
154
+ * Find all shortest paths from a source node using optimized BFS
155
+ * @param graph - The input graph to search
156
+ * @param source - The source node to compute shortest paths from
157
+ * @returns Object containing distances, predecessors, and path counts
152
158
  */
153
159
  function findAllShortestPaths(graph, source) {
154
160
  const distances = new Map();
155
161
  const predecessors = new Map();
156
162
  const pathCounts = new Map();
157
163
  const queue = [];
158
- // Initialize
159
- for (const node of graph.nodes()) {
160
- distances.set(node.id, Infinity);
161
- predecessors.set(node.id, []);
162
- pathCounts.set(node.id, 0);
163
- }
164
+ const visited = new Set();
165
+ // Only initialize for reachable nodes
164
166
  distances.set(source, 0);
167
+ predecessors.set(source, []);
165
168
  pathCounts.set(source, 1);
166
169
  queue.push(source);
167
- // BFS
168
- while (queue.length > 0) {
169
- const current = queue.shift();
170
- if (current === undefined) {
171
- break;
170
+ // Optimized BFS with early termination
171
+ let queueIndex = 0;
172
+ while (queueIndex < queue.length) {
173
+ const current = queue[queueIndex++];
174
+ if (!current) {
175
+ continue;
176
+ }
177
+ if (visited.has(current)) {
178
+ continue;
172
179
  }
180
+ visited.add(current);
173
181
  const currentDistance = distances.get(current);
174
182
  if (currentDistance === undefined) {
175
183
  continue;
176
184
  }
177
185
  for (const neighbor of graph.neighbors(current)) {
178
- const edge = graph.getEdge(current, neighbor);
179
- const edgeWeight = edge?.weight ?? 1;
180
- const newDistance = currentDistance + edgeWeight;
181
- const neighborDistance = distances.get(neighbor);
182
- if (neighborDistance === undefined) {
186
+ // Skip if already processed
187
+ if (visited.has(neighbor)) {
183
188
  continue;
184
189
  }
190
+ const edgeWeight = 1; // Unweighted for community detection
191
+ const newDistance = currentDistance + edgeWeight;
192
+ const neighborDistance = distances.get(neighbor) ?? Infinity;
185
193
  if (newDistance < neighborDistance) {
186
194
  // Found shorter path
187
195
  distances.set(neighbor, newDistance);
@@ -192,14 +200,15 @@ function findAllShortestPaths(graph, source) {
192
200
  }
193
201
  queue.push(neighbor);
194
202
  }
195
- else if (Math.abs(newDistance - neighborDistance) < 1e-10) {
203
+ else if (newDistance === neighborDistance) {
196
204
  // Found alternative shortest path
197
205
  const neighborPredecessors = predecessors.get(neighbor);
198
- const neighborPathCount = pathCounts.get(neighbor);
199
- const currentPathCount = pathCounts.get(current);
200
- if (neighborPredecessors && neighborPathCount !== undefined && currentPathCount !== undefined) {
206
+ if (neighborPredecessors) {
201
207
  neighborPredecessors.push(current);
202
- pathCounts.set(neighbor, neighborPathCount + currentPathCount);
208
+ const currentPathCount = pathCounts.get(current);
209
+ if (currentPathCount !== undefined) {
210
+ pathCounts.set(neighbor, (pathCounts.get(neighbor) ?? 0) + currentPathCount);
211
+ }
203
212
  }
204
213
  }
205
214
  }
@@ -208,6 +217,9 @@ function findAllShortestPaths(graph, source) {
208
217
  }
209
218
  /**
210
219
  * Generate a consistent edge key for undirected graphs
220
+ * @param source - The source node ID
221
+ * @param target - The target node ID
222
+ * @returns A consistent string key for the edge (ordered alphabetically)
211
223
  */
212
224
  function getEdgeKey(source, target) {
213
225
  // For undirected graphs, ensure consistent ordering
@@ -219,7 +231,10 @@ function getEdgeKey(source, target) {
219
231
  return `${targetStr}|${sourceStr}`;
220
232
  }
221
233
  /**
222
- * Calculate modularity for a given community structure
234
+ * Calculate modularity for a given community structure - optimized version
235
+ * @param graph - The original graph
236
+ * @param communityMap - Map from node IDs to community indices
237
+ * @returns The modularity score of the partition
223
238
  */
224
239
  function calculateModularity(graph, communityMap) {
225
240
  const totalEdgeWeight = getTotalEdgeWeight(graph);
@@ -227,22 +242,31 @@ function calculateModularity(graph, communityMap) {
227
242
  return 0;
228
243
  }
229
244
  let modularity = 0;
230
- // Calculate modularity: Q = (1/2m) * Σ[A_ij - (k_i * k_j)/(2m)] * δ(c_i, c_j)
231
- for (const nodeI of graph.nodes()) {
232
- for (const nodeJ of graph.nodes()) {
233
- if (communityMap.get(nodeI.id) === communityMap.get(nodeJ.id)) {
234
- const edge = graph.getEdge(nodeI.id, nodeJ.id);
235
- const edgeWeight = edge?.weight ?? 0;
236
- const degreeI = getNodeDegree(graph, nodeI.id);
237
- const degreeJ = getNodeDegree(graph, nodeJ.id);
238
- modularity += edgeWeight - ((degreeI * degreeJ) / (2 * totalEdgeWeight));
245
+ const degrees = new Map();
246
+ // Pre-calculate all degrees
247
+ for (const node of graph.nodes()) {
248
+ degrees.set(node.id, getNodeDegree(graph, node.id));
249
+ }
250
+ // Only iterate over existing edges
251
+ for (const edge of graph.edges()) {
252
+ const communityI = communityMap.get(edge.source);
253
+ const communityJ = communityMap.get(edge.target);
254
+ if (communityI === communityJ) {
255
+ const edgeWeight = edge.weight ?? 1;
256
+ const degreeI = degrees.get(edge.source);
257
+ const degreeJ = degrees.get(edge.target);
258
+ if (degreeI === undefined || degreeJ === undefined) {
259
+ continue;
239
260
  }
261
+ modularity += edgeWeight - (degreeI * degreeJ) / (2 * totalEdgeWeight);
240
262
  }
241
263
  }
242
264
  return modularity / (2 * totalEdgeWeight);
243
265
  }
244
266
  /**
245
267
  * Calculate total edge weight in the graph
268
+ * @param graph - The input graph
269
+ * @returns Total sum of all edge weights
246
270
  */
247
271
  function getTotalEdgeWeight(graph) {
248
272
  let totalWeight = 0;
@@ -253,6 +277,9 @@ function getTotalEdgeWeight(graph) {
253
277
  }
254
278
  /**
255
279
  * Get the total degree (sum of edge weights) for a node
280
+ * @param graph - The input graph
281
+ * @param nodeId - The node ID to compute degree for
282
+ * @returns The weighted degree of the node
256
283
  */
257
284
  function getNodeDegree(graph, nodeId) {
258
285
  let degree = 0;
@@ -264,6 +291,8 @@ function getNodeDegree(graph, nodeId) {
264
291
  }
265
292
  /**
266
293
  * Convert connected components result to ComponentResult format
294
+ * @param graph - The input graph
295
+ * @returns Object containing components array and node-to-component map
267
296
  */
268
297
  function getConnectedComponentsResult(graph) {
269
298
  const components = connectedComponents(graph);
@@ -275,23 +304,4 @@ function getConnectedComponentsResult(graph) {
275
304
  });
276
305
  return { components, componentMap };
277
306
  }
278
- /**
279
- * Create a deep clone of the graph
280
- */
281
- function cloneGraph(graph) {
282
- const clone = new Graph({
283
- directed: graph.isDirected,
284
- allowSelfLoops: true,
285
- allowParallelEdges: false,
286
- });
287
- // Add all nodes
288
- for (const node of graph.nodes()) {
289
- clone.addNode(node.id, node.data);
290
- }
291
- // Add all edges
292
- for (const edge of graph.edges()) {
293
- clone.addEdge(edge.source, edge.target, edge.weight, edge.data);
294
- }
295
- return clone;
296
- }
297
307
  //# sourceMappingURL=girvan-newman.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"girvan-newman.js","sourceRoot":"","sources":["../../../../src/algorithms/community/girvan-newman.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"girvan-newman.js","sourceRoot":"","sources":["../../../../src/algorithms/community/girvan-newman.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,9 @@
6
6
  * than with the rest of the network.
7
7
  */
8
8
  export { girvanNewman } from "./girvan-newman.js";
9
+ export type { LabelPropagationOptions, LabelPropagationResult } from "./label-propagation.js";
9
10
  export { labelPropagation, labelPropagationAsync, labelPropagationSemiSupervised } from "./label-propagation.js";
11
+ export type { LeidenOptions, LeidenResult } from "./leiden.js";
10
12
  export { leiden } from "./leiden.js";
11
13
  export { louvain } from "./louvain.js";
12
14
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/algorithms/community/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAC,YAAY,EAAC,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAC,gBAAgB,EAAE,qBAAqB,EAAE,8BAA8B,EAAC,MAAM,wBAAwB,CAAC;AAC/G,OAAO,EAAC,MAAM,EAAC,MAAM,aAAa,CAAC;AACnC,OAAO,EAAC,OAAO,EAAC,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/algorithms/community/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,YAAY,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAC9F,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,8BAA8B,EAAE,MAAM,wBAAwB,CAAC;AACjH,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC/D,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/algorithms/community/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAC,YAAY,EAAC,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAC,gBAAgB,EAAE,qBAAqB,EAAE,8BAA8B,EAAC,MAAM,wBAAwB,CAAC;AAC/G,OAAO,EAAC,MAAM,EAAC,MAAM,aAAa,CAAC;AACnC,OAAO,EAAC,OAAO,EAAC,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/algorithms/community/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,8BAA8B,EAAE,MAAM,wBAAwB,CAAC;AAEjH,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC"}
@@ -8,6 +8,7 @@
8
8
  * Reference: Raghavan et al. (2007) "Near linear time algorithm to
9
9
  * detect community structures in large-scale networks"
10
10
  */
11
+ import type { Graph } from "../../core/graph.js";
11
12
  export interface LabelPropagationOptions {
12
13
  maxIterations?: number;
13
14
  randomSeed?: number;
@@ -20,7 +21,6 @@ export interface LabelPropagationResult {
20
21
  /**
21
22
  * Label Propagation Algorithm
22
23
  * Each node adopts the most frequent label among its neighbors
23
- *
24
24
  * @param graph - Undirected graph (can be weighted)
25
25
  * @param options - Algorithm options
26
26
  * @returns Community assignments
@@ -28,15 +28,22 @@ export interface LabelPropagationResult {
28
28
  * Time Complexity: O(m) per iteration, typically O(km) for k iterations
29
29
  * Space Complexity: O(n)
30
30
  */
31
- export declare function labelPropagation(graph: Map<string, Map<string, number>>, options?: LabelPropagationOptions): LabelPropagationResult;
31
+ export declare function labelPropagation(graph: Graph, options?: LabelPropagationOptions): LabelPropagationResult;
32
32
  /**
33
33
  * Asynchronous Label Propagation
34
34
  * Updates all nodes simultaneously (can lead to oscillations)
35
+ * @param graph - Undirected graph (can be weighted)
36
+ * @param options - Algorithm options
37
+ * @returns Community assignments
35
38
  */
36
- export declare function labelPropagationAsync(graph: Map<string, Map<string, number>>, options?: LabelPropagationOptions): LabelPropagationResult;
39
+ export declare function labelPropagationAsync(graph: Graph, options?: LabelPropagationOptions): LabelPropagationResult;
37
40
  /**
38
41
  * Semi-supervised Label Propagation
39
42
  * Some nodes have fixed labels that don't change
43
+ * @param graph - Undirected graph (can be weighted)
44
+ * @param seedLabels - Initial fixed labels for some nodes
45
+ * @param options - Algorithm options
46
+ * @returns Community assignments
40
47
  */
41
- export declare function labelPropagationSemiSupervised(graph: Map<string, Map<string, number>>, seedLabels: Map<string, number>, options?: LabelPropagationOptions): LabelPropagationResult;
48
+ export declare function labelPropagationSemiSupervised(graph: Graph, seedLabels: Map<string, number>, options?: LabelPropagationOptions): LabelPropagationResult;
42
49
  //# sourceMappingURL=label-propagation.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"label-propagation.d.ts","sourceRoot":"","sources":["../../../../src/algorithms/community/label-propagation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,MAAM,WAAW,uBAAuB;IACpC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,sBAAsB;IACnC,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;CACtB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAC5B,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EACvC,OAAO,GAAE,uBAA4B,GACtC,sBAAsB,CAwHxB;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CACjC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EACvC,OAAO,GAAE,uBAA4B,GACtC,sBAAsB,CAqGxB;AAED;;;GAGG;AACH,wBAAgB,8BAA8B,CAC1C,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EACvC,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAC/B,OAAO,GAAE,uBAA4B,GACtC,sBAAsB,CAmGxB"}
1
+ {"version":3,"file":"label-propagation.d.ts","sourceRoot":"","sources":["../../../../src/algorithms/community/label-propagation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAIjD,MAAM,WAAW,uBAAuB;IACpC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,sBAAsB;IACnC,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;CACtB;AAuVD;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,GAAE,uBAA4B,GAAG,sBAAsB,CAI5G;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,GAAE,uBAA4B,GAAG,sBAAsB,CAIjH;AAED;;;;;;;GAOG;AACH,wBAAgB,8BAA8B,CAC1C,KAAK,EAAE,KAAK,EACZ,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAC/B,OAAO,GAAE,uBAA4B,GACtC,sBAAsB,CAIxB"}