graphbox 1.2.2 → 1.3.0

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 (637) hide show
  1. package/README.md +98 -41
  2. package/dist/__tests__/integration/cliquewidth.integration.test.d.ts +8 -0
  3. package/dist/__tests__/integration/cliquewidth.integration.test.d.ts.map +1 -0
  4. package/dist/__tests__/integration/modular.integration.test.d.ts +8 -0
  5. package/dist/__tests__/integration/modular.integration.test.d.ts.map +1 -0
  6. package/dist/__tests__/integration/pathwidth.integration.test.d.ts +8 -0
  7. package/dist/__tests__/integration/pathwidth.integration.test.d.ts.map +1 -0
  8. package/dist/__tests__/integration/planar.integration.test.d.ts +3 -3
  9. package/dist/__tests__/integration/ptolemaic.integration.test.d.ts +8 -0
  10. package/dist/__tests__/integration/ptolemaic.integration.test.d.ts.map +1 -0
  11. package/dist/__tests__/integration/quasiline.integration.test.d.ts +8 -0
  12. package/dist/__tests__/integration/quasiline.integration.test.d.ts.map +1 -0
  13. package/dist/algorithms/clustering/louvain.d.ts +22 -6
  14. package/dist/algorithms/clustering/louvain.d.ts.map +1 -1
  15. package/dist/algorithms/extraction/forbidden-subgraphs.d.ts +211 -0
  16. package/dist/algorithms/extraction/forbidden-subgraphs.d.ts.map +1 -0
  17. package/dist/algorithms/pathfinding/path-ranking.d.ts.map +1 -1
  18. package/dist/algorithms/pathfinding/random-path-sampling.d.ts +31 -0
  19. package/dist/algorithms/pathfinding/random-path-sampling.d.ts.map +1 -0
  20. package/dist/algorithms/pathfinding/shortest-path-ranking.d.ts +28 -0
  21. package/dist/algorithms/pathfinding/shortest-path-ranking.d.ts.map +1 -0
  22. package/dist/algorithms/traversal/bidirectional-bfs.d.ts +15 -0
  23. package/dist/algorithms/traversal/bidirectional-bfs.d.ts.map +1 -1
  24. package/dist/algorithms/traversal/degree-prioritised-expansion-intersection.unit.test.d.ts +13 -0
  25. package/dist/algorithms/traversal/degree-prioritised-expansion-intersection.unit.test.d.ts.map +1 -0
  26. package/dist/algorithms/traversal/degree-prioritised-expansion.d.ts +34 -2
  27. package/dist/algorithms/traversal/degree-prioritised-expansion.d.ts.map +1 -1
  28. package/dist/algorithms/traversal/entropy-guided-expansion.d.ts +172 -0
  29. package/dist/algorithms/traversal/entropy-guided-expansion.d.ts.map +1 -0
  30. package/dist/algorithms/traversal/entropy-guided-expansion.unit.test.d.ts +2 -0
  31. package/dist/algorithms/traversal/entropy-guided-expansion.unit.test.d.ts.map +1 -0
  32. package/dist/algorithms/traversal/heterogeneity-aware-expansion.d.ts +199 -0
  33. package/dist/algorithms/traversal/heterogeneity-aware-expansion.d.ts.map +1 -0
  34. package/dist/algorithms/traversal/heterogeneity-aware-expansion.unit.test.d.ts +2 -0
  35. package/dist/algorithms/traversal/heterogeneity-aware-expansion.unit.test.d.ts.map +1 -0
  36. package/dist/algorithms/traversal/index.d.ts +14 -0
  37. package/dist/algorithms/traversal/index.d.ts.map +1 -1
  38. package/dist/algorithms/traversal/intelligent-delayed-termination.d.ts +221 -0
  39. package/dist/algorithms/traversal/intelligent-delayed-termination.d.ts.map +1 -0
  40. package/dist/algorithms/traversal/intelligent-delayed-termination.unit.test.d.ts +2 -0
  41. package/dist/algorithms/traversal/intelligent-delayed-termination.unit.test.d.ts.map +1 -0
  42. package/dist/algorithms/traversal/multi-frontier-adaptive-expansion.d.ts +245 -0
  43. package/dist/algorithms/traversal/multi-frontier-adaptive-expansion.d.ts.map +1 -0
  44. package/dist/algorithms/traversal/multi-frontier-adaptive-expansion.unit.test.d.ts +2 -0
  45. package/dist/algorithms/traversal/multi-frontier-adaptive-expansion.unit.test.d.ts.map +1 -0
  46. package/dist/algorithms/traversal/overlap-based/frontier-state.d.ts +25 -0
  47. package/dist/algorithms/traversal/overlap-based/frontier-state.d.ts.map +1 -0
  48. package/dist/algorithms/traversal/overlap-based/index.d.ts +71 -0
  49. package/dist/algorithms/traversal/overlap-based/index.d.ts.map +1 -0
  50. package/dist/algorithms/traversal/overlap-based/overlap-based-expansion.d.ts +182 -0
  51. package/dist/algorithms/traversal/overlap-based/overlap-based-expansion.d.ts.map +1 -0
  52. package/dist/algorithms/traversal/overlap-based/overlap-result.d.ts +82 -0
  53. package/dist/algorithms/traversal/overlap-based/overlap-result.d.ts.map +1 -0
  54. package/dist/algorithms/traversal/overlap-based/strategies/between-graph/between-graph-strategy.d.ts +42 -0
  55. package/dist/algorithms/traversal/overlap-based/strategies/between-graph/between-graph-strategy.d.ts.map +1 -0
  56. package/dist/algorithms/traversal/overlap-based/strategies/between-graph/minimal-paths.strategy.d.ts +41 -0
  57. package/dist/algorithms/traversal/overlap-based/strategies/between-graph/minimal-paths.strategy.d.ts.map +1 -0
  58. package/dist/algorithms/traversal/overlap-based/strategies/between-graph/salience-preserving.strategy.d.ts +82 -0
  59. package/dist/algorithms/traversal/overlap-based/strategies/between-graph/salience-preserving.strategy.d.ts.map +1 -0
  60. package/dist/algorithms/traversal/overlap-based/strategies/between-graph/truncated-component.strategy.d.ts +59 -0
  61. package/dist/algorithms/traversal/overlap-based/strategies/between-graph/truncated-component.strategy.d.ts.map +1 -0
  62. package/dist/algorithms/traversal/overlap-based/strategies/n1-handling/coverage-threshold.strategy.d.ts +57 -0
  63. package/dist/algorithms/traversal/overlap-based/strategies/n1-handling/coverage-threshold.strategy.d.ts.map +1 -0
  64. package/dist/algorithms/traversal/overlap-based/strategies/n1-handling/n1-handling-strategy.d.ts +25 -0
  65. package/dist/algorithms/traversal/overlap-based/strategies/n1-handling/n1-handling-strategy.d.ts.map +1 -0
  66. package/dist/algorithms/traversal/overlap-based/strategies/overlap-detection/overlap-detection-strategy.d.ts +26 -0
  67. package/dist/algorithms/traversal/overlap-based/strategies/overlap-detection/overlap-detection-strategy.d.ts.map +1 -0
  68. package/dist/algorithms/traversal/overlap-based/strategies/overlap-detection/physical-meeting.strategy.d.ts +35 -0
  69. package/dist/algorithms/traversal/overlap-based/strategies/overlap-detection/physical-meeting.strategy.d.ts.map +1 -0
  70. package/dist/algorithms/traversal/overlap-based/strategies/overlap-detection/sphere-intersection.strategy.d.ts +69 -0
  71. package/dist/algorithms/traversal/overlap-based/strategies/overlap-detection/sphere-intersection.strategy.d.ts.map +1 -0
  72. package/dist/algorithms/traversal/overlap-based/strategies/overlap-detection/threshold-sharing.strategy.d.ts +72 -0
  73. package/dist/algorithms/traversal/overlap-based/strategies/overlap-detection/threshold-sharing.strategy.d.ts.map +1 -0
  74. package/dist/algorithms/traversal/overlap-based/strategies/termination/common-convergence.strategy.d.ts +45 -0
  75. package/dist/algorithms/traversal/overlap-based/strategies/termination/common-convergence.strategy.d.ts.map +1 -0
  76. package/dist/algorithms/traversal/overlap-based/strategies/termination/full-pairwise.strategy.d.ts +43 -0
  77. package/dist/algorithms/traversal/overlap-based/strategies/termination/full-pairwise.strategy.d.ts.map +1 -0
  78. package/dist/algorithms/traversal/overlap-based/strategies/termination/termination-strategy.d.ts +40 -0
  79. package/dist/algorithms/traversal/overlap-based/strategies/termination/termination-strategy.d.ts.map +1 -0
  80. package/dist/algorithms/traversal/overlap-based/strategies/termination/transitive-connectivity.strategy.d.ts +45 -0
  81. package/dist/algorithms/traversal/overlap-based/strategies/termination/transitive-connectivity.strategy.d.ts.map +1 -0
  82. package/dist/algorithms/traversal/path-preserving-expansion.d.ts +197 -0
  83. package/dist/algorithms/traversal/path-preserving-expansion.d.ts.map +1 -0
  84. package/dist/algorithms/traversal/priority-calculator.d.ts +135 -0
  85. package/dist/algorithms/traversal/priority-calculator.d.ts.map +1 -0
  86. package/dist/algorithms/traversal/priority-queue.d.ts +6 -0
  87. package/dist/algorithms/traversal/priority-queue.d.ts.map +1 -1
  88. package/dist/algorithms/traversal/retrospective-salience-expansion.d.ts +173 -0
  89. package/dist/algorithms/traversal/retrospective-salience-expansion.d.ts.map +1 -0
  90. package/dist/algorithms/traversal/retrospective-salience-expansion.unit.test.d.ts +5 -0
  91. package/dist/algorithms/traversal/retrospective-salience-expansion.unit.test.d.ts.map +1 -0
  92. package/dist/algorithms/traversal/salience-prioritised-expansion.d.ts +149 -0
  93. package/dist/algorithms/traversal/salience-prioritised-expansion.d.ts.map +1 -0
  94. package/dist/algorithms/types/clustering-types.d.ts +2 -2
  95. package/dist/algorithms/types/clustering-types.d.ts.map +1 -1
  96. package/dist/algorithms/utils/csr.d.ts.map +1 -1
  97. package/dist/analyzer/advanced-props.d.ts.map +1 -1
  98. package/dist/analyzer/forbidden-subgraph.d.ts +59 -0
  99. package/dist/analyzer/forbidden-subgraph.d.ts.map +1 -0
  100. package/dist/analyzer/geometric.d.ts +21 -0
  101. package/dist/analyzer/geometric.d.ts.map +1 -0
  102. package/dist/analyzer/geometric.unit.test.d.ts +5 -0
  103. package/dist/analyzer/geometric.unit.test.d.ts.map +1 -0
  104. package/dist/analyzer/helpers.d.ts +2 -0
  105. package/dist/analyzer/helpers.d.ts.map +1 -1
  106. package/dist/analyzer/intersection.d.ts +17 -0
  107. package/dist/analyzer/intersection.d.ts.map +1 -0
  108. package/dist/analyzer/main.d.ts +22 -0
  109. package/dist/analyzer/main.d.ts.map +1 -1
  110. package/dist/analyzer/perfect-variants.d.ts +49 -0
  111. package/dist/analyzer/perfect-variants.d.ts.map +1 -0
  112. package/dist/analyzer/perfect-variants.unit.test.d.ts +5 -0
  113. package/dist/analyzer/perfect-variants.unit.test.d.ts.map +1 -0
  114. package/dist/analyzer/predicates.d.ts +30 -3
  115. package/dist/analyzer/predicates.d.ts.map +1 -1
  116. package/dist/analyzer/probe.d.ts +15 -0
  117. package/dist/analyzer/probe.d.ts.map +1 -0
  118. package/dist/analyzer/structural.d.ts +13 -0
  119. package/dist/analyzer/structural.d.ts.map +1 -0
  120. package/dist/analyzer/structure.d.ts.map +1 -1
  121. package/dist/analyzer/width.d.ts +33 -0
  122. package/dist/analyzer/width.d.ts.map +1 -0
  123. package/dist/analyzer/width.unit.test.d.ts +5 -0
  124. package/dist/analyzer/width.unit.test.d.ts.map +1 -0
  125. package/dist/cli-commands/analyze.d.ts +30 -0
  126. package/dist/cli-commands/analyze.d.ts.map +1 -0
  127. package/dist/cli-commands/evaluate.d.ts +64 -0
  128. package/dist/cli-commands/evaluate.d.ts.map +1 -0
  129. package/dist/cli-commands/generate.d.ts +34 -0
  130. package/dist/cli-commands/generate.d.ts.map +1 -0
  131. package/dist/cli-commands/validate.d.ts +32 -0
  132. package/dist/cli-commands/validate.d.ts.map +1 -0
  133. package/dist/cli-utils/arg-parser.d.ts +55 -0
  134. package/dist/cli-utils/arg-parser.d.ts.map +1 -0
  135. package/dist/cli-utils/arg-parser.unit.test.d.ts +5 -0
  136. package/dist/cli-utils/arg-parser.unit.test.d.ts.map +1 -0
  137. package/dist/cli-utils/error-formatter.d.ts +27 -0
  138. package/dist/cli-utils/error-formatter.d.ts.map +1 -0
  139. package/dist/cli-utils/format-detection.d.ts +25 -0
  140. package/dist/cli-utils/format-detection.d.ts.map +1 -0
  141. package/dist/cli-utils/format-detection.unit.test.d.ts +5 -0
  142. package/dist/cli-utils/format-detection.unit.test.d.ts.map +1 -0
  143. package/dist/cli-utils/graph-converter.d.ts +32 -0
  144. package/dist/cli-utils/graph-converter.d.ts.map +1 -0
  145. package/dist/cli-utils/graph-converter.unit.test.d.ts +5 -0
  146. package/dist/cli-utils/graph-converter.unit.test.d.ts.map +1 -0
  147. package/dist/cli-utils/graph-loader.d.ts +30 -0
  148. package/dist/cli-utils/graph-loader.d.ts.map +1 -0
  149. package/dist/cli-utils/spec-utils.d.ts +30 -0
  150. package/dist/cli-utils/spec-utils.d.ts.map +1 -0
  151. package/dist/cli.js +11416 -15
  152. package/dist/domain/claims.d.ts +56 -0
  153. package/dist/domain/claims.d.ts.map +1 -0
  154. package/dist/domain/index.d.ts +8 -0
  155. package/dist/domain/index.d.ts.map +1 -0
  156. package/dist/domain/tables.d.ts +66 -0
  157. package/dist/domain/tables.d.ts.map +1 -0
  158. package/dist/experiments/baselines/betweenness-ranking.d.ts +38 -0
  159. package/dist/experiments/baselines/betweenness-ranking.d.ts.map +1 -0
  160. package/dist/experiments/baselines/cross-seed-affinity.d.ts +141 -0
  161. package/dist/experiments/baselines/cross-seed-affinity.d.ts.map +1 -0
  162. package/dist/experiments/baselines/degree-sum-ranking.d.ts +38 -0
  163. package/dist/experiments/baselines/degree-sum-ranking.d.ts.map +1 -0
  164. package/dist/experiments/baselines/degree-surprise.d.ts +134 -0
  165. package/dist/experiments/baselines/degree-surprise.d.ts.map +1 -0
  166. package/dist/experiments/baselines/delayed-termination.d.ts +138 -0
  167. package/dist/experiments/baselines/delayed-termination.d.ts.map +1 -0
  168. package/dist/experiments/baselines/ensemble-expansion.d.ts +123 -0
  169. package/dist/experiments/baselines/ensemble-expansion.d.ts.map +1 -0
  170. package/dist/experiments/baselines/frontier-balanced.d.ts +3 -0
  171. package/dist/experiments/baselines/frontier-balanced.d.ts.map +1 -1
  172. package/dist/experiments/baselines/index.d.ts +16 -0
  173. package/dist/experiments/baselines/index.d.ts.map +1 -1
  174. package/dist/experiments/baselines/jaccard-arithmetic-ranking.d.ts +38 -0
  175. package/dist/experiments/baselines/jaccard-arithmetic-ranking.d.ts.map +1 -0
  176. package/dist/experiments/baselines/pagerank-sum-ranking.d.ts +46 -0
  177. package/dist/experiments/baselines/pagerank-sum-ranking.d.ts.map +1 -0
  178. package/dist/experiments/baselines/random-path-ranking.d.ts +42 -0
  179. package/dist/experiments/baselines/random-path-ranking.d.ts.map +1 -0
  180. package/dist/experiments/baselines/random-priority.d.ts +3 -0
  181. package/dist/experiments/baselines/random-priority.d.ts.map +1 -1
  182. package/dist/experiments/baselines/retroactive-path-enum.d.ts +91 -0
  183. package/dist/experiments/baselines/retroactive-path-enum.d.ts.map +1 -0
  184. package/dist/experiments/baselines/shortest-path-ranking.d.ts +40 -0
  185. package/dist/experiments/baselines/shortest-path-ranking.d.ts.map +1 -0
  186. package/dist/experiments/baselines/standard-bfs.d.ts +7 -0
  187. package/dist/experiments/baselines/standard-bfs.d.ts.map +1 -1
  188. package/dist/experiments/evaluation/__tests__/harness/evaluation.exp.integration.test.d.ts +13 -0
  189. package/dist/experiments/evaluation/__tests__/harness/evaluation.exp.integration.test.d.ts.map +1 -0
  190. package/dist/experiments/evaluation/__tests__/harness/evaluator.d.ts +55 -0
  191. package/dist/experiments/evaluation/__tests__/harness/evaluator.d.ts.map +1 -0
  192. package/dist/experiments/evaluation/__tests__/harness/fixtures.d.ts +45 -0
  193. package/dist/experiments/evaluation/__tests__/harness/fixtures.d.ts.map +1 -0
  194. package/dist/experiments/evaluation/__tests__/harness/index.d.ts +16 -0
  195. package/dist/experiments/evaluation/__tests__/harness/index.d.ts.map +1 -0
  196. package/dist/experiments/evaluation/__tests__/harness/types.d.ts +138 -0
  197. package/dist/experiments/evaluation/__tests__/harness/types.d.ts.map +1 -0
  198. package/dist/experiments/evaluation/__tests__/originality-correctness-significance.integration.test.d.ts +31 -0
  199. package/dist/experiments/evaluation/__tests__/originality-correctness-significance.integration.test.d.ts.map +1 -0
  200. package/dist/experiments/evaluation/__tests__/thesis-validation.exp.integration.test.d.ts +15 -0
  201. package/dist/experiments/evaluation/__tests__/thesis-validation.exp.integration.test.d.ts.map +1 -0
  202. package/dist/experiments/evaluation/__tests__/validation/adapter-roundtrip.unit.test.d.ts +14 -0
  203. package/dist/experiments/evaluation/__tests__/validation/adapter-roundtrip.unit.test.d.ts.map +1 -0
  204. package/dist/experiments/evaluation/__tests__/validation/canary-tests.integration.test.d.ts +17 -0
  205. package/dist/experiments/evaluation/__tests__/validation/canary-tests.integration.test.d.ts.map +1 -0
  206. package/dist/experiments/evaluation/__tests__/validation/common/baselines/high-degree-first.d.ts +26 -0
  207. package/dist/experiments/evaluation/__tests__/validation/common/baselines/high-degree-first.d.ts.map +1 -0
  208. package/dist/experiments/evaluation/__tests__/validation/common/baselines/low-degree-first.d.ts +26 -0
  209. package/dist/experiments/evaluation/__tests__/validation/common/baselines/low-degree-first.d.ts.map +1 -0
  210. package/dist/experiments/evaluation/__tests__/validation/common/benchmark-graph-expander.d.ts +58 -0
  211. package/dist/experiments/evaluation/__tests__/validation/common/benchmark-graph-expander.d.ts.map +1 -0
  212. package/dist/experiments/evaluation/__tests__/validation/common/benchmark-graph-expander.unit.test.d.ts +16 -0
  213. package/dist/experiments/evaluation/__tests__/validation/common/benchmark-graph-expander.unit.test.d.ts.map +1 -0
  214. package/dist/experiments/evaluation/__tests__/validation/common/graph-generators.d.ts +51 -0
  215. package/dist/experiments/evaluation/__tests__/validation/common/graph-generators.d.ts.map +1 -0
  216. package/dist/experiments/evaluation/__tests__/validation/common/instrumented-expander.d.ts +31 -0
  217. package/dist/experiments/evaluation/__tests__/validation/common/instrumented-expander.d.ts.map +1 -0
  218. package/dist/experiments/evaluation/__tests__/validation/common/instrumented-expander.unit.test.d.ts +16 -0
  219. package/dist/experiments/evaluation/__tests__/validation/common/instrumented-expander.unit.test.d.ts.map +1 -0
  220. package/dist/experiments/evaluation/__tests__/validation/common/path-ranking-helpers.d.ts +95 -0
  221. package/dist/experiments/evaluation/__tests__/validation/common/path-ranking-helpers.d.ts.map +1 -0
  222. package/dist/experiments/evaluation/__tests__/validation/common/representativeness-helpers.d.ts +56 -0
  223. package/dist/experiments/evaluation/__tests__/validation/common/representativeness-helpers.d.ts.map +1 -0
  224. package/dist/experiments/evaluation/__tests__/validation/common/statistical-functions.d.ts +78 -0
  225. package/dist/experiments/evaluation/__tests__/validation/common/statistical-functions.d.ts.map +1 -0
  226. package/dist/experiments/evaluation/__tests__/validation/common/test-graph-expander.d.ts +32 -0
  227. package/dist/experiments/evaluation/__tests__/validation/common/test-graph-expander.d.ts.map +1 -0
  228. package/dist/experiments/evaluation/__tests__/validation/common/test-graph-expander.unit.test.d.ts +15 -0
  229. package/dist/experiments/evaluation/__tests__/validation/common/test-graph-expander.unit.test.d.ts.map +1 -0
  230. package/dist/experiments/evaluation/__tests__/validation/comparative/comparative-summary.exp.integration.test.d.ts +10 -0
  231. package/dist/experiments/evaluation/__tests__/validation/comparative/comparative-summary.exp.integration.test.d.ts.map +1 -0
  232. package/dist/experiments/evaluation/__tests__/validation/comparative/execution-time.exp.integration.test.d.ts +7 -0
  233. package/dist/experiments/evaluation/__tests__/validation/comparative/execution-time.exp.integration.test.d.ts.map +1 -0
  234. package/dist/experiments/evaluation/__tests__/validation/comparative/literature-review-metrics.exp.integration.test.d.ts +13 -0
  235. package/dist/experiments/evaluation/__tests__/validation/comparative/literature-review-metrics.exp.integration.test.d.ts.map +1 -0
  236. package/dist/experiments/evaluation/__tests__/validation/comparative/method-ranking.exp.integration.test.d.ts +8 -0
  237. package/dist/experiments/evaluation/__tests__/validation/comparative/method-ranking.exp.integration.test.d.ts.map +1 -0
  238. package/dist/experiments/evaluation/__tests__/validation/comparative/multi-method-comparison.exp.integration.test.d.ts +9 -0
  239. package/dist/experiments/evaluation/__tests__/validation/comparative/multi-method-comparison.exp.integration.test.d.ts.map +1 -0
  240. package/dist/experiments/evaluation/__tests__/validation/comparative/novel-algorithm-comparison.exp.integration.test.d.ts +12 -0
  241. package/dist/experiments/evaluation/__tests__/validation/comparative/novel-algorithm-comparison.exp.integration.test.d.ts.map +1 -0
  242. package/dist/experiments/evaluation/__tests__/validation/comparative/perturbation-consistency.exp.integration.test.d.ts +9 -0
  243. package/dist/experiments/evaluation/__tests__/validation/comparative/perturbation-consistency.exp.integration.test.d.ts.map +1 -0
  244. package/dist/experiments/evaluation/__tests__/validation/comparative/validation-summary.exp.integration.test.d.ts +9 -0
  245. package/dist/experiments/evaluation/__tests__/validation/comparative/validation-summary.exp.integration.test.d.ts.map +1 -0
  246. package/dist/experiments/evaluation/__tests__/validation/comparative/variability-injection.exp.integration.test.d.ts +2 -0
  247. package/dist/experiments/evaluation/__tests__/validation/comparative/variability-injection.exp.integration.test.d.ts.map +1 -0
  248. package/dist/experiments/evaluation/__tests__/validation/graph-adapters.property.unit.test.d.ts +15 -0
  249. package/dist/experiments/evaluation/__tests__/validation/graph-adapters.property.unit.test.d.ts.map +1 -0
  250. package/dist/experiments/evaluation/__tests__/validation/primary/classification/classification-evaluation.exp.integration.test.d.ts +14 -0
  251. package/dist/experiments/evaluation/__tests__/validation/primary/classification/classification-evaluation.exp.integration.test.d.ts.map +1 -0
  252. package/dist/experiments/evaluation/__tests__/validation/primary/community-detection/louvain/benchmarks/cora.exp.integration.test.d.ts +2 -0
  253. package/dist/experiments/evaluation/__tests__/validation/primary/community-detection/louvain/benchmarks/cora.exp.integration.test.d.ts.map +1 -0
  254. package/dist/experiments/evaluation/__tests__/validation/primary/community-detection/louvain/benchmarks/facebook.exp.integration.test.d.ts +2 -0
  255. package/dist/experiments/evaluation/__tests__/validation/primary/community-detection/louvain/benchmarks/facebook.exp.integration.test.d.ts.map +1 -0
  256. package/dist/experiments/evaluation/__tests__/validation/primary/community-detection/louvain/benchmarks/karate-club.exp.integration.test.d.ts +2 -0
  257. package/dist/experiments/evaluation/__tests__/validation/primary/community-detection/louvain/benchmarks/karate-club.exp.integration.test.d.ts.map +1 -0
  258. package/dist/experiments/evaluation/__tests__/validation/primary/community-detection/louvain/benchmarks/les-mis.exp.integration.test.d.ts +2 -0
  259. package/dist/experiments/evaluation/__tests__/validation/primary/community-detection/louvain/benchmarks/les-mis.exp.integration.test.d.ts.map +1 -0
  260. package/dist/experiments/evaluation/__tests__/validation/primary/community-detection/louvain/comparative/method-comparison.exp.integration.test.d.ts +2 -0
  261. package/dist/experiments/evaluation/__tests__/validation/primary/community-detection/louvain/comparative/method-comparison.exp.integration.test.d.ts.map +1 -0
  262. package/dist/experiments/evaluation/__tests__/validation/primary/community-detection/louvain/correctness/modularity-quality.exp.integration.test.d.ts +2 -0
  263. package/dist/experiments/evaluation/__tests__/validation/primary/community-detection/louvain/correctness/modularity-quality.exp.integration.test.d.ts.map +1 -0
  264. package/dist/experiments/evaluation/__tests__/validation/primary/decomposition/k-core/benchmarks/cora.exp.integration.test.d.ts +2 -0
  265. package/dist/experiments/evaluation/__tests__/validation/primary/decomposition/k-core/benchmarks/cora.exp.integration.test.d.ts.map +1 -0
  266. package/dist/experiments/evaluation/__tests__/validation/primary/decomposition/k-core/benchmarks/facebook.exp.integration.test.d.ts +2 -0
  267. package/dist/experiments/evaluation/__tests__/validation/primary/decomposition/k-core/benchmarks/facebook.exp.integration.test.d.ts.map +1 -0
  268. package/dist/experiments/evaluation/__tests__/validation/primary/decomposition/k-core/benchmarks/karate-club.exp.integration.test.d.ts +2 -0
  269. package/dist/experiments/evaluation/__tests__/validation/primary/decomposition/k-core/benchmarks/karate-club.exp.integration.test.d.ts.map +1 -0
  270. package/dist/experiments/evaluation/__tests__/validation/primary/decomposition/k-core/benchmarks/les-mis.exp.integration.test.d.ts +2 -0
  271. package/dist/experiments/evaluation/__tests__/validation/primary/decomposition/k-core/benchmarks/les-mis.exp.integration.test.d.ts.map +1 -0
  272. package/dist/experiments/evaluation/__tests__/validation/primary/decomposition/k-core/comparative/core-periphery-analysis.exp.integration.test.d.ts +2 -0
  273. package/dist/experiments/evaluation/__tests__/validation/primary/decomposition/k-core/comparative/core-periphery-analysis.exp.integration.test.d.ts.map +1 -0
  274. package/dist/experiments/evaluation/__tests__/validation/primary/decomposition/k-core/correctness/nested-hierarchy.exp.integration.test.d.ts +2 -0
  275. package/dist/experiments/evaluation/__tests__/validation/primary/decomposition/k-core/correctness/nested-hierarchy.exp.integration.test.d.ts.map +1 -0
  276. package/dist/experiments/evaluation/__tests__/validation/primary/generation/generation-evaluation.exp.integration.test.d.ts +14 -0
  277. package/dist/experiments/evaluation/__tests__/validation/primary/generation/generation-evaluation.exp.integration.test.d.ts.map +1 -0
  278. package/dist/experiments/evaluation/__tests__/validation/primary/ranking/path-salience/benchmarks/citeseer.exp.integration.test.d.ts +16 -0
  279. package/dist/experiments/evaluation/__tests__/validation/primary/ranking/path-salience/benchmarks/citeseer.exp.integration.test.d.ts.map +1 -0
  280. package/dist/experiments/evaluation/__tests__/validation/primary/ranking/path-salience/benchmarks/cora.exp.integration.test.d.ts +16 -0
  281. package/dist/experiments/evaluation/__tests__/validation/primary/ranking/path-salience/benchmarks/cora.exp.integration.test.d.ts.map +1 -0
  282. package/dist/experiments/evaluation/__tests__/validation/primary/ranking/path-salience/benchmarks/facebook.exp.integration.test.d.ts +16 -0
  283. package/dist/experiments/evaluation/__tests__/validation/primary/ranking/path-salience/benchmarks/facebook.exp.integration.test.d.ts.map +1 -0
  284. package/dist/experiments/evaluation/__tests__/validation/primary/ranking/path-salience/benchmarks/iteration-scaling.exp.integration.test.d.ts +20 -0
  285. package/dist/experiments/evaluation/__tests__/validation/primary/ranking/path-salience/benchmarks/iteration-scaling.exp.integration.test.d.ts.map +1 -0
  286. package/dist/experiments/evaluation/__tests__/validation/primary/ranking/path-salience/benchmarks/karate-club.exp.integration.test.d.ts +17 -0
  287. package/dist/experiments/evaluation/__tests__/validation/primary/ranking/path-salience/benchmarks/karate-club.exp.integration.test.d.ts.map +1 -0
  288. package/dist/experiments/evaluation/__tests__/validation/primary/ranking/path-salience/benchmarks/les-mis.exp.integration.test.d.ts +16 -0
  289. package/dist/experiments/evaluation/__tests__/validation/primary/ranking/path-salience/benchmarks/les-mis.exp.integration.test.d.ts.map +1 -0
  290. package/dist/experiments/evaluation/__tests__/validation/primary/ranking/path-salience/comparative/multi-method-comparison.exp.integration.test.d.ts +16 -0
  291. package/dist/experiments/evaluation/__tests__/validation/primary/ranking/path-salience/comparative/multi-method-comparison.exp.integration.test.d.ts.map +1 -0
  292. package/dist/experiments/evaluation/__tests__/validation/primary/ranking/path-salience/comparative/ranking-correlation.exp.integration.test.d.ts +14 -0
  293. package/dist/experiments/evaluation/__tests__/validation/primary/ranking/path-salience/comparative/ranking-correlation.exp.integration.test.d.ts.map +1 -0
  294. package/dist/experiments/evaluation/__tests__/validation/primary/ranking/path-salience/comparative/statistical-significance.exp.integration.test.d.ts +16 -0
  295. package/dist/experiments/evaluation/__tests__/validation/primary/ranking/path-salience/comparative/statistical-significance.exp.integration.test.d.ts.map +1 -0
  296. package/dist/experiments/evaluation/__tests__/validation/primary/ranking/path-salience/correctness/formula-correctness.exp.integration.test.d.ts +13 -0
  297. package/dist/experiments/evaluation/__tests__/validation/primary/ranking/path-salience/correctness/formula-correctness.exp.integration.test.d.ts.map +1 -0
  298. package/dist/experiments/evaluation/__tests__/validation/primary/ranking/path-salience/correctness/geometric-mean-property.exp.integration.test.d.ts +11 -0
  299. package/dist/experiments/evaluation/__tests__/validation/primary/ranking/path-salience/correctness/geometric-mean-property.exp.integration.test.d.ts.map +1 -0
  300. package/dist/experiments/evaluation/__tests__/validation/primary/ranking/path-salience/correctness/length-penalty.exp.integration.test.d.ts +13 -0
  301. package/dist/experiments/evaluation/__tests__/validation/primary/ranking/path-salience/correctness/length-penalty.exp.integration.test.d.ts.map +1 -0
  302. package/dist/experiments/evaluation/__tests__/validation/primary/ranking/path-salience/correctness/n-path-generalization.exp.integration.test.d.ts +13 -0
  303. package/dist/experiments/evaluation/__tests__/validation/primary/ranking/path-salience/correctness/n-path-generalization.exp.integration.test.d.ts.map +1 -0
  304. package/dist/experiments/evaluation/__tests__/validation/primary/ranking/path-salience/originality/mi-sensitivity.exp.integration.test.d.ts +15 -0
  305. package/dist/experiments/evaluation/__tests__/validation/primary/ranking/path-salience/originality/mi-sensitivity.exp.integration.test.d.ts.map +1 -0
  306. package/dist/experiments/evaluation/__tests__/validation/primary/ranking/path-salience/originality/path-diversity-benefit.exp.integration.test.d.ts +13 -0
  307. package/dist/experiments/evaluation/__tests__/validation/primary/ranking/path-salience/originality/path-diversity-benefit.exp.integration.test.d.ts.map +1 -0
  308. package/dist/experiments/evaluation/__tests__/validation/primary/ranking/path-salience/originality/ranking-difference.exp.integration.test.d.ts +14 -0
  309. package/dist/experiments/evaluation/__tests__/validation/primary/ranking/path-salience/originality/ranking-difference.exp.integration.test.d.ts.map +1 -0
  310. package/dist/experiments/evaluation/__tests__/validation/primary/ranking/path-salience/representativeness/__tests__/structural-coverage.exp.integration.test.d.ts +13 -0
  311. package/dist/experiments/evaluation/__tests__/validation/primary/ranking/path-salience/representativeness/__tests__/structural-coverage.exp.integration.test.d.ts.map +1 -0
  312. package/dist/experiments/evaluation/__tests__/validation/primary/ranking/path-salience/representativeness/__tests__/topological-representativeness.exp.integration.test.d.ts +13 -0
  313. package/dist/experiments/evaluation/__tests__/validation/primary/ranking/path-salience/representativeness/__tests__/topological-representativeness.exp.integration.test.d.ts.map +1 -0
  314. package/dist/experiments/evaluation/__tests__/validation/primary/ranking/path-salience/scenarios/multi-path-comparison.exp.integration.test.d.ts +12 -0
  315. package/dist/experiments/evaluation/__tests__/validation/primary/ranking/path-salience/scenarios/multi-path-comparison.exp.integration.test.d.ts.map +1 -0
  316. package/dist/experiments/evaluation/__tests__/validation/primary/ranking/path-salience/scenarios/scale-free-ranking.exp.integration.test.d.ts +13 -0
  317. package/dist/experiments/evaluation/__tests__/validation/primary/ranking/path-salience/scenarios/scale-free-ranking.exp.integration.test.d.ts.map +1 -0
  318. package/dist/experiments/evaluation/__tests__/validation/primary/ranking/path-salience/scenarios/weak-link-paths.exp.integration.test.d.ts +15 -0
  319. package/dist/experiments/evaluation/__tests__/validation/primary/ranking/path-salience/scenarios/weak-link-paths.exp.integration.test.d.ts.map +1 -0
  320. package/dist/experiments/evaluation/__tests__/validation/primary/ranking/path-salience/significance/hub-avoidance.exp.integration.test.d.ts +14 -0
  321. package/dist/experiments/evaluation/__tests__/validation/primary/ranking/path-salience/significance/hub-avoidance.exp.integration.test.d.ts.map +1 -0
  322. package/dist/experiments/evaluation/__tests__/validation/primary/ranking/path-salience/significance/quality-improvement.exp.integration.test.d.ts +15 -0
  323. package/dist/experiments/evaluation/__tests__/validation/primary/ranking/path-salience/significance/quality-improvement.exp.integration.test.d.ts.map +1 -0
  324. package/dist/experiments/evaluation/__tests__/validation/primary/ranking/path-salience/significance/ranking-stability.exp.integration.test.d.ts +15 -0
  325. package/dist/experiments/evaluation/__tests__/validation/primary/ranking/path-salience/significance/ranking-stability.exp.integration.test.d.ts.map +1 -0
  326. package/dist/experiments/evaluation/__tests__/validation/primary/ranking/ranking-baseline-comparison.exp.integration.test.d.ts +21 -0
  327. package/dist/experiments/evaluation/__tests__/validation/primary/ranking/ranking-baseline-comparison.exp.integration.test.d.ts.map +1 -0
  328. package/dist/experiments/evaluation/__tests__/validation/primary/traversal/degree-prioritised/benchmarks/citeseer.exp.integration.test.d.ts +2 -0
  329. package/dist/experiments/evaluation/__tests__/validation/primary/traversal/degree-prioritised/benchmarks/citeseer.exp.integration.test.d.ts.map +1 -0
  330. package/dist/experiments/evaluation/__tests__/validation/primary/traversal/degree-prioritised/benchmarks/cora.exp.integration.test.d.ts +2 -0
  331. package/dist/experiments/evaluation/__tests__/validation/primary/traversal/degree-prioritised/benchmarks/cora.exp.integration.test.d.ts.map +1 -0
  332. package/dist/experiments/evaluation/__tests__/validation/primary/traversal/degree-prioritised/benchmarks/facebook.exp.integration.test.d.ts +2 -0
  333. package/dist/experiments/evaluation/__tests__/validation/primary/traversal/degree-prioritised/benchmarks/facebook.exp.integration.test.d.ts.map +1 -0
  334. package/dist/experiments/evaluation/__tests__/validation/primary/traversal/degree-prioritised/benchmarks/karate-club.exp.integration.test.d.ts +2 -0
  335. package/dist/experiments/evaluation/__tests__/validation/primary/traversal/degree-prioritised/benchmarks/karate-club.exp.integration.test.d.ts.map +1 -0
  336. package/dist/experiments/evaluation/__tests__/validation/primary/traversal/degree-prioritised/benchmarks/les-mis.exp.integration.test.d.ts +2 -0
  337. package/dist/experiments/evaluation/__tests__/validation/primary/traversal/degree-prioritised/benchmarks/les-mis.exp.integration.test.d.ts.map +1 -0
  338. package/dist/experiments/evaluation/__tests__/validation/primary/traversal/degree-prioritised/correctness/n-seed-comparison.exp.integration.test.d.ts +8 -0
  339. package/dist/experiments/evaluation/__tests__/validation/primary/traversal/degree-prioritised/correctness/n-seed-comparison.exp.integration.test.d.ts.map +1 -0
  340. package/dist/experiments/evaluation/__tests__/validation/primary/traversal/degree-prioritised/correctness/validity-formula.exp.integration.test.d.ts +8 -0
  341. package/dist/experiments/evaluation/__tests__/validation/primary/traversal/degree-prioritised/correctness/validity-formula.exp.integration.test.d.ts.map +1 -0
  342. package/dist/experiments/evaluation/__tests__/validation/primary/traversal/degree-prioritised/correctness/validity-n-seed.exp.integration.test.d.ts +8 -0
  343. package/dist/experiments/evaluation/__tests__/validation/primary/traversal/degree-prioritised/correctness/validity-n-seed.exp.integration.test.d.ts.map +1 -0
  344. package/dist/experiments/evaluation/__tests__/validation/primary/traversal/degree-prioritised/correctness/validity-termination.exp.integration.test.d.ts +8 -0
  345. package/dist/experiments/evaluation/__tests__/validation/primary/traversal/degree-prioritised/correctness/validity-termination.exp.integration.test.d.ts.map +1 -0
  346. package/dist/experiments/evaluation/__tests__/validation/primary/traversal/degree-prioritised/node-explosion/double-star.exp.integration.test.d.ts +2 -0
  347. package/dist/experiments/evaluation/__tests__/validation/primary/traversal/degree-prioritised/node-explosion/double-star.exp.integration.test.d.ts.map +1 -0
  348. package/dist/experiments/evaluation/__tests__/validation/primary/traversal/degree-prioritised/node-explosion/expansion-order.exp.integration.test.d.ts +2 -0
  349. package/dist/experiments/evaluation/__tests__/validation/primary/traversal/degree-prioritised/node-explosion/expansion-order.exp.integration.test.d.ts.map +1 -0
  350. package/dist/experiments/evaluation/__tests__/validation/primary/traversal/degree-prioritised/node-explosion/metrics.exp.integration.test.d.ts +2 -0
  351. package/dist/experiments/evaluation/__tests__/validation/primary/traversal/degree-prioritised/node-explosion/metrics.exp.integration.test.d.ts.map +1 -0
  352. package/dist/experiments/evaluation/__tests__/validation/primary/traversal/degree-prioritised/node-explosion/multi-hub.exp.integration.test.d.ts +2 -0
  353. package/dist/experiments/evaluation/__tests__/validation/primary/traversal/degree-prioritised/node-explosion/multi-hub.exp.integration.test.d.ts.map +1 -0
  354. package/dist/experiments/evaluation/__tests__/validation/primary/traversal/degree-prioritised/node-explosion/scale-free.exp.integration.test.d.ts +2 -0
  355. package/dist/experiments/evaluation/__tests__/validation/primary/traversal/degree-prioritised/node-explosion/scale-free.exp.integration.test.d.ts.map +1 -0
  356. package/dist/experiments/evaluation/__tests__/validation/primary/traversal/degree-prioritised/node-explosion/star-graph.exp.integration.test.d.ts +2 -0
  357. package/dist/experiments/evaluation/__tests__/validation/primary/traversal/degree-prioritised/node-explosion/star-graph.exp.integration.test.d.ts.map +1 -0
  358. package/dist/experiments/evaluation/__tests__/validation/primary/traversal/degree-prioritised/originality/novelty-structural-difference.exp.integration.test.d.ts +13 -0
  359. package/dist/experiments/evaluation/__tests__/validation/primary/traversal/degree-prioritised/originality/novelty-structural-difference.exp.integration.test.d.ts.map +1 -0
  360. package/dist/experiments/evaluation/__tests__/validation/primary/traversal/degree-prioritised/representativeness/aggregation.exp.integration.test.d.ts +5 -0
  361. package/dist/experiments/evaluation/__tests__/validation/primary/traversal/degree-prioritised/representativeness/aggregation.exp.integration.test.d.ts.map +1 -0
  362. package/dist/experiments/evaluation/__tests__/validation/primary/traversal/degree-prioritised/representativeness/between-graph-ground-truth.exp.integration.test.d.ts +5 -0
  363. package/dist/experiments/evaluation/__tests__/validation/primary/traversal/degree-prioritised/representativeness/between-graph-ground-truth.exp.integration.test.d.ts.map +1 -0
  364. package/dist/experiments/evaluation/__tests__/validation/primary/traversal/degree-prioritised/representativeness/degree-distribution.exp.integration.test.d.ts +5 -0
  365. package/dist/experiments/evaluation/__tests__/validation/primary/traversal/degree-prioritised/representativeness/degree-distribution.exp.integration.test.d.ts.map +1 -0
  366. package/dist/experiments/evaluation/__tests__/validation/primary/traversal/degree-prioritised/representativeness/ego-network-n1.exp.integration.test.d.ts +5 -0
  367. package/dist/experiments/evaluation/__tests__/validation/primary/traversal/degree-prioritised/representativeness/ego-network-n1.exp.integration.test.d.ts.map +1 -0
  368. package/dist/experiments/evaluation/__tests__/validation/primary/traversal/degree-prioritised/representativeness/fixtures/index.d.ts +2 -0
  369. package/dist/experiments/evaluation/__tests__/validation/primary/traversal/degree-prioritised/representativeness/fixtures/index.d.ts.map +1 -0
  370. package/dist/experiments/evaluation/__tests__/validation/primary/traversal/degree-prioritised/representativeness/fixtures/test-graph-expander.d.ts +56 -0
  371. package/dist/experiments/evaluation/__tests__/validation/primary/traversal/degree-prioritised/representativeness/fixtures/test-graph-expander.d.ts.map +1 -0
  372. package/dist/experiments/evaluation/__tests__/validation/primary/traversal/degree-prioritised/representativeness/full-pipeline.exp.integration.test.d.ts +5 -0
  373. package/dist/experiments/evaluation/__tests__/validation/primary/traversal/degree-prioritised/representativeness/full-pipeline.exp.integration.test.d.ts.map +1 -0
  374. package/dist/experiments/evaluation/__tests__/validation/primary/traversal/degree-prioritised/representativeness/path-diversity.exp.integration.test.d.ts +5 -0
  375. package/dist/experiments/evaluation/__tests__/validation/primary/traversal/degree-prioritised/representativeness/path-diversity.exp.integration.test.d.ts.map +1 -0
  376. package/dist/experiments/evaluation/__tests__/validation/primary/traversal/degree-prioritised/significance/value-edge-efficiency.exp.integration.test.d.ts +8 -0
  377. package/dist/experiments/evaluation/__tests__/validation/primary/traversal/degree-prioritised/significance/value-edge-efficiency.exp.integration.test.d.ts.map +1 -0
  378. package/dist/experiments/evaluation/__tests__/validation/primary/traversal/degree-prioritised/significance/value-hub-mitigation.exp.integration.test.d.ts +8 -0
  379. package/dist/experiments/evaluation/__tests__/validation/primary/traversal/degree-prioritised/significance/value-hub-mitigation.exp.integration.test.d.ts.map +1 -0
  380. package/dist/experiments/evaluation/__tests__/validation/primary/traversal/degree-prioritised/significance/value-representativeness.exp.integration.test.d.ts +8 -0
  381. package/dist/experiments/evaluation/__tests__/validation/primary/traversal/degree-prioritised/significance/value-representativeness.exp.integration.test.d.ts.map +1 -0
  382. package/dist/experiments/evaluation/__tests__/validation/primary/traversal/entropy-guided/correctness/entropy-formula.exp.integration.test.d.ts +15 -0
  383. package/dist/experiments/evaluation/__tests__/validation/primary/traversal/entropy-guided/correctness/entropy-formula.exp.integration.test.d.ts.map +1 -0
  384. package/dist/experiments/evaluation/__tests__/validation/primary/traversal/entropy-guided/correctness/priority-formula.exp.integration.test.d.ts +18 -0
  385. package/dist/experiments/evaluation/__tests__/validation/primary/traversal/entropy-guided/correctness/priority-formula.exp.integration.test.d.ts.map +1 -0
  386. package/dist/experiments/evaluation/__tests__/validation/primary/traversal/entropy-guided/correctness/termination-guarantee.exp.integration.test.d.ts +13 -0
  387. package/dist/experiments/evaluation/__tests__/validation/primary/traversal/entropy-guided/correctness/termination-guarantee.exp.integration.test.d.ts.map +1 -0
  388. package/dist/experiments/evaluation/__tests__/validation/primary/traversal/entropy-guided/originality/cross-boundary-discovery.exp.integration.test.d.ts +12 -0
  389. package/dist/experiments/evaluation/__tests__/validation/primary/traversal/entropy-guided/originality/cross-boundary-discovery.exp.integration.test.d.ts.map +1 -0
  390. package/dist/experiments/evaluation/__tests__/validation/primary/traversal/entropy-guided/originality/entropy-ordering-difference.exp.integration.test.d.ts +14 -0
  391. package/dist/experiments/evaluation/__tests__/validation/primary/traversal/entropy-guided/originality/entropy-ordering-difference.exp.integration.test.d.ts.map +1 -0
  392. package/dist/experiments/evaluation/__tests__/validation/primary/traversal/entropy-guided/significance/hub-mitigation.exp.integration.test.d.ts +13 -0
  393. package/dist/experiments/evaluation/__tests__/validation/primary/traversal/entropy-guided/significance/hub-mitigation.exp.integration.test.d.ts.map +1 -0
  394. package/dist/experiments/evaluation/__tests__/validation/primary/traversal/entropy-guided/significance/type-diversity.exp.integration.test.d.ts +14 -0
  395. package/dist/experiments/evaluation/__tests__/validation/primary/traversal/entropy-guided/significance/type-diversity.exp.integration.test.d.ts.map +1 -0
  396. package/dist/experiments/evaluation/__tests__/validation/primary/traversal/overlap-based/overlap-based-expansion.integration.test.d.ts +7 -0
  397. package/dist/experiments/evaluation/__tests__/validation/primary/traversal/overlap-based/overlap-based-expansion.integration.test.d.ts.map +1 -0
  398. package/dist/experiments/evaluation/__tests__/validation/primary/traversal/path-preserving/correctness/early-termination.exp.integration.test.d.ts +8 -0
  399. package/dist/experiments/evaluation/__tests__/validation/primary/traversal/path-preserving/correctness/early-termination.exp.integration.test.d.ts.map +1 -0
  400. package/dist/experiments/evaluation/__tests__/validation/primary/traversal/path-preserving/correctness/path-potential-computation.exp.integration.test.d.ts +11 -0
  401. package/dist/experiments/evaluation/__tests__/validation/primary/traversal/path-preserving/correctness/path-potential-computation.exp.integration.test.d.ts.map +1 -0
  402. package/dist/experiments/evaluation/__tests__/validation/primary/traversal/path-preserving/correctness/priority-formula.exp.integration.test.d.ts +10 -0
  403. package/dist/experiments/evaluation/__tests__/validation/primary/traversal/path-preserving/correctness/priority-formula.exp.integration.test.d.ts.map +1 -0
  404. package/dist/experiments/evaluation/__tests__/validation/primary/traversal/path-preserving/originality/frontier-divergence.exp.integration.test.d.ts +12 -0
  405. package/dist/experiments/evaluation/__tests__/validation/primary/traversal/path-preserving/originality/frontier-divergence.exp.integration.test.d.ts.map +1 -0
  406. package/dist/experiments/evaluation/__tests__/validation/primary/traversal/path-preserving/originality/path-diversity-improvement.exp.integration.test.d.ts +12 -0
  407. package/dist/experiments/evaluation/__tests__/validation/primary/traversal/path-preserving/originality/path-diversity-improvement.exp.integration.test.d.ts.map +1 -0
  408. package/dist/experiments/evaluation/__tests__/validation/primary/traversal/path-preserving/significance/frontier-balance.exp.integration.test.d.ts +8 -0
  409. package/dist/experiments/evaluation/__tests__/validation/primary/traversal/path-preserving/significance/frontier-balance.exp.integration.test.d.ts.map +1 -0
  410. package/dist/experiments/evaluation/__tests__/validation/primary/traversal/path-preserving/significance/path-overlap-reduction.exp.integration.test.d.ts +8 -0
  411. package/dist/experiments/evaluation/__tests__/validation/primary/traversal/path-preserving/significance/path-overlap-reduction.exp.integration.test.d.ts.map +1 -0
  412. package/dist/experiments/evaluation/__tests__/validation/primary/traversal/retrospective-salience/correctness/jaccard-mi-estimation.exp.integration.test.d.ts +14 -0
  413. package/dist/experiments/evaluation/__tests__/validation/primary/traversal/retrospective-salience/correctness/jaccard-mi-estimation.exp.integration.test.d.ts.map +1 -0
  414. package/dist/experiments/evaluation/__tests__/validation/primary/traversal/retrospective-salience/correctness/phase1-formula.exp.integration.test.d.ts +14 -0
  415. package/dist/experiments/evaluation/__tests__/validation/primary/traversal/retrospective-salience/correctness/phase1-formula.exp.integration.test.d.ts.map +1 -0
  416. package/dist/experiments/evaluation/__tests__/validation/primary/traversal/retrospective-salience/correctness/phase2-formula.exp.integration.test.d.ts +14 -0
  417. package/dist/experiments/evaluation/__tests__/validation/primary/traversal/retrospective-salience/correctness/phase2-formula.exp.integration.test.d.ts.map +1 -0
  418. package/dist/experiments/evaluation/__tests__/validation/primary/traversal/retrospective-salience/originality/adaptive-priority.exp.integration.test.d.ts +17 -0
  419. package/dist/experiments/evaluation/__tests__/validation/primary/traversal/retrospective-salience/originality/adaptive-priority.exp.integration.test.d.ts.map +1 -0
  420. package/dist/experiments/evaluation/__tests__/validation/primary/traversal/retrospective-salience/originality/two-phase-transition.exp.integration.test.d.ts +18 -0
  421. package/dist/experiments/evaluation/__tests__/validation/primary/traversal/retrospective-salience/originality/two-phase-transition.exp.integration.test.d.ts.map +1 -0
  422. package/dist/experiments/evaluation/__tests__/validation/primary/traversal/retrospective-salience/significance/no-precomputation.exp.integration.test.d.ts +15 -0
  423. package/dist/experiments/evaluation/__tests__/validation/primary/traversal/retrospective-salience/significance/no-precomputation.exp.integration.test.d.ts.map +1 -0
  424. package/dist/experiments/evaluation/__tests__/validation/primary/traversal/retrospective-salience/significance/salience-coverage.exp.integration.test.d.ts +15 -0
  425. package/dist/experiments/evaluation/__tests__/validation/primary/traversal/retrospective-salience/significance/salience-coverage.exp.integration.test.d.ts.map +1 -0
  426. package/dist/experiments/evaluation/claims/index.d.ts +7 -0
  427. package/dist/experiments/evaluation/claims/index.d.ts.map +1 -0
  428. package/dist/experiments/evaluation/claims/thesis-claims.d.ts +111 -0
  429. package/dist/experiments/evaluation/claims/thesis-claims.d.ts.map +1 -0
  430. package/dist/experiments/evaluation/classification/classification-evaluator.d.ts +44 -0
  431. package/dist/experiments/evaluation/classification/classification-evaluator.d.ts.map +1 -0
  432. package/dist/experiments/evaluation/classification/feature-extractor.d.ts +50 -0
  433. package/dist/experiments/evaluation/classification/feature-extractor.d.ts.map +1 -0
  434. package/dist/experiments/evaluation/classification/graph-classifier.d.ts +103 -0
  435. package/dist/experiments/evaluation/classification/graph-classifier.d.ts.map +1 -0
  436. package/dist/experiments/evaluation/classification/index.d.ts +11 -0
  437. package/dist/experiments/evaluation/classification/index.d.ts.map +1 -0
  438. package/dist/experiments/evaluation/fixtures/algorithm-validation.unit.test.d.ts +12 -0
  439. package/dist/experiments/evaluation/fixtures/algorithm-validation.unit.test.d.ts.map +1 -0
  440. package/dist/experiments/evaluation/fixtures/benchmark-datasets.d.ts +44 -3
  441. package/dist/experiments/evaluation/fixtures/benchmark-datasets.d.ts.map +1 -1
  442. package/dist/experiments/evaluation/fixtures/benchmark-datasets.unit.test.d.ts +0 -4
  443. package/dist/experiments/evaluation/fixtures/benchmark-datasets.unit.test.d.ts.map +1 -1
  444. package/dist/experiments/evaluation/generation/constrained-generator.d.ts +61 -0
  445. package/dist/experiments/evaluation/generation/constrained-generator.d.ts.map +1 -0
  446. package/dist/experiments/evaluation/generation/generation-evaluator.d.ts +56 -0
  447. package/dist/experiments/evaluation/generation/generation-evaluator.d.ts.map +1 -0
  448. package/dist/experiments/evaluation/generation/index.d.ts +10 -0
  449. package/dist/experiments/evaluation/generation/index.d.ts.map +1 -0
  450. package/dist/experiments/evaluation/ground-truth/importance-based.d.ts.map +1 -1
  451. package/dist/experiments/evaluation/loaders/decompress.d.ts +141 -33
  452. package/dist/experiments/evaluation/loaders/decompress.d.ts.map +1 -1
  453. package/dist/experiments/evaluation/loaders/edge-list-loader.d.ts +44 -0
  454. package/dist/experiments/evaluation/loaders/edge-list-loader.d.ts.map +1 -1
  455. package/dist/experiments/evaluation/loaders/index.d.ts +2 -2
  456. package/dist/experiments/evaluation/loaders/index.d.ts.map +1 -1
  457. package/dist/experiments/evaluation/metrics/index.d.ts +1 -0
  458. package/dist/experiments/evaluation/metrics/index.d.ts.map +1 -1
  459. package/dist/experiments/evaluation/metrics/metric-calculators.property.unit.test.d.ts +16 -0
  460. package/dist/experiments/evaluation/metrics/metric-calculators.property.unit.test.d.ts.map +1 -0
  461. package/dist/experiments/evaluation/metrics/metrics-boundary-conditions.unit.test.d.ts +2 -0
  462. package/dist/experiments/evaluation/metrics/metrics-boundary-conditions.unit.test.d.ts.map +1 -0
  463. package/dist/experiments/evaluation/metrics/salience-coverage.d.ts +147 -0
  464. package/dist/experiments/evaluation/metrics/salience-coverage.d.ts.map +1 -0
  465. package/dist/experiments/experiments/bidirectional-bfs.d.ts +42 -0
  466. package/dist/experiments/experiments/bidirectional-bfs.d.ts.map +1 -0
  467. package/dist/experiments/experiments/index.d.ts +10 -0
  468. package/dist/experiments/experiments/index.d.ts.map +1 -0
  469. package/dist/experiments/experiments/path-ranking.d.ts +29 -0
  470. package/dist/experiments/experiments/path-ranking.d.ts.map +1 -0
  471. package/dist/experiments/experiments/salience-coverage-comparison.d.ts +19 -0
  472. package/dist/experiments/experiments/salience-coverage-comparison.d.ts.map +1 -0
  473. package/dist/experiments/experiments/seeded-expansion.d.ts +43 -0
  474. package/dist/experiments/experiments/seeded-expansion.d.ts.map +1 -0
  475. package/dist/experiments/fixtures/mock-graph-expander.d.ts +2 -1
  476. package/dist/experiments/fixtures/mock-graph-expander.d.ts.map +1 -1
  477. package/dist/experiments/metrics/collector.d.ts +49 -0
  478. package/dist/experiments/metrics/collector.d.ts.map +1 -0
  479. package/dist/experiments/metrics/hub-avoidance-calculator.d.ts +97 -0
  480. package/dist/experiments/metrics/hub-avoidance-calculator.d.ts.map +1 -0
  481. package/dist/experiments/metrics/index.d.ts +10 -0
  482. package/dist/experiments/metrics/index.d.ts.map +1 -0
  483. package/dist/experiments/metrics/storage.d.ts +29 -0
  484. package/dist/experiments/metrics/storage.d.ts.map +1 -0
  485. package/dist/experiments/metrics/types.d.ts +362 -0
  486. package/dist/experiments/metrics/types.d.ts.map +1 -0
  487. package/dist/experiments/proofs/path-salience/boundedness.unit.test.d.ts +10 -0
  488. package/dist/experiments/proofs/path-salience/boundedness.unit.test.d.ts.map +1 -0
  489. package/dist/experiments/proofs/path-salience/dpi-consistency.unit.test.d.ts +11 -0
  490. package/dist/experiments/proofs/path-salience/dpi-consistency.unit.test.d.ts.map +1 -0
  491. package/dist/experiments/proofs/path-salience/equal-length.unit.test.d.ts +11 -0
  492. package/dist/experiments/proofs/path-salience/equal-length.unit.test.d.ts.map +1 -0
  493. package/dist/experiments/proofs/path-salience/length-independence.unit.test.d.ts +11 -0
  494. package/dist/experiments/proofs/path-salience/length-independence.unit.test.d.ts.map +1 -0
  495. package/dist/experiments/proofs/path-salience/monotonicity.unit.test.d.ts +10 -0
  496. package/dist/experiments/proofs/path-salience/monotonicity.unit.test.d.ts.map +1 -0
  497. package/dist/experiments/proofs/path-salience/subpath-optimality.unit.test.d.ts +12 -0
  498. package/dist/experiments/proofs/path-salience/subpath-optimality.unit.test.d.ts.map +1 -0
  499. package/dist/experiments/proofs/path-salience/universality.unit.test.d.ts +15 -0
  500. package/dist/experiments/proofs/path-salience/universality.unit.test.d.ts.map +1 -0
  501. package/dist/experiments/proofs/path-salience/weak-link.unit.test.d.ts +10 -0
  502. package/dist/experiments/proofs/path-salience/weak-link.unit.test.d.ts.map +1 -0
  503. package/dist/experiments/proofs/seed-bounded/completeness.unit.test.d.ts +10 -0
  504. package/dist/experiments/proofs/seed-bounded/completeness.unit.test.d.ts.map +1 -0
  505. package/dist/experiments/proofs/seed-bounded/degeneracy.unit.test.d.ts +16 -0
  506. package/dist/experiments/proofs/seed-bounded/degeneracy.unit.test.d.ts.map +1 -0
  507. package/dist/experiments/proofs/seed-bounded/order-independence.unit.test.d.ts +10 -0
  508. package/dist/experiments/proofs/seed-bounded/order-independence.unit.test.d.ts.map +1 -0
  509. package/dist/experiments/proofs/seed-bounded/termination.unit.test.d.ts +11 -0
  510. package/dist/experiments/proofs/seed-bounded/termination.unit.test.d.ts.map +1 -0
  511. package/dist/experiments/proofs/test-utils.d.ts +161 -0
  512. package/dist/experiments/proofs/test-utils.d.ts.map +1 -0
  513. package/dist/experiments/run-experiments.d.ts +19 -0
  514. package/dist/experiments/run-experiments.d.ts.map +1 -0
  515. package/dist/experiments/suts/degree-sum-ranking-sut.d.ts +52 -0
  516. package/dist/experiments/suts/degree-sum-ranking-sut.d.ts.map +1 -0
  517. package/dist/experiments/suts/index.d.ts +13 -0
  518. package/dist/experiments/suts/index.d.ts.map +1 -0
  519. package/dist/experiments/suts/jaccard-arithmetic-ranking-sut.d.ts +52 -0
  520. package/dist/experiments/suts/jaccard-arithmetic-ranking-sut.d.ts.map +1 -0
  521. package/dist/experiments/suts/pagerank-sum-ranking-sut.d.ts +52 -0
  522. package/dist/experiments/suts/pagerank-sum-ranking-sut.d.ts.map +1 -0
  523. package/dist/experiments/suts/path-salience-sut.d.ts +62 -0
  524. package/dist/experiments/suts/path-salience-sut.d.ts.map +1 -0
  525. package/dist/experiments/suts/random-ranking-sut.d.ts +52 -0
  526. package/dist/experiments/suts/random-ranking-sut.d.ts.map +1 -0
  527. package/dist/experiments/suts/shortest-ranking-sut.d.ts +51 -0
  528. package/dist/experiments/suts/shortest-ranking-sut.d.ts.map +1 -0
  529. package/dist/generation/generators/density-helpers.d.ts.map +1 -1
  530. package/dist/generation/generators/edge-generator.d.ts.map +1 -1
  531. package/dist/generation/generators/forbidden-subgraph.d.ts +83 -0
  532. package/dist/generation/generators/forbidden-subgraph.d.ts.map +1 -0
  533. package/dist/generation/generators/geometric.d.ts +10 -0
  534. package/dist/generation/generators/geometric.d.ts.map +1 -1
  535. package/dist/generation/generators/intersection.d.ts +21 -0
  536. package/dist/generation/generators/intersection.d.ts.map +1 -0
  537. package/dist/generation/generators/invariants.d.ts.map +1 -1
  538. package/dist/generation/generators/perfect-variants.d.ts +49 -0
  539. package/dist/generation/generators/perfect-variants.d.ts.map +1 -0
  540. package/dist/generation/generators/probe.d.ts +19 -0
  541. package/dist/generation/generators/probe.d.ts.map +1 -0
  542. package/dist/generation/generators/structural.d.ts +11 -0
  543. package/dist/generation/generators/structural.d.ts.map +1 -0
  544. package/dist/generation/generators/width.d.ts +37 -0
  545. package/dist/generation/generators/width.d.ts.map +1 -0
  546. package/dist/generation/graph-validator.d.ts.map +1 -1
  547. package/dist/generation/spec/core.d.ts +4 -0
  548. package/dist/generation/spec/core.d.ts.map +1 -1
  549. package/dist/generation/spec/forbidden-subgraph.d.ts +89 -0
  550. package/dist/generation/spec/forbidden-subgraph.d.ts.map +1 -0
  551. package/dist/generation/spec/geometric.d.ts +28 -9
  552. package/dist/generation/spec/geometric.d.ts.map +1 -1
  553. package/dist/generation/spec/index.d.ts +1 -1
  554. package/dist/generation/spec/index.d.ts.map +1 -1
  555. package/dist/generation/spec/intersection.d.ts +49 -0
  556. package/dist/generation/spec/intersection.d.ts.map +1 -0
  557. package/dist/generation/spec/new-classes-index.d.ts +15 -0
  558. package/dist/generation/spec/new-classes-index.d.ts.map +1 -0
  559. package/dist/generation/spec/perfect-variants.d.ts +39 -0
  560. package/dist/generation/spec/perfect-variants.d.ts.map +1 -0
  561. package/dist/generation/spec/probe.d.ts +29 -0
  562. package/dist/generation/spec/probe.d.ts.map +1 -0
  563. package/dist/generation/spec/structural.d.ts +12 -1
  564. package/dist/generation/spec/structural.d.ts.map +1 -1
  565. package/dist/generation/spec/width.d.ts +29 -0
  566. package/dist/generation/spec/width.d.ts.map +1 -0
  567. package/dist/generation/spec.d.ts +23 -4
  568. package/dist/generation/spec.d.ts.map +1 -1
  569. package/dist/index.cjs +31 -31
  570. package/dist/index.d.ts +3 -1
  571. package/dist/index.d.ts.map +1 -1
  572. package/dist/index.js +6616 -4485
  573. package/dist/index.umd.js +33 -33
  574. package/dist/interfaces/graph-expander.d.ts +44 -2
  575. package/dist/interfaces/graph-expander.d.ts.map +1 -1
  576. package/dist/registries/index.d.ts +16 -0
  577. package/dist/registries/index.d.ts.map +1 -0
  578. package/dist/registries/register-cases.d.ts +91 -0
  579. package/dist/registries/register-cases.d.ts.map +1 -0
  580. package/dist/registries/register-overlap-suts.d.ts +28 -0
  581. package/dist/registries/register-overlap-suts.d.ts.map +1 -0
  582. package/dist/registries/register-ranking-cases.d.ts +36 -0
  583. package/dist/registries/register-ranking-cases.d.ts.map +1 -0
  584. package/dist/registries/register-ranking-suts.d.ts +83 -0
  585. package/dist/registries/register-ranking-suts.d.ts.map +1 -0
  586. package/dist/registries/register-suts.d.ts +55 -0
  587. package/dist/registries/register-suts.d.ts.map +1 -0
  588. package/dist/suts/degree-prioritised-v1.0.0.d.ts +56 -0
  589. package/dist/suts/degree-prioritised-v1.0.0.d.ts.map +1 -0
  590. package/dist/suts/entropy-guided-v1.0.0.d.ts +55 -0
  591. package/dist/suts/entropy-guided-v1.0.0.d.ts.map +1 -0
  592. package/dist/suts/heterogeneity-aware-v1.0.0.d.ts +57 -0
  593. package/dist/suts/heterogeneity-aware-v1.0.0.d.ts.map +1 -0
  594. package/dist/suts/multi-frontier-adaptive-v1.0.0.d.ts +56 -0
  595. package/dist/suts/multi-frontier-adaptive-v1.0.0.d.ts.map +1 -0
  596. package/dist/suts/path-preserving-v1.0.0.d.ts +58 -0
  597. package/dist/suts/path-preserving-v1.0.0.d.ts.map +1 -0
  598. package/dist/suts/path-salience-v1.0.0.d.ts +57 -0
  599. package/dist/suts/path-salience-v1.0.0.d.ts.map +1 -0
  600. package/dist/suts/random-ranking-v1.0.0.d.ts +50 -0
  601. package/dist/suts/random-ranking-v1.0.0.d.ts.map +1 -0
  602. package/dist/suts/retrospective-salience-v1.0.0.d.ts +57 -0
  603. package/dist/suts/retrospective-salience-v1.0.0.d.ts.map +1 -0
  604. package/dist/suts/shortest-ranking-v1.0.0.d.ts +49 -0
  605. package/dist/suts/shortest-ranking-v1.0.0.d.ts.map +1 -0
  606. package/dist/suts/standard-bfs-v1.0.0.d.ts +53 -0
  607. package/dist/suts/standard-bfs-v1.0.0.d.ts.map +1 -0
  608. package/dist/types/graph-core.d.ts +176 -0
  609. package/dist/types/graph-core.d.ts.map +1 -0
  610. package/dist/types/graph-core.unit.test.d.ts +5 -0
  611. package/dist/types/graph-core.unit.test.d.ts.map +1 -0
  612. package/dist/utils/graph-adapters.d.ts +101 -0
  613. package/dist/utils/graph-adapters.d.ts.map +1 -0
  614. package/dist/utils/graph-adapters.unit.test.d.ts +5 -0
  615. package/dist/utils/graph-adapters.unit.test.d.ts.map +1 -0
  616. package/dist/validation/forbidden-subgraph-helpers.d.ts +45 -0
  617. package/dist/validation/forbidden-subgraph-helpers.d.ts.map +1 -0
  618. package/dist/validation/forbidden-subgraph.d.ts +66 -0
  619. package/dist/validation/forbidden-subgraph.d.ts.map +1 -0
  620. package/dist/validation/index.d.ts +4 -0
  621. package/dist/validation/index.d.ts.map +1 -1
  622. package/dist/validation/intersection.d.ts +17 -0
  623. package/dist/validation/intersection.d.ts.map +1 -0
  624. package/dist/validation/network.d.ts.map +1 -1
  625. package/dist/validation/perfect-variants.d.ts +30 -0
  626. package/dist/validation/perfect-variants.d.ts.map +1 -0
  627. package/dist/validation/perfect-variants.unit.test.d.ts +5 -0
  628. package/dist/validation/perfect-variants.unit.test.d.ts.map +1 -0
  629. package/dist/validation/probe.d.ts +17 -0
  630. package/dist/validation/probe.d.ts.map +1 -0
  631. package/dist/validation/structural-class.d.ts.map +1 -1
  632. package/dist/validation/symmetry.d.ts.map +1 -1
  633. package/dist/validation/width.d.ts +27 -0
  634. package/dist/validation/width.d.ts.map +1 -0
  635. package/dist/validation/width.unit.test.d.ts +5 -0
  636. package/dist/validation/width.unit.test.d.ts.map +1 -0
  637. package/package.json +25 -2
@@ -26,6 +26,19 @@ export interface BidirectionalBFSResult {
26
26
  /**
27
27
  * Generic bidirectional breadth-first search with degree-based node prioritization.
28
28
  *
29
+ * **NOTE: This is an earlier design with parameterised termination.**
30
+ * For the parameter-free version that aligns with the thesis theoretical framework,
31
+ * see DegreePrioritisedExpansion (N≥1 seeds, frontier exhaustion only).
32
+ *
33
+ * **Design Relationship**:
34
+ * - BidirectionalBFS: Earlier design, N=2 only, has termination parameters (targetPaths, maxIterations)
35
+ * - DegreePrioritisedExpansion: Refined design, N≥1 with identical code path, parameter-free
36
+ *
37
+ * This implementation is suitable for production use cases where:
38
+ * - Predictable resource consumption is required
39
+ * - Finding *a* path quickly is more important than exhaustive sampling
40
+ * - Service-level objectives constrain iteration count
41
+ *
29
42
  * Searches for paths between two seed nodes by expanding frontiers from both directions.
30
43
  * Uses priority queue to process low-degree nodes first, naturally prioritizing specific
31
44
  * connections over generic ones.
@@ -52,6 +65,8 @@ export interface BidirectionalBFSResult {
52
65
  * const result = await bfs.search();
53
66
  * console.log(`Found ${result.paths.length} paths in ${result.iterations} iterations`);
54
67
  * ```
68
+ *
69
+ * @see DegreePrioritisedExpansion - Parameter-free version for N≥1 seeds
55
70
  */
56
71
  export declare class BidirectionalBFS<T> {
57
72
  private readonly expander;
@@ -1 +1 @@
1
- {"version":3,"file":"bidirectional-bfs.d.ts","sourceRoot":"","sources":["../../../src/algorithms/traversal/bidirectional-bfs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAGhE;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACvC,qCAAqC;IACrC,WAAW,EAAE,MAAM,CAAC;IAEpB,6CAA6C;IAC7C,aAAa,EAAE,MAAM,CAAC;IAEtB,qFAAqF;IACrF,aAAa,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACtC,0EAA0E;IAC1E,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC;IAElB,+BAA+B;IAC/B,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAEtB,+BAA+B;IAC/B,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAEtB,qCAAqC;IACrC,UAAU,EAAE,MAAM,CAAC;CACnB;AAYD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,qBAAa,gBAAgB,CAAC,CAAC;IAM7B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,OAAO;IARzB,OAAO,CAAC,UAAU,CAAkB;IACpC,OAAO,CAAC,MAAM,CAAW;IACzB,OAAO,CAAC,MAAM,CAAW;gBAGP,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,EAC1B,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,uBAAuB;IAuBlD;;;;OAIG;IACG,MAAM,IAAI,OAAO,CAAC,sBAAsB,CAAC;IA0E/C;;;;;OAKG;YACW,cAAc;IA8B5B;;;OAGG;IACH,OAAO,CAAC,mBAAmB;IAsB3B;;;;;OAKG;IACH,OAAO,CAAC,eAAe;IA4BvB;;;;OAIG;IACH,OAAO,CAAC,UAAU;IAQlB;;;;OAIG;IACH,OAAO,CAAC,uBAAuB;CAwB/B"}
1
+ {"version":3,"file":"bidirectional-bfs.d.ts","sourceRoot":"","sources":["../../../src/algorithms/traversal/bidirectional-bfs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAGhE;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACvC,qCAAqC;IACrC,WAAW,EAAE,MAAM,CAAC;IAEpB,6CAA6C;IAC7C,aAAa,EAAE,MAAM,CAAC;IAEtB,qFAAqF;IACrF,aAAa,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACtC,0EAA0E;IAC1E,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC;IAElB,+BAA+B;IAC/B,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAEtB,+BAA+B;IAC/B,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAEtB,qCAAqC;IACrC,UAAU,EAAE,MAAM,CAAC;CACnB;AAYD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AACH,qBAAa,gBAAgB,CAAC,CAAC;IAM7B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,OAAO;IARzB,OAAO,CAAC,UAAU,CAAkB;IACpC,OAAO,CAAC,MAAM,CAAW;IACzB,OAAO,CAAC,MAAM,CAAW;gBAGP,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,EAC1B,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,uBAAuB;IAuBlD;;;;OAIG;IACG,MAAM,IAAI,OAAO,CAAC,sBAAsB,CAAC;IA0E/C;;;;;OAKG;YACW,cAAc;IA8B5B;;;OAGG;IACH,OAAO,CAAC,mBAAmB;IAsB3B;;;;;OAKG;IACH,OAAO,CAAC,eAAe;IA4BvB;;;;OAIG;IACH,OAAO,CAAC,UAAU;IAQlB;;;;OAIG;IACH,OAAO,CAAC,uBAAuB;CAwB/B"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Regression test for frontier intersection detection bug (Jan 21 2026).
3
+ *
4
+ * BACKGROUND:
5
+ * Commit bec6dbf optimized intersection checking from O(F) to O(1) using
6
+ * nodeToFrontierIndex Map. The bug: Map was updated on every visit instead
7
+ * of only first visit, preventing intersection detection.
8
+ *
9
+ * This test creates a minimal graph where two frontiers MUST meet, verifying
10
+ * that path recording works correctly.
11
+ */
12
+ export {};
13
+ //# sourceMappingURL=degree-prioritised-expansion-intersection.unit.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"degree-prioritised-expansion-intersection.unit.test.d.ts","sourceRoot":"","sources":["../../../src/algorithms/traversal/degree-prioritised-expansion-intersection.unit.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG"}
@@ -17,6 +17,12 @@ export interface DegreePrioritisedExpansionResult {
17
17
  visitedPerFrontier: Array<Set<string>>;
18
18
  /** Statistics about the expansion */
19
19
  stats: ExpansionStats;
20
+ /**
21
+ * Maps each sampled node to the iteration when it was first discovered.
22
+ * Used for computing coverage efficiency metrics (first-discovery iteration,
23
+ * budget checkpoint coverage, area-under-curve).
24
+ */
25
+ nodeDiscoveryIteration: Map<string, number>;
20
26
  }
21
27
  /**
22
28
  * Statistics collected during expansion.
@@ -34,6 +40,22 @@ export interface ExpansionStats {
34
40
  /**
35
41
  * Degree-Prioritised Bidirectional Expansion
36
42
  *
43
+ * **Thesis Alignment**: This is the primary implementation of the seed-bounded
44
+ * sampling algorithm described in Chapter 4 of the thesis. It embodies the
45
+ * parameter-free design with implicit termination via frontier exhaustion.
46
+ *
47
+ * **Design Relationship**:
48
+ * - BidirectionalBFS: Earlier design, N=2 only, has termination parameters (targetPaths, maxIterations)
49
+ * - DegreePrioritisedExpansion: Refined design (this file), N≥1 with identical code path, parameter-free
50
+ *
51
+ * Use this implementation when:
52
+ * - Representative sampling of graph structure is required
53
+ * - Evaluation dataset construction demands bias-free samples
54
+ * - N≥1 seed nodes need to be supported
55
+ * - Termination should be determined by graph structure, not arbitrary limits
56
+ *
57
+ * For production pathfinding with resource constraints, consider BidirectionalBFS instead.
58
+ *
37
59
  * A unified algorithm for representative graph sampling between N ≥ 1 seed nodes.
38
60
  * Uses node degree as priority (low degree = high priority) to explore peripheral
39
61
  * routes before hub-dominated paths.
@@ -69,6 +91,8 @@ export interface ExpansionStats {
69
91
  * console.log(`Found ${result.paths.length} paths`);
70
92
  * console.log(`Sampled ${result.sampledNodes.size} nodes`);
71
93
  * ```
94
+ *
95
+ * @see BidirectionalBFS - Parameterised version for N=2 with resource constraints
72
96
  */
73
97
  export declare class DegreePrioritisedExpansion<T> {
74
98
  private readonly expander;
@@ -77,6 +101,12 @@ export declare class DegreePrioritisedExpansion<T> {
77
101
  private readonly paths;
78
102
  private readonly sampledEdges;
79
103
  private stats;
104
+ /** Tracks when each node was first discovered (iteration number) */
105
+ private readonly nodeDiscoveryIteration;
106
+ /** Track which frontier owns each node for O(1) intersection checking */
107
+ private readonly nodeToFrontierIndex;
108
+ /** Track path signatures for O(1) deduplication */
109
+ private readonly pathSignatures;
80
110
  /**
81
111
  * Create a new degree-prioritised expansion.
82
112
  *
@@ -120,13 +150,15 @@ export declare class DegreePrioritisedExpansion<T> {
120
150
  */
121
151
  private reconstructPath;
122
152
  /**
123
- * Check if an equivalent path already exists.
153
+ * Create a unique signature for a path to enable O(1) deduplication.
154
+ * Signature is bidirectional (A-B same as B-A) and includes the actual
155
+ * node sequence to distinguish different paths with the same length.
124
156
  * @param fromSeed
125
157
  * @param toSeed
126
158
  * @param nodes
127
159
  * @internal
128
160
  */
129
- private pathExists;
161
+ private createPathSignature;
130
162
  /**
131
163
  * Record degree in distribution histogram.
132
164
  * @param degree
@@ -1 +1 @@
1
- {"version":3,"file":"degree-prioritised-expansion.d.ts","sourceRoot":"","sources":["../../../src/algorithms/traversal/degree-prioritised-expansion.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAGhE;;GAEG;AACH,MAAM,WAAW,gCAAgC;IAChD,yDAAyD;IACzD,KAAK,EAAE,KAAK,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAC;IAEpE,kDAAkD;IAClD,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAE1B,4CAA4C;IAC5C,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAE1B,kDAAkD;IAClD,kBAAkB,EAAE,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;IAEvC,qCAAqC;IACrC,KAAK,EAAE,cAAc,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC9B,mDAAmD;IACnD,aAAa,EAAE,MAAM,CAAC;IAEtB,4BAA4B;IAC5B,cAAc,EAAE,MAAM,CAAC;IAEvB,oDAAoD;IACpD,UAAU,EAAE,MAAM,CAAC;IAEnB,0CAA0C;IAC1C,kBAAkB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACxC;AAoBD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,qBAAa,0BAA0B,CAAC,CAAC;IAcvC,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,KAAK;IAdvB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAuB;IACjD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAoE;IAC1F,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAqB;IAClD,OAAO,CAAC,KAAK,CAAiB;IAE9B;;;;;;OAMG;gBAEe,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,EAC1B,KAAK,EAAE,SAAS,MAAM,EAAE;IA4B1C;;;;;;;OAOG;IACG,GAAG,IAAI,OAAO,CAAC,gCAAgC,CAAC;IA6EtD;;;OAGG;IACH,OAAO,CAAC,mBAAmB;IAI3B;;;;OAIG;IACH,OAAO,CAAC,0BAA0B;IAmBlC;;;;OAIG;IACH,OAAO,CAAC,YAAY;IAUpB;;;;;;OAMG;IACH,OAAO,CAAC,eAAe;IAmCvB;;;;;;OAMG;IACH,OAAO,CAAC,UAAU;IAWlB;;;;OAIG;IACH,OAAO,CAAC,YAAY;IAMpB;;;;OAIG;IACH,OAAO,CAAC,eAAe;CASvB"}
1
+ {"version":3,"file":"degree-prioritised-expansion.d.ts","sourceRoot":"","sources":["../../../src/algorithms/traversal/degree-prioritised-expansion.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAGhE;;GAEG;AACH,MAAM,WAAW,gCAAgC;IAChD,yDAAyD;IACzD,KAAK,EAAE,KAAK,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAC;IAEpE,kDAAkD;IAClD,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAE1B,4CAA4C;IAC5C,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAE1B,kDAAkD;IAClD,kBAAkB,EAAE,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;IAEvC,qCAAqC;IACrC,KAAK,EAAE,cAAc,CAAC;IAEtB;;;;OAIG;IACH,sBAAsB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC5C;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC9B,mDAAmD;IACnD,aAAa,EAAE,MAAM,CAAC;IAEtB,4BAA4B;IAC5B,cAAc,EAAE,MAAM,CAAC;IAEvB,oDAAoD;IACpD,UAAU,EAAE,MAAM,CAAC;IAEnB,0CAA0C;IAC1C,kBAAkB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACxC;AAoBD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwDG;AACH,qBAAa,0BAA0B,CAAC,CAAC;IAsBvC,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,KAAK;IAtBvB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAuB;IACjD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAoE;IAC1F,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAqB;IAClD,OAAO,CAAC,KAAK,CAAiB;IAC9B,oEAAoE;IACpE,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAA6B;IAEpE,yEAAyE;IACzE,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAA6B;IAEjE,mDAAmD;IACnD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAqB;IAEpD;;;;;;OAMG;gBAEe,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,EAC1B,KAAK,EAAE,SAAS,MAAM,EAAE;IAkC1C;;;;;;;OAOG;IACG,GAAG,IAAI,OAAO,CAAC,gCAAgC,CAAC;IA2FtD;;;OAGG;IACH,OAAO,CAAC,mBAAmB;IAI3B;;;;OAIG;IACH,OAAO,CAAC,0BAA0B;IAmBlC;;;;OAIG;IACH,OAAO,CAAC,YAAY;IAKpB;;;;;;OAMG;IACH,OAAO,CAAC,eAAe;IA8CvB;;;;;;;;OAQG;IACH,OAAO,CAAC,mBAAmB;IAQ3B;;;;OAIG;IACH,OAAO,CAAC,YAAY;IAMpB;;;;OAIG;IACH,OAAO,CAAC,eAAe;CASvB"}
@@ -0,0 +1,172 @@
1
+ import { GraphExpander } from '../../interfaces/graph-expander';
2
+ import { DegreePrioritisedExpansionResult } from './degree-prioritised-expansion';
3
+ /**
4
+ * Entropy-Guided Expansion (EGE)
5
+ *
6
+ * **Thesis Alignment**: This is an experimental variant of the seed-bounded
7
+ * sampling algorithm that uses local neighbourhood entropy to guide expansion
8
+ * instead of simple degree prioritisation.
9
+ *
10
+ * **Design Motivation**:
11
+ * - DegreePrioritisedExpansion: Defers hubs using degree alone
12
+ * - EntropyGuidedExpansion: Incorporates neighbourhood diversity via entropy
13
+ *
14
+ * Use this implementation when:
15
+ * - Neighbourhood diversity should influence exploration order
16
+ * - Homogeneous neighbourhoods (low entropy) should be explored first
17
+ * - Heterogeneous neighbourhoods (high entropy) should be deferred
18
+ *
19
+ * **Key Design Properties**:
20
+ * 1. **Parameter-free termination**: No arbitrary limits on nodes, edges, or iterations.
21
+ * The sole termination condition is structural: all frontiers exhausted.
22
+ * 2. **N-seed generalisation**: Single algorithm handles N=1 (ego-network), N=2
23
+ * (bidirectional), and N≥3 (multi-frontier) with identical code path.
24
+ * 3. **Entropy-based prioritisation**: Priority π_EGE(v) = (1 / (H_local(v) + ε)) × log(deg(v) + 1)
25
+ * where H_local(v) is Shannon entropy of neighbour type distribution.
26
+ * 4. **Hub deferral maintained**: log(deg + 1) term preserves degree-based ordering.
27
+ *
28
+ * **Algorithm**:
29
+ * ```
30
+ * 1. Initialize N frontiers, one per seed
31
+ * 2. While any frontier is non-empty:
32
+ * a. Select the frontier with the lowest entropy-weighted node at its front
33
+ * b. Pop that node and expand its neighbours
34
+ * c. For each new neighbour, check intersection with all other frontiers
35
+ * d. If intersection found, record path between the two seeds
36
+ * 3. Return sampled subgraph (union of all visited nodes)
37
+ * ```
38
+ *
39
+ * **Priority Function**:
40
+ * π_EGE(v) = (1 / (H_local(v) + ε)) × log(deg(v) + 1)
41
+ *
42
+ * Where:
43
+ * - H_local(v) = -Σ p(τ) log p(τ) (Shannon entropy of neighbour types)
44
+ * - p(τ) = proportion of neighbours with relationship type τ
45
+ * - ε = 0.001 (prevents division by zero)
46
+ * - deg(v) = total degree of node v
47
+ *
48
+ * **Complexity**: O(E log V) where E = edges explored, V = vertices
49
+ *
50
+ * @template T - Type of node data returned by expander
51
+ * @example
52
+ * ```typescript
53
+ * const expansion = new EntropyGuidedExpansion(expander, ['seedA', 'seedB']);
54
+ * const result = await expansion.run();
55
+ * console.log(`Found ${result.paths.length} paths`);
56
+ * console.log(`Sampled ${result.sampledNodes.size} nodes`);
57
+ * ```
58
+ *
59
+ * @see DegreePrioritisedExpansion - Base implementation using degree alone
60
+ */
61
+ export declare class EntropyGuidedExpansion<T> {
62
+ private readonly expander;
63
+ private readonly seeds;
64
+ private readonly frontiers;
65
+ private readonly paths;
66
+ private readonly sampledEdges;
67
+ private stats;
68
+ /** Tracks when each node was first discovered (iteration number) */
69
+ private readonly nodeDiscoveryIteration;
70
+ /** Track which frontier owns each node for O(1) intersection checking */
71
+ private readonly nodeToFrontierIndex;
72
+ /** Track path signatures for O(1) deduplication */
73
+ private readonly pathSignatures;
74
+ /** Epsilon value to prevent division by zero in entropy calculation */
75
+ private static readonly EPSILON;
76
+ /**
77
+ * Create a new entropy-guided expansion.
78
+ *
79
+ * @param expander - Graph expander providing neighbour access
80
+ * @param seeds - Array of seed node IDs (N ≥ 1)
81
+ * @throws Error if no seeds provided
82
+ */
83
+ constructor(expander: GraphExpander<T>, seeds: readonly string[]);
84
+ /**
85
+ * Compute local entropy H_local(v) for a node based on neighbour type distribution.
86
+ *
87
+ * H_local(v) = -Σ p(τ) log₂ p(τ)
88
+ *
89
+ * Where p(τ) is the proportion of neighbours with relationship type τ.
90
+ *
91
+ * @param nodeId - Node to compute entropy for
92
+ * @returns Shannon entropy of neighbour type distribution
93
+ * @internal
94
+ */
95
+ private computeLocalEntropy;
96
+ /**
97
+ * Calculate entropy-guided priority for a node.
98
+ *
99
+ * π_EGE(v) = (1 / (H_local(v) + ε)) × log(deg(v) + 1)
100
+ *
101
+ * Lower priority = explored first (min-heap behaviour).
102
+ *
103
+ * @param nodeId - Node to calculate priority for
104
+ * @returns Priority value (lower = higher priority)
105
+ * @internal
106
+ */
107
+ private calculateEntropyPriority;
108
+ /**
109
+ * Calculate entropy-guided priority for a node (async version).
110
+ *
111
+ * @param nodeId - Node to calculate priority for
112
+ * @returns Priority value (lower = higher priority)
113
+ * @internal
114
+ */
115
+ private calculateEntropyPriorityAsync;
116
+ /**
117
+ * Run the expansion to completion.
118
+ *
119
+ * Terminates when all frontiers are exhausted (no unexpanded nodes remain).
120
+ * This is the ONLY termination condition—no arbitrary limits.
121
+ *
122
+ * @returns Expansion results including paths and sampled subgraph
123
+ */
124
+ run(): Promise<DegreePrioritisedExpansionResult>;
125
+ /**
126
+ * Check if any frontier has unexpanded nodes.
127
+ * @internal
128
+ */
129
+ private hasNonEmptyFrontier;
130
+ /**
131
+ * Select the frontier with the lowest entropy-weighted node at its front.
132
+ * Returns -1 if all frontiers are empty.
133
+ * @internal
134
+ */
135
+ private selectLowestEntropyFrontier;
136
+ /**
137
+ * Peek at the priority of the front item without removing it.
138
+ * @param queue
139
+ * @internal
140
+ */
141
+ private peekPriority;
142
+ /**
143
+ * Reconstruct path from meeting point between two frontiers.
144
+ * @param stateA
145
+ * @param stateB
146
+ * @param meetingNode
147
+ * @internal
148
+ */
149
+ private reconstructPath;
150
+ /**
151
+ * Create a unique signature for a path to enable O(1) deduplication.
152
+ * Signature is bidirectional (A-B same as B-A).
153
+ * @param fromSeed
154
+ * @param toSeed
155
+ * @param nodes
156
+ * @internal
157
+ */
158
+ private createPathSignature;
159
+ /**
160
+ * Record degree in distribution histogram.
161
+ * @param degree
162
+ * @internal
163
+ */
164
+ private recordDegree;
165
+ /**
166
+ * Get histogram bucket for a degree value.
167
+ * @param degree
168
+ * @internal
169
+ */
170
+ private getDegreeBucket;
171
+ }
172
+ //# sourceMappingURL=entropy-guided-expansion.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entropy-guided-expansion.d.ts","sourceRoot":"","sources":["../../../src/algorithms/traversal/entropy-guided-expansion.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,gCAAgC,EAAkB,MAAM,gCAAgC,CAAC;AAqBlG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyDG;AACH,qBAAa,sBAAsB,CAAC,CAAC;IAyBnC,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,KAAK;IAzBvB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAuB;IACjD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAoE;IAC1F,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAqB;IAClD,OAAO,CAAC,KAAK,CAAiB;IAC9B,oEAAoE;IACpE,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAA6B;IAEpE,yEAAyE;IACzE,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAA6B;IAEjE,mDAAmD;IACnD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAqB;IAEpD,uEAAuE;IACvE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAS;IAExC;;;;;;OAMG;gBAEe,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,EAC1B,KAAK,EAAE,SAAS,MAAM,EAAE;IAkC1C;;;;;;;;;;OAUG;YACW,mBAAmB;IA6BjC;;;;;;;;;;OAUG;IACH,OAAO,CAAC,wBAAwB;IAUhC;;;;;;OAMG;YACW,6BAA6B;IAW3C;;;;;;;OAOG;IACG,GAAG,IAAI,OAAO,CAAC,gCAAgC,CAAC;IAuFtD;;;OAGG;IACH,OAAO,CAAC,mBAAmB;IAI3B;;;;OAIG;IACH,OAAO,CAAC,2BAA2B;IAmBnC;;;;OAIG;IACH,OAAO,CAAC,YAAY;IAKpB;;;;;;OAMG;IACH,OAAO,CAAC,eAAe;IAmCvB;;;;;;;OAOG;IACH,OAAO,CAAC,mBAAmB;IAM3B;;;;OAIG;IACH,OAAO,CAAC,YAAY;IAMpB;;;;OAIG;IACH,OAAO,CAAC,eAAe;CASvB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=entropy-guided-expansion.unit.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entropy-guided-expansion.unit.test.d.ts","sourceRoot":"","sources":["../../../src/algorithms/traversal/entropy-guided-expansion.unit.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,199 @@
1
+ import { GraphExpander } from '../../interfaces/graph-expander.js';
2
+ import { DegreePrioritisedExpansionResult } from './degree-prioritised-expansion.js';
3
+ /**
4
+ * Heterogeneity-Aware Bidirectional Expansion (HABE)
5
+ *
6
+ * **Novel Contribution**: Combines entropy-guided expansion with overlap-based
7
+ * termination and path salience ranking to produce cross-domain paths that
8
+ * traverse heterogeneous graph regions.
9
+ *
10
+ * **Key Innovation**: HABE integrates three thesis components:
11
+ * 1. **EGE Priority**: π_HABE(v) = (1 / (H_local(v) + ε)) × log(deg(v) + 1)
12
+ * - Low-entropy (homogeneous) neighborhoods expanded first
13
+ * - High-entropy (heterogeneous) neighborhoods deferred
14
+ * 2. **Transitive Connectivity Termination**: Terminates when overlap graph is connected
15
+ * - Less strict than full pairwise, enables earlier termination
16
+ * - Ensures all seeds are transitively connected
17
+ * 3. **Path Salience Output**: Returns paths ranked by geometric-mean MI
18
+ * - M(P) = exp((1/k) Σ log I(e))
19
+ * - Weak-link sensitivity without length bias
20
+ *
21
+ * **Design Motivation**:
22
+ * In heterogeneous graphs (e.g., citation networks with multi-domain papers),
23
+ * standard expansion may get trapped in homogeneous regions. HABE actively
24
+ * defers high-entropy nodes, encouraging exploration of cross-domain connections.
25
+ *
26
+ * **Key Properties**:
27
+ * 1. **Cross-domain sensitivity**: Prioritizes edges connecting different domains
28
+ * 2. **Parameter-free termination**: Transitive connectivity, no arbitrary cutoffs
29
+ * 3. **N-seed generalisation**: Single algorithm handles N=1, N=2, and N≥3
30
+ * 4. **Entropy-hub duality**: log(deg+1) maintains hub deferral from degree-prioritised
31
+ *
32
+ * **Algorithm**:
33
+ * ```
34
+ * 1. Pre-compute local entropy H_local(v) for frontier nodes
35
+ * 2. Initialize N frontiers, one per seed
36
+ * 3. While any frontier is non-empty AND overlap graph not connected:
37
+ * a. Select frontier with lowest π_HABE(v) node at front
38
+ * b. Pop that node and expand its neighbours
39
+ * c. For each new neighbour:
40
+ * - Compute H_local asynchronously
41
+ * - Check intersection with all other frontiers
42
+ * - Record overlap events for termination check
43
+ * d. If intersection found, record path between seeds
44
+ * 4. Rank discovered paths by geometric-mean MI (Path Salience)
45
+ * 5. Return sampled subgraph with ranked paths
46
+ * ```
47
+ *
48
+ * **Priority Function**:
49
+ * π_HABE(v) = (1 / (H_local(v) + ε)) × log(deg(v) + 1)
50
+ *
51
+ * Where:
52
+ * - H_local(v) = -Σ p(τ) log₂ p(τ) (Shannon entropy of neighbour types)
53
+ * - p(τ) = proportion of neighbours with relationship type τ
54
+ * - ε = 0.001 (prevents division by zero)
55
+ * - deg(v) = total degree of node v
56
+ *
57
+ * **Complexity**: O(E log V) where E = edges explored, V = vertices
58
+ *
59
+ * @template T - Type of node data returned by expander
60
+ * @example
61
+ * ```typescript
62
+ * const expansion = new HeterogeneityAwareExpansion(expander, ['seedA', 'seedB']);
63
+ * const result = await expansion.run();
64
+ * console.log(`Found ${result.paths.length} cross-domain paths`);
65
+ * console.log(`Sampled ${result.sampledNodes.size} nodes`);
66
+ * ```
67
+ *
68
+ * @see EntropyGuidedExpansion - Entropy-based priority without overlap termination
69
+ * @see DegreePrioritisedExpansion - Base implementation using degree alone
70
+ */
71
+ export declare class HeterogeneityAwareExpansion<T> {
72
+ private readonly expander;
73
+ private readonly seeds;
74
+ private readonly frontiers;
75
+ private readonly paths;
76
+ private readonly sampledEdges;
77
+ private stats;
78
+ /** Tracks when each node was first discovered (iteration number) */
79
+ private readonly nodeDiscoveryIteration;
80
+ /** Track which frontier owns each node for O(1) intersection checking */
81
+ private readonly nodeToFrontierIndex;
82
+ /** Track path signatures for O(1) deduplication */
83
+ private readonly pathSignatures;
84
+ /** Overlap events for transitive connectivity termination */
85
+ private readonly overlapEvents;
86
+ /** Epsilon value to prevent division by zero in entropy calculation */
87
+ private static readonly EPSILON;
88
+ /** Cache of pre-computed local entropy values */
89
+ private readonly entropyCache;
90
+ /**
91
+ * Create a new heterogeneity-aware expansion.
92
+ *
93
+ * @param expander - Graph expander providing neighbour access
94
+ * @param seeds - Array of seed node IDs (N ≥ 1)
95
+ * @throws Error if no seeds provided
96
+ */
97
+ constructor(expander: GraphExpander<T>, seeds: readonly string[]);
98
+ /**
99
+ * Compute local entropy H_local(v) for a node based on neighbour type distribution.
100
+ *
101
+ * H_local(v) = -Σ p(τ) log₂ p(τ)
102
+ *
103
+ * Where p(τ) is the proportion of neighbours with relationship type τ.
104
+ *
105
+ * @param nodeId - Node to compute entropy for
106
+ * @returns Shannon entropy of neighbour type distribution
107
+ * @internal
108
+ */
109
+ private computeLocalEntropy;
110
+ /**
111
+ * Calculate initial priority for seed nodes (degree-only, entropy computed lazily).
112
+ *
113
+ * @param nodeId - Node to calculate priority for
114
+ * @returns Priority value
115
+ * @internal
116
+ */
117
+ private calculateInitialPriority;
118
+ /**
119
+ * Calculate HABE priority for a node (async version with entropy).
120
+ *
121
+ * π_HABE(v) = (1 / (H_local(v) + ε)) × log(deg(v) + 1)
122
+ *
123
+ * Lower priority = explored first (min-heap behaviour).
124
+ *
125
+ * @param nodeId - Node to calculate priority for
126
+ * @returns Priority value (lower = higher priority)
127
+ * @internal
128
+ */
129
+ private calculateHABEPriority;
130
+ /**
131
+ * Check if expansion should terminate based on transitive connectivity.
132
+ *
133
+ * Terminates when overlap graph is connected (all seeds transitively connected).
134
+ *
135
+ * @returns true if expansion should terminate
136
+ * @internal
137
+ */
138
+ private shouldTerminate;
139
+ /**
140
+ * Check if an undirected graph is connected using BFS.
141
+ *
142
+ * @param adj - Adjacency list representation of graph
143
+ * @param n - Number of nodes
144
+ * @returns true if graph is connected
145
+ * @internal
146
+ */
147
+ private isConnected;
148
+ /**
149
+ * Run the expansion to completion.
150
+ *
151
+ * Terminates when:
152
+ * - All frontiers are exhausted (no unexpanded nodes remain), OR
153
+ * - Overlap graph is transitively connected (all seeds connected via overlaps)
154
+ *
155
+ * @returns Expansion results including paths and sampled subgraph
156
+ */
157
+ run(): Promise<DegreePrioritisedExpansionResult>;
158
+ /**
159
+ * Check if any frontier has unexpanded nodes.
160
+ * @internal
161
+ */
162
+ private hasNonEmptyFrontier;
163
+ /**
164
+ * Select the frontier with the lowest HABE-priority node at its front.
165
+ * Returns -1 if all frontiers are empty.
166
+ * @internal
167
+ */
168
+ private selectLowestPriorityFrontier;
169
+ /**
170
+ * Reconstruct path from meeting point between two frontiers.
171
+ * @param stateA
172
+ * @param stateB
173
+ * @param meetingNode
174
+ * @internal
175
+ */
176
+ private reconstructPath;
177
+ /**
178
+ * Create a unique signature for a path to enable O(1) deduplication.
179
+ * Signature is bidirectional (A-B same as B-A).
180
+ * @param fromSeed
181
+ * @param toSeed
182
+ * @param nodes
183
+ * @internal
184
+ */
185
+ private createPathSignature;
186
+ /**
187
+ * Record degree in distribution histogram.
188
+ * @param degree
189
+ * @internal
190
+ */
191
+ private recordDegree;
192
+ /**
193
+ * Get histogram bucket for a degree value.
194
+ * @param degree
195
+ * @internal
196
+ */
197
+ private getDegreeBucket;
198
+ }
199
+ //# sourceMappingURL=heterogeneity-aware-expansion.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"heterogeneity-aware-expansion.d.ts","sourceRoot":"","sources":["../../../src/algorithms/traversal/heterogeneity-aware-expansion.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACnE,OAAO,KAAK,EAAE,gCAAgC,EAAkB,MAAM,mCAAmC,CAAC;AA+B1G;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmEG;AACH,qBAAa,2BAA2B,CAAC,CAAC;IA+BxC,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,KAAK;IA/BvB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAuB;IACjD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAoE;IAC1F,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAqB;IAClD,OAAO,CAAC,KAAK,CAAiB;IAC9B,oEAAoE;IACpE,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAA6B;IAEpE,yEAAyE;IACzE,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAA6B;IAEjE,mDAAmD;IACnD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAqB;IAEpD,6DAA6D;IAC7D,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAsB;IAEpD,uEAAuE;IACvE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAS;IAExC,iDAAiD;IACjD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA6B;IAE1D;;;;;;OAMG;gBAEe,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,EAC1B,KAAK,EAAE,SAAS,MAAM,EAAE;IAmC1C;;;;;;;;;;OAUG;YACW,mBAAmB;IAqCjC;;;;;;OAMG;IACH,OAAO,CAAC,wBAAwB;IAKhC;;;;;;;;;;OAUG;YACW,qBAAqB;IAWnC;;;;;;;OAOG;IACH,OAAO,CAAC,eAAe;IA6BvB;;;;;;;OAOG;IACH,OAAO,CAAC,WAAW;IAuBnB;;;;;;;;OAQG;IACG,GAAG,IAAI,OAAO,CAAC,gCAAgC,CAAC;IA4GtD;;;OAGG;IACH,OAAO,CAAC,mBAAmB;IAI3B;;;;OAIG;IACH,OAAO,CAAC,4BAA4B;IAmBpC;;;;;;OAMG;IACH,OAAO,CAAC,eAAe;IAkCvB;;;;;;;OAOG;IACH,OAAO,CAAC,mBAAmB;IAO3B;;;;OAIG;IACH,OAAO,CAAC,YAAY;IAMpB;;;;OAIG;IACH,OAAO,CAAC,eAAe;CASvB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=heterogeneity-aware-expansion.unit.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"heterogeneity-aware-expansion.unit.test.d.ts","sourceRoot":"","sources":["../../../src/algorithms/traversal/heterogeneity-aware-expansion.unit.test.ts"],"names":[],"mappings":""}
@@ -11,5 +11,19 @@ export type { DegreePrioritisedExpansionResult, ExpansionStats } from './degree-
11
11
  export { DegreePrioritisedExpansion } from './degree-prioritised-expansion';
12
12
  export type { DFSTraversalResult } from './dfs';
13
13
  export { dfs } from './dfs';
14
+ export { EntropyGuidedExpansion } from './entropy-guided-expansion';
15
+ export { HeterogeneityAwareExpansion } from './heterogeneity-aware-expansion';
16
+ export type { IntelligentDelayedTerminationConfig } from './intelligent-delayed-termination';
17
+ export { IntelligentDelayedTermination } from './intelligent-delayed-termination';
18
+ export type { MFASFConfig } from './multi-frontier-adaptive-expansion';
19
+ export { MultiFrontierAdaptiveExpansion } from './multi-frontier-adaptive-expansion';
20
+ export type { PathPreservingExpansionConfig } from './path-preserving-expansion';
21
+ export { PathPreservingExpansion } from './path-preserving-expansion';
22
+ export type { PriorityOptions } from './priority-calculator';
23
+ export { calculatePriority, calculatePriorityFromNeighbors, createPriorityCalculator, DEFAULT_EPSILON, DEFAULT_NODE_WEIGHT, legacyCalculatePriority, } from './priority-calculator';
14
24
  export { PriorityQueue } from './priority-queue';
25
+ export { RetrospectiveSalienceExpansion } from './retrospective-salience-expansion';
26
+ export { computeNodeSalienceFromRankedPaths, computeNodeSalienceScores, SaliencePrioritisedExpansion, } from './salience-prioritised-expansion';
27
+ export type { BetweenGraphOutput, BetweenGraphStrategy, CoverageThresholdConfig, FrontierState, N1HandlingStrategy, OverlapBasedExpansionConfig, OverlapBasedExpansionResult, OverlapDetectionStrategy, OverlapEvent, OverlapMetadata, SaliencePreservingConfig, SphereIntersectionConfig, TerminationStrategy, ThresholdSharingConfig, } from './overlap-based';
28
+ export { CommonConvergenceStrategy, CoverageThresholdStrategy, FullPairwiseStrategy, MinimalPathsStrategy, OverlapBasedExpansion, PhysicalMeetingStrategy, SaliencePreservingStrategy, SphereIntersectionStrategy, ThresholdSharingStrategy, TransitiveConnectivityStrategy, TruncatedComponentStrategy, } from './overlap-based';
15
29
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/algorithms/traversal/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,YAAY,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,OAAO,CAAC;AAChE,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5B,YAAY,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC3F,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,YAAY,EAAE,gCAAgC,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AACvG,OAAO,EAAE,0BAA0B,EAAE,MAAM,gCAAgC,CAAC;AAC5E,YAAY,EAAE,kBAAkB,EAAE,MAAM,OAAO,CAAC;AAChD,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5B,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/algorithms/traversal/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,YAAY,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,OAAO,CAAC;AAChE,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5B,YAAY,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC3F,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,YAAY,EAAE,gCAAgC,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AACvG,OAAO,EAAE,0BAA0B,EAAE,MAAM,gCAAgC,CAAC;AAC5E,YAAY,EAAE,kBAAkB,EAAE,MAAM,OAAO,CAAC;AAChD,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5B,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,2BAA2B,EAAE,MAAM,iCAAiC,CAAC;AAC9E,YAAY,EAAE,mCAAmC,EAAE,MAAM,mCAAmC,CAAC;AAC7F,OAAO,EAAE,6BAA6B,EAAE,MAAM,mCAAmC,CAAC;AAClF,YAAY,EAAE,WAAW,EAAE,MAAM,qCAAqC,CAAC;AACvE,OAAO,EAAE,8BAA8B,EAAE,MAAM,qCAAqC,CAAC;AACrF,YAAY,EAAE,6BAA6B,EAAE,MAAM,6BAA6B,CAAC;AACjF,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AACtE,YAAY,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EACN,iBAAiB,EACjB,8BAA8B,EAC9B,wBAAwB,EACxB,eAAe,EACf,mBAAmB,EACnB,uBAAuB,GACvB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,8BAA8B,EAAE,MAAM,oCAAoC,CAAC;AACpF,OAAO,EACN,kCAAkC,EAClC,yBAAyB,EACzB,4BAA4B,GAC5B,MAAM,kCAAkC,CAAC;AAG1C,YAAY,EACX,kBAAkB,EAClB,oBAAoB,EACpB,uBAAuB,EACvB,aAAa,EACb,kBAAkB,EAClB,2BAA2B,EAC3B,2BAA2B,EAC3B,wBAAwB,EACxB,YAAY,EACZ,eAAe,EACf,wBAAwB,EACxB,wBAAwB,EACxB,mBAAmB,EACnB,sBAAsB,GACtB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAEN,yBAAyB,EAEzB,yBAAyB,EACzB,oBAAoB,EAEpB,oBAAoB,EAEpB,qBAAqB,EAErB,uBAAuB,EACvB,0BAA0B,EAC1B,0BAA0B,EAC1B,wBAAwB,EACxB,8BAA8B,EAC9B,0BAA0B,GAC1B,MAAM,iBAAiB,CAAC"}