@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
@@ -3,11 +3,11 @@
3
3
  *
4
4
  * Various algorithms for finding minimum cuts in graphs
5
5
  */
6
+ import { graphToMap } from "../utils/graph-converters.js";
6
7
  import { fordFulkerson } from "./ford-fulkerson.js";
7
8
  /**
8
9
  * Find minimum s-t cut using max flow
9
10
  * The minimum cut value equals the maximum flow value (max-flow min-cut theorem)
10
- *
11
11
  * @param graph - Weighted graph
12
12
  * @param source - Source node
13
13
  * @param sink - Sink node
@@ -28,7 +28,8 @@ export function minSTCut(graph, source, sink) {
28
28
  const cutEdges = [];
29
29
  // Find actual cut edges and their weights
30
30
  for (const [u, v] of flowResult.minCut.edges) {
31
- const weight = graph.get(u)?.get(v) ?? 0;
31
+ const edge = graph.getEdge(u, v);
32
+ const weight = edge?.weight ?? 0;
32
33
  if (weight > 0) {
33
34
  cutEdges.push({ from: u, to: v, weight });
34
35
  }
@@ -43,15 +44,18 @@ export function minSTCut(graph, source, sink) {
43
44
  /**
44
45
  * Stoer-Wagner algorithm for finding global minimum cut
45
46
  * Finds the minimum cut that separates the graph into two parts
46
- *
47
- * @param graph - Undirected weighted graph
47
+ * @param graph - Undirected weighted graph - accepts Graph class or Map representation
48
48
  * @returns Global minimum cut
49
49
  *
50
50
  * Time Complexity: O(V³) or O(VE + V² log V) with heap
51
51
  */
52
52
  export function stoerWagner(graph) {
53
+ // Convert Graph to Map representation if needed
54
+ const graphMap = graph instanceof Map ? graph : graphToMap(graph);
53
55
  // Convert to undirected if necessary
54
- const undirectedGraph = makeUndirected(graph);
56
+ const undirectedGraph = makeUndirected(graphMap);
57
+ // Keep a copy for finding cut edges later
58
+ const originalGraph = makeUndirected(graphMap);
55
59
  if (undirectedGraph.size < 2) {
56
60
  return {
57
61
  cutValue: 0,
@@ -62,6 +66,7 @@ export function stoerWagner(graph) {
62
66
  }
63
67
  // Initialize
64
68
  const nodes = Array.from(undirectedGraph.keys());
69
+ const originalNodes = new Set(nodes); // Keep track of original nodes
65
70
  let minCutValue = Infinity;
66
71
  let bestPartition = new Set();
67
72
  const contractionMap = new Map();
@@ -95,7 +100,7 @@ export function stoerWagner(graph) {
95
100
  // Build result
96
101
  const partition1 = bestPartition;
97
102
  const partition2 = new Set();
98
- for (const node of graph.keys()) {
103
+ for (const node of originalNodes) {
99
104
  if (!partition1.has(node)) {
100
105
  partition2.add(node);
101
106
  }
@@ -103,7 +108,7 @@ export function stoerWagner(graph) {
103
108
  // Find cut edges
104
109
  const cutEdges = [];
105
110
  for (const u of partition1) {
106
- const neighbors = graph.get(u);
111
+ const neighbors = originalGraph.get(u);
107
112
  if (neighbors) {
108
113
  for (const [v, weight] of neighbors) {
109
114
  if (partition2.has(v)) {
@@ -121,6 +126,9 @@ export function stoerWagner(graph) {
121
126
  }
122
127
  /**
123
128
  * Minimum cut phase of Stoer-Wagner algorithm
129
+ * @param graph - The undirected weighted graph
130
+ * @param nodes - Array of remaining nodes in the graph
131
+ * @returns The cut result with last two nodes, cut value, and partition
124
132
  */
125
133
  function minimumCutPhase(graph, nodes) {
126
134
  const n = nodes.length;
@@ -181,6 +189,10 @@ function minimumCutPhase(graph, nodes) {
181
189
  }
182
190
  /**
183
191
  * Contract two nodes in the graph
192
+ * @param graph - The graph to modify by contracting nodes
193
+ * @param nodes - Array of nodes to update after contraction
194
+ * @param s - The node to keep after contraction
195
+ * @param t - The node to merge into s
184
196
  */
185
197
  function contractNodes(graph, nodes, s, t) {
186
198
  // Merge t into s
@@ -212,6 +224,8 @@ function contractNodes(graph, nodes, s, t) {
212
224
  }
213
225
  /**
214
226
  * Convert directed graph to undirected
227
+ * @param graph - The directed graph to convert
228
+ * @returns An undirected graph with edges in both directions
215
229
  */
216
230
  function makeUndirected(graph) {
217
231
  const undirected = new Map();
@@ -240,19 +254,20 @@ function makeUndirected(graph) {
240
254
  /**
241
255
  * Karger's randomized min-cut algorithm
242
256
  * Probabilistic algorithm that finds min cut with high probability
243
- *
244
- * @param graph - Undirected graph
257
+ * @param graph - Undirected graph - accepts Graph class or Map representation
245
258
  * @param iterations - Number of iterations (higher = better accuracy)
246
259
  * @returns Minimum cut found
247
260
  *
248
261
  * Time Complexity: O(V² * iterations)
249
262
  */
250
263
  export function kargerMinCut(graph, iterations = 100) {
264
+ // Convert Graph to Map representation if needed
265
+ const graphMap = graph instanceof Map ? graph : graphToMap(graph);
251
266
  let minCutValue = Infinity;
252
267
  let bestPartition1 = new Set();
253
268
  let bestPartition2 = new Set();
254
269
  for (let i = 0; i < iterations; i++) {
255
- const result = kargerSingleRun(graph);
270
+ const result = kargerSingleRun(graphMap);
256
271
  if (result.cutValue < minCutValue) {
257
272
  minCutValue = result.cutValue;
258
273
  bestPartition1 = result.partition1;
@@ -262,7 +277,7 @@ export function kargerMinCut(graph, iterations = 100) {
262
277
  // Find cut edges
263
278
  const cutEdges = [];
264
279
  for (const u of bestPartition1) {
265
- const neighbors = graph.get(u);
280
+ const neighbors = graphMap.get(u);
266
281
  if (neighbors) {
267
282
  for (const [v, weight] of neighbors) {
268
283
  if (bestPartition2.has(v)) {
@@ -280,6 +295,8 @@ export function kargerMinCut(graph, iterations = 100) {
280
295
  }
281
296
  /**
282
297
  * Single run of Karger's algorithm
298
+ * @param graph - The undirected weighted graph
299
+ * @returns The cut result with cut value and two partitions
283
300
  */
284
301
  function kargerSingleRun(graph) {
285
302
  // Create a copy of the graph
@@ -296,7 +313,8 @@ function kargerSingleRun(graph) {
296
313
  const edges = [];
297
314
  for (const [u, neighbors] of workGraph) {
298
315
  for (const [v, weight] of neighbors) {
299
- if (u < v) { // Avoid duplicates
316
+ if (u < v) {
317
+ // Avoid duplicates
300
318
  edges.push([u, v, weight]);
301
319
  }
302
320
  }
@@ -342,6 +360,10 @@ function kargerSingleRun(graph) {
342
360
  }
343
361
  /**
344
362
  * Contract edge in Karger's algorithm
363
+ * @param graph - The working graph to modify
364
+ * @param superNodes - Map tracking which original nodes are in each super node
365
+ * @param u - First endpoint of the edge to contract
366
+ * @param v - Second endpoint of the edge to contract (merged into u)
345
367
  */
346
368
  function contractKarger(graph, superNodes, u, v) {
347
369
  // Merge v into u
@@ -1 +1 @@
1
- {"version":3,"file":"min-cut.js","sourceRoot":"","sources":["../../../src/flow/min-cut.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"min-cut.js","sourceRoot":"","sources":["../../../src/flow/min-cut.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,14 @@
1
1
  /**
2
- * @graphty/algorithms - Graph algorithms library for browser environments
2
+ * graphty/algorithms - Graph algorithms library for browser environments
3
3
  *
4
4
  * A comprehensive TypeScript library implementing fundamental graph algorithms
5
5
  * optimized for browser environments and visualization applications.
6
+ * @module
6
7
  */
7
8
  export { Graph } from "./core/graph.js";
8
9
  export type { BellmanFordResult, CentralityOptions, CentralityResult, CommunityResult, ComponentResult, DijkstraOptions, Edge, FloydWarshallResult, GirvanNewmanOptions, GraphConfig, LouvainOptions, MSTResult, Node, NodeId, PageRankOptions, ShortestPathResult, TraversalOptions, TraversalResult, } from "./types/index.js";
9
10
  export * from "./algorithms/index.js";
10
11
  export * from "./research/index.js";
11
12
  export * from "./data-structures/index.js";
13
+ export * from "./optimized/index.js";
12
14
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAC,KAAK,EAAC,MAAM,iBAAiB,CAAC;AAGtC,YAAY,EACR,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,eAAe,EACf,IAAI,EACJ,mBAAmB,EACnB,mBAAmB,EACnB,WAAW,EACX,cAAc,EACd,SAAS,EACT,IAAI,EACJ,MAAM,EACN,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,GAClB,MAAM,kBAAkB,CAAC;AAG1B,cAAc,uBAAuB,CAAC;AAGtC,cAAc,qBAAqB,CAAC;AAGpC,cAAc,4BAA4B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAGxC,YAAY,EACR,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,eAAe,EACf,IAAI,EACJ,mBAAmB,EACnB,mBAAmB,EACnB,WAAW,EACX,cAAc,EACd,SAAS,EACT,IAAI,EACJ,MAAM,EACN,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,GAClB,MAAM,kBAAkB,CAAC;AAG1B,cAAc,uBAAuB,CAAC;AAGtC,cAAc,qBAAqB,CAAC;AAGpC,cAAc,4BAA4B,CAAC;AAG3C,cAAc,sBAAsB,CAAC"}
package/dist/src/index.js CHANGED
@@ -1,8 +1,9 @@
1
1
  /**
2
- * @graphty/algorithms - Graph algorithms library for browser environments
2
+ * graphty/algorithms - Graph algorithms library for browser environments
3
3
  *
4
4
  * A comprehensive TypeScript library implementing fundamental graph algorithms
5
5
  * optimized for browser environments and visualization applications.
6
+ * @module
6
7
  */
7
8
  // Core exports
8
9
  export { Graph } from "./core/graph.js";
@@ -12,4 +13,8 @@ export * from "./algorithms/index.js";
12
13
  export * from "./research/index.js";
13
14
  // Data structure exports
14
15
  export * from "./data-structures/index.js";
16
+ // Optimized algorithm exports
17
+ export * from "./optimized/index.js";
18
+ // Note: Configuration exports have been removed.
19
+ // The library now automatically optimizes based on graph size.
15
20
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,eAAe;AACf,OAAO,EAAC,KAAK,EAAC,MAAM,iBAAiB,CAAC;AAwBtC,oBAAoB;AACpB,cAAc,uBAAuB,CAAC;AAEtC,2CAA2C;AAC3C,cAAc,qBAAqB,CAAC;AAEpC,yBAAyB;AACzB,cAAc,4BAA4B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,eAAe;AACf,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAwBxC,oBAAoB;AACpB,cAAc,uBAAuB,CAAC;AAEtC,2CAA2C;AAC3C,cAAc,qBAAqB,CAAC;AAEpC,yBAAyB;AACzB,cAAc,4BAA4B,CAAC;AAE3C,8BAA8B;AAC9B,cAAc,sBAAsB,CAAC;AAErC,iDAAiD;AACjD,+DAA+D"}
@@ -16,24 +16,45 @@ import type { LinkPredictionOptions, LinkPredictionScore } from "./common-neighb
16
16
  */
17
17
  /**
18
18
  * Calculate Adamic-Adar index for a pair of nodes
19
+ * @param graph - The input graph
20
+ * @param source - The source node ID
21
+ * @param target - The target node ID
22
+ * @param options - Link prediction options
23
+ * @returns The Adamic-Adar score for the node pair
19
24
  */
20
25
  export declare function adamicAdarScore(graph: Graph, source: NodeId, target: NodeId, options?: LinkPredictionOptions): number;
21
26
  /**
22
27
  * Calculate Adamic-Adar scores for all possible node pairs
28
+ * @param graph - The input graph
29
+ * @param options - Link prediction options
30
+ * @returns Array of link prediction scores sorted by score descending
23
31
  */
24
32
  export declare function adamicAdarPrediction(graph: Graph, options?: LinkPredictionOptions): LinkPredictionScore[];
25
33
  /**
26
34
  * Calculate Adamic-Adar scores for specific node pairs
35
+ * @param graph - The input graph
36
+ * @param pairs - Array of node ID pairs to calculate scores for
37
+ * @param options - Link prediction options
38
+ * @returns Array of link prediction scores for the specified pairs
27
39
  */
28
40
  export declare function adamicAdarForPairs(graph: Graph, pairs: [NodeId, NodeId][], options?: LinkPredictionOptions): LinkPredictionScore[];
29
41
  /**
30
42
  * Get top Adamic-Adar candidates for link prediction for a specific node
43
+ * @param graph - The input graph
44
+ * @param node - The node ID to get candidates for
45
+ * @param options - Link prediction options with optional candidate list
46
+ * @returns Array of top link prediction candidates sorted by score descending
31
47
  */
32
48
  export declare function getTopAdamicAdarCandidatesForNode(graph: Graph, node: NodeId, options?: LinkPredictionOptions & {
33
49
  candidates?: NodeId[];
34
50
  }): LinkPredictionScore[];
35
51
  /**
36
52
  * Calculate precision and recall for Adamic-Adar link prediction evaluation
53
+ * @param trainingGraph - The training graph without test edges
54
+ * @param testEdges - Array of node pairs that are actual edges
55
+ * @param nonEdges - Array of node pairs that are not edges
56
+ * @param options - Link prediction options
57
+ * @returns Evaluation metrics including precision, recall, F1 score, and AUC
37
58
  */
38
59
  export declare function evaluateAdamicAdar(trainingGraph: Graph, testEdges: [NodeId, NodeId][], nonEdges: [NodeId, NodeId][], options?: LinkPredictionOptions): {
39
60
  precision: number;
@@ -43,6 +64,11 @@ export declare function evaluateAdamicAdar(trainingGraph: Graph, testEdges: [Nod
43
64
  };
44
65
  /**
45
66
  * Compare Adamic-Adar with Common Neighbors for the same dataset
67
+ * @param graph - The input graph
68
+ * @param testEdges - Array of node pairs that are actual edges
69
+ * @param nonEdges - Array of node pairs that are not edges
70
+ * @param options - Link prediction options
71
+ * @returns Comparison of evaluation metrics for both algorithms
46
72
  */
47
73
  export declare function compareAdamicAdarWithCommonNeighbors(graph: Graph, testEdges: [NodeId, NodeId][], nonEdges: [NodeId, NodeId][], options?: LinkPredictionOptions): {
48
74
  adamicAdar: ReturnType<typeof evaluateAdamicAdar>;
@@ -1 +1 @@
1
- {"version":3,"file":"adamic-adar.d.ts","sourceRoot":"","sources":["../../../src/link-prediction/adamic-adar.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,KAAK,EAAC,MAAM,kBAAkB,CAAC;AAC5C,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,mBAAmB,CAAC;AAC9C,OAAO,KAAK,EAAC,qBAAqB,EAAE,mBAAmB,EAAC,MAAM,uBAAuB,CAAC;AAEtF;;;;;;;;;;;;GAYG;AAEH;;GAEG;AACH,wBAAgB,eAAe,CAC3B,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,qBAA0B,GACpC,MAAM,CAiCR;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAChC,KAAK,EAAE,KAAK,EACZ,OAAO,GAAE,qBAA0B,GACpC,mBAAmB,EAAE,CA8CvB;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAC9B,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,EACzB,OAAO,GAAE,qBAA0B,GACpC,mBAAmB,EAAE,CAMvB;AAED;;GAEG;AACH,wBAAgB,iCAAiC,CAC7C,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,qBAAqB,GAAG;IAAC,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;CAAM,GAC9D,mBAAmB,EAAE,CAoCvB;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAC9B,aAAa,EAAE,KAAK,EACpB,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,EAC7B,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,EAC5B,OAAO,GAAE,qBAA0B,GACpC;IACK,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;CACf,CAgEJ;AAED;;GAEG;AACH,wBAAgB,oCAAoC,CAChD,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,EAC7B,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,EAC5B,OAAO,GAAE,qBAA0B,GACpC;IACK,UAAU,EAAE,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC;IAClD,eAAe,EAAE;QACb,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,MAAM,CAAC;QAChB,GAAG,EAAE,MAAM,CAAC;KACf,CAAC;CACL,CAkFJ"}
1
+ {"version":3,"file":"adamic-adar.d.ts","sourceRoot":"","sources":["../../../src/link-prediction/adamic-adar.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,KAAK,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAExF;;;;;;;;;;;;GAYG;AAEH;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAC3B,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,qBAA0B,GACpC,MAAM,CA6BR;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,GAAE,qBAA0B,GAAG,mBAAmB,EAAE,CA0C7G;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAC9B,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,EACzB,OAAO,GAAE,qBAA0B,GACpC,mBAAmB,EAAE,CAMvB;AAED;;;;;;GAMG;AACH,wBAAgB,iCAAiC,CAC7C,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,qBAAqB,GAAG;IAAE,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;CAAO,GAChE,mBAAmB,EAAE,CA+BvB;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAC9B,aAAa,EAAE,KAAK,EACpB,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,EAC7B,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,EAC5B,OAAO,GAAE,qBAA0B,GACpC;IACC,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;CACf,CAgEA;AAED;;;;;;;GAOG;AACH,wBAAgB,oCAAoC,CAChD,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,EAC7B,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,EAC5B,OAAO,GAAE,qBAA0B,GACpC;IACC,UAAU,EAAE,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC;IAClD,eAAe,EAAE;QACb,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,MAAM,CAAC;QAChB,GAAG,EAAE,MAAM,CAAC;KACf,CAAC;CACL,CAwEA"}
@@ -1,3 +1,4 @@
1
+ import { getCommonNeighbors, getIntermediateNodes } from "../utils/graph-utilities.js";
1
2
  /**
2
3
  * Adamic-Adar Index link prediction implementation
3
4
  *
@@ -13,38 +14,46 @@
13
14
  */
14
15
  /**
15
16
  * Calculate Adamic-Adar index for a pair of nodes
17
+ * @param graph - The input graph
18
+ * @param source - The source node ID
19
+ * @param target - The target node ID
20
+ * @param options - Link prediction options
21
+ * @returns The Adamic-Adar score for the node pair
16
22
  */
17
23
  export function adamicAdarScore(graph, source, target, options = {}) {
18
24
  if (!graph.hasNode(source) || !graph.hasNode(target)) {
19
25
  return 0;
20
26
  }
21
27
  const { directed = false } = options;
22
- // Get neighbors
23
- const sourceNeighbors = new Set(directed ? Array.from(graph.outNeighbors(source)) : Array.from(graph.neighbors(source)));
24
- const targetNeighbors = new Set(directed ? Array.from(graph.inNeighbors(target)) : Array.from(graph.neighbors(target)));
28
+ // Use utility function to get common neighbors
29
+ // For directed graphs, we want intermediate nodes that form paths source->X->target
30
+ const commonNeighborsSet = directed
31
+ ? getIntermediateNodes(graph, source, target)
32
+ : getCommonNeighbors(graph, source, target, false);
25
33
  // Calculate Adamic-Adar score
26
34
  let score = 0;
27
- for (const neighbor of sourceNeighbors) {
28
- if (targetNeighbors.has(neighbor)) {
29
- const degree = directed ?
30
- graph.outDegree(neighbor) : // Use out-degree for directed graphs
31
- graph.degree(neighbor); // Use total degree for undirected graphs
32
- if (degree > 1) {
33
- score += 1 / Math.log(degree);
34
- }
35
- else if (degree === 1) {
36
- // For degree 1, we can't use log(1) = 0, so use a small constant
37
- score += 1; // or some other reasonable value
38
- }
35
+ for (const neighbor of commonNeighborsSet) {
36
+ const degree = directed
37
+ ? graph.outDegree(neighbor) // Use out-degree for directed graphs
38
+ : graph.degree(neighbor); // Use total degree for undirected graphs
39
+ if (degree > 1) {
40
+ score += 1 / Math.log(degree);
41
+ }
42
+ else if (degree === 1) {
43
+ // For degree 1, we can't use log(1) = 0, so use a small constant
44
+ score += 1; // or some other reasonable value
39
45
  }
40
46
  }
41
47
  return score;
42
48
  }
43
49
  /**
44
50
  * Calculate Adamic-Adar scores for all possible node pairs
51
+ * @param graph - The input graph
52
+ * @param options - Link prediction options
53
+ * @returns Array of link prediction scores sorted by score descending
45
54
  */
46
55
  export function adamicAdarPrediction(graph, options = {}) {
47
- const { directed = false, includeExisting = false, topK, } = options;
56
+ const { directed = false, includeExisting = false, topK } = options;
48
57
  const scores = [];
49
58
  const nodes = Array.from(graph.nodes()).map((n) => n.id);
50
59
  for (let i = 0; i < nodes.length; i++) {
@@ -78,6 +87,10 @@ export function adamicAdarPrediction(graph, options = {}) {
78
87
  }
79
88
  /**
80
89
  * Calculate Adamic-Adar scores for specific node pairs
90
+ * @param graph - The input graph
91
+ * @param pairs - Array of node ID pairs to calculate scores for
92
+ * @param options - Link prediction options
93
+ * @returns Array of link prediction scores for the specified pairs
81
94
  */
82
95
  export function adamicAdarForPairs(graph, pairs, options = {}) {
83
96
  return pairs.map(([source, target]) => ({
@@ -88,12 +101,16 @@ export function adamicAdarForPairs(graph, pairs, options = {}) {
88
101
  }
89
102
  /**
90
103
  * Get top Adamic-Adar candidates for link prediction for a specific node
104
+ * @param graph - The input graph
105
+ * @param node - The node ID to get candidates for
106
+ * @param options - Link prediction options with optional candidate list
107
+ * @returns Array of top link prediction candidates sorted by score descending
91
108
  */
92
109
  export function getTopAdamicAdarCandidatesForNode(graph, node, options = {}) {
93
110
  if (!graph.hasNode(node)) {
94
111
  return [];
95
112
  }
96
- const { directed = false, includeExisting = false, topK = 10, candidates, } = options;
113
+ const { directed = false, includeExisting = false, topK = 10, candidates } = options;
97
114
  const scores = [];
98
115
  const targetNodes = candidates ?? Array.from(graph.nodes()).map((n) => n.id);
99
116
  for (const target of targetNodes) {
@@ -115,6 +132,11 @@ export function getTopAdamicAdarCandidatesForNode(graph, node, options = {}) {
115
132
  }
116
133
  /**
117
134
  * Calculate precision and recall for Adamic-Adar link prediction evaluation
135
+ * @param trainingGraph - The training graph without test edges
136
+ * @param testEdges - Array of node pairs that are actual edges
137
+ * @param nonEdges - Array of node pairs that are not edges
138
+ * @param options - Link prediction options
139
+ * @returns Evaluation metrics including precision, recall, F1 score, and AUC
118
140
  */
119
141
  export function evaluateAdamicAdar(trainingGraph, testEdges, nonEdges, options = {}) {
120
142
  // Get scores for test edges and non-edges
@@ -141,7 +163,7 @@ export function evaluateAdamicAdar(trainingGraph, testEdges, nonEdges, options =
141
163
  }
142
164
  const precision = truePositives / (truePositives + falsePositives);
143
165
  const recall = truePositives / totalPositives;
144
- const f1 = precision + recall > 0 ? 2 * (precision * recall) / (precision + recall) : 0;
166
+ const f1 = precision + recall > 0 ? (2 * (precision * recall)) / (precision + recall) : 0;
145
167
  if (f1 > bestF1) {
146
168
  bestF1 = f1;
147
169
  bestPrecision = precision;
@@ -176,6 +198,11 @@ export function evaluateAdamicAdar(trainingGraph, testEdges, nonEdges, options =
176
198
  }
177
199
  /**
178
200
  * Compare Adamic-Adar with Common Neighbors for the same dataset
201
+ * @param graph - The input graph
202
+ * @param testEdges - Array of node pairs that are actual edges
203
+ * @param nonEdges - Array of node pairs that are not edges
204
+ * @param options - Link prediction options
205
+ * @returns Comparison of evaluation metrics for both algorithms
179
206
  */
180
207
  export function compareAdamicAdarWithCommonNeighbors(graph, testEdges, nonEdges, options = {}) {
181
208
  // Import common neighbors evaluation function
@@ -183,17 +210,7 @@ export function compareAdamicAdarWithCommonNeighbors(graph, testEdges, nonEdges,
183
210
  const commonNeighborsPairs = (pairs) => pairs.map(([source, target]) => ({
184
211
  source,
185
212
  target,
186
- score: (() => {
187
- const sourceNeighbors = new Set(Array.from(graph.neighbors(source)));
188
- const targetNeighbors = new Set(Array.from(graph.neighbors(target)));
189
- let count = 0;
190
- for (const n of sourceNeighbors) {
191
- if (targetNeighbors.has(n)) {
192
- count++;
193
- }
194
- }
195
- return count;
196
- })(),
213
+ score: getCommonNeighbors(graph, source, target, options.directed).size,
197
214
  }));
198
215
  const testScores = commonNeighborsPairs(testEdges);
199
216
  const nonEdgeScores = commonNeighborsPairs(nonEdges);
@@ -216,7 +233,7 @@ export function compareAdamicAdarWithCommonNeighbors(graph, testEdges, nonEdges,
216
233
  }
217
234
  const precision = truePositives / (truePositives + falsePositives);
218
235
  const recall = truePositives / totalPositives;
219
- const f1 = precision + recall > 0 ? 2 * (precision * recall) / (precision + recall) : 0;
236
+ const f1 = precision + recall > 0 ? (2 * (precision * recall)) / (precision + recall) : 0;
220
237
  if (f1 > bestF1) {
221
238
  bestF1 = f1;
222
239
  bestPrecision = precision;
@@ -1 +1 @@
1
- {"version":3,"file":"adamic-adar.js","sourceRoot":"","sources":["../../../src/link-prediction/adamic-adar.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"adamic-adar.js","sourceRoot":"","sources":["../../../src/link-prediction/adamic-adar.ts"],"names":[],"mappings":"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"}
@@ -22,24 +22,45 @@ export interface LinkPredictionOptions {
22
22
  }
23
23
  /**
24
24
  * Calculate common neighbors score for a pair of nodes
25
+ * @param graph - The input graph
26
+ * @param source - The source node ID
27
+ * @param target - The target node ID
28
+ * @param options - Link prediction options
29
+ * @returns The number of common neighbors
25
30
  */
26
31
  export declare function commonNeighborsScore(graph: Graph, source: NodeId, target: NodeId, options?: LinkPredictionOptions): number;
27
32
  /**
28
33
  * Calculate common neighbors scores for all possible node pairs
34
+ * @param graph - The input graph
35
+ * @param options - Link prediction options
36
+ * @returns Array of link prediction scores sorted by score descending
29
37
  */
30
38
  export declare function commonNeighborsPrediction(graph: Graph, options?: LinkPredictionOptions): LinkPredictionScore[];
31
39
  /**
32
40
  * Calculate common neighbors scores for specific node pairs
41
+ * @param graph - The input graph
42
+ * @param pairs - Array of node ID pairs to calculate scores for
43
+ * @param options - Link prediction options
44
+ * @returns Array of link prediction scores for the specified pairs
33
45
  */
34
46
  export declare function commonNeighborsForPairs(graph: Graph, pairs: [NodeId, NodeId][], options?: LinkPredictionOptions): LinkPredictionScore[];
35
47
  /**
36
48
  * Get top candidates for link prediction for a specific node
49
+ * @param graph - The input graph
50
+ * @param node - The node ID to get candidates for
51
+ * @param options - Link prediction options with optional candidate list
52
+ * @returns Array of top link prediction candidates sorted by score descending
37
53
  */
38
54
  export declare function getTopCandidatesForNode(graph: Graph, node: NodeId, options?: LinkPredictionOptions & {
39
55
  candidates?: NodeId[];
40
56
  }): LinkPredictionScore[];
41
57
  /**
42
58
  * Calculate precision and recall for link prediction evaluation
59
+ * @param trainingGraph - The training graph without test edges
60
+ * @param testEdges - Array of node pairs that are actual edges
61
+ * @param nonEdges - Array of node pairs that are not edges
62
+ * @param options - Link prediction options
63
+ * @returns Evaluation metrics including precision, recall, F1 score, and AUC
43
64
  */
44
65
  export declare function evaluateCommonNeighbors(trainingGraph: Graph, testEdges: [NodeId, NodeId][], nonEdges: [NodeId, NodeId][], options?: LinkPredictionOptions): {
45
66
  precision: number;
@@ -1 +1 @@
1
- {"version":3,"file":"common-neighbors.d.ts","sourceRoot":"","sources":["../../../src/link-prediction/common-neighbors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,KAAK,EAAC,MAAM,kBAAkB,CAAC;AAC5C,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,mBAAmB,CAAC;AAE9C;;;;;;;;;GASG;AAEH,MAAM,WAAW,mBAAmB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,qBAAqB;IAClC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAChC,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,qBAA0B,GACpC,MAAM,CAwBR;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CACrC,KAAK,EAAE,KAAK,EACZ,OAAO,GAAE,qBAA0B,GACpC,mBAAmB,EAAE,CA8CvB;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACnC,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,EACzB,OAAO,GAAE,qBAA0B,GACpC,mBAAmB,EAAE,CAMvB;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACnC,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,qBAAqB,GAAG;IAAC,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;CAAM,GAC9D,mBAAmB,EAAE,CAoCvB;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACnC,aAAa,EAAE,KAAK,EACpB,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,EAC7B,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,EAC5B,OAAO,GAAE,qBAA0B,GACpC;IACK,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;CACf,CAgEJ"}
1
+ {"version":3,"file":"common-neighbors.d.ts","sourceRoot":"","sources":["../../../src/link-prediction/common-neighbors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAGhD;;;;;;;;;GASG;AAEH,MAAM,WAAW,mBAAmB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,qBAAqB;IAClC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAChC,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,qBAA0B,GACpC,MAAM,CAcR;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,GAAE,qBAA0B,GAAG,mBAAmB,EAAE,CA0ClH;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CACnC,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,EACzB,OAAO,GAAE,qBAA0B,GACpC,mBAAmB,EAAE,CAMvB;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CACnC,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,qBAAqB,GAAG;IAAE,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;CAAO,GAChE,mBAAmB,EAAE,CA+BvB;AAED;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CACnC,aAAa,EAAE,KAAK,EACpB,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,EAC7B,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,EAC5B,OAAO,GAAE,qBAA0B,GACpC;IACC,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;CACf,CAgEA"}