graphbox 1.2.1 → 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.
- package/README.md +98 -41
- package/dist/__tests__/integration/bipartite.integration.test.d.ts +9 -0
- package/dist/__tests__/integration/bipartite.integration.test.d.ts.map +1 -0
- package/dist/__tests__/integration/chordal.integration.test.d.ts +9 -0
- package/dist/__tests__/integration/chordal.integration.test.d.ts.map +1 -0
- package/dist/__tests__/integration/cliquewidth.integration.test.d.ts +8 -0
- package/dist/__tests__/integration/cliquewidth.integration.test.d.ts.map +1 -0
- package/dist/__tests__/integration/cograph.integration.test.d.ts +8 -0
- package/dist/__tests__/integration/cograph.integration.test.d.ts.map +1 -0
- package/dist/__tests__/integration/comparability.integration.test.d.ts +8 -0
- package/dist/__tests__/integration/comparability.integration.test.d.ts.map +1 -0
- package/dist/__tests__/integration/eulerian.integration.test.d.ts +9 -0
- package/dist/__tests__/integration/eulerian.integration.test.d.ts.map +1 -0
- package/dist/__tests__/integration/hamiltonian.integration.test.d.ts +8 -0
- package/dist/__tests__/integration/hamiltonian.integration.test.d.ts.map +1 -0
- package/dist/__tests__/integration/helpers.d.ts +8 -0
- package/dist/__tests__/integration/helpers.d.ts.map +1 -0
- package/dist/__tests__/integration/interval.integration.test.d.ts +8 -0
- package/dist/__tests__/integration/interval.integration.test.d.ts.map +1 -0
- package/dist/__tests__/integration/modular.integration.test.d.ts +8 -0
- package/dist/__tests__/integration/modular.integration.test.d.ts.map +1 -0
- package/dist/__tests__/integration/pathwidth.integration.test.d.ts +8 -0
- package/dist/__tests__/integration/pathwidth.integration.test.d.ts.map +1 -0
- package/dist/__tests__/integration/perfect.integration.test.d.ts +8 -0
- package/dist/__tests__/integration/perfect.integration.test.d.ts.map +1 -0
- package/dist/__tests__/integration/permutation.integration.test.d.ts +8 -0
- package/dist/__tests__/integration/permutation.integration.test.d.ts.map +1 -0
- package/dist/__tests__/integration/planar.integration.test.d.ts +8 -0
- package/dist/__tests__/integration/planar.integration.test.d.ts.map +1 -0
- package/dist/__tests__/integration/ptolemaic.integration.test.d.ts +8 -0
- package/dist/__tests__/integration/ptolemaic.integration.test.d.ts.map +1 -0
- package/dist/__tests__/integration/quasiline.integration.test.d.ts +8 -0
- package/dist/__tests__/integration/quasiline.integration.test.d.ts.map +1 -0
- package/dist/__tests__/integration/regular.integration.test.d.ts +8 -0
- package/dist/__tests__/integration/regular.integration.test.d.ts.map +1 -0
- package/dist/__tests__/integration/split.integration.test.d.ts +8 -0
- package/dist/__tests__/integration/split.integration.test.d.ts.map +1 -0
- package/dist/__tests__/integration/tree.integration.test.d.ts +8 -0
- package/dist/__tests__/integration/tree.integration.test.d.ts.map +1 -0
- package/dist/algorithms/analysis/connected-components.unit.test.d.ts +5 -0
- package/dist/algorithms/analysis/connected-components.unit.test.d.ts.map +1 -0
- package/dist/algorithms/analysis/cycle-detection.unit.test.d.ts +5 -0
- package/dist/algorithms/analysis/cycle-detection.unit.test.d.ts.map +1 -0
- package/dist/algorithms/analysis/scc.unit.test.d.ts +5 -0
- package/dist/algorithms/analysis/scc.unit.test.d.ts.map +1 -0
- package/dist/algorithms/analysis/topological-sort.unit.test.d.ts +5 -0
- package/dist/algorithms/analysis/topological-sort.unit.test.d.ts.map +1 -0
- package/dist/algorithms/clustering/infomap.unit.test.d.ts +5 -0
- package/dist/algorithms/clustering/infomap.unit.test.d.ts.map +1 -0
- package/dist/algorithms/clustering/label-propagation.unit.test.d.ts +5 -0
- package/dist/algorithms/clustering/label-propagation.unit.test.d.ts.map +1 -0
- package/dist/algorithms/clustering/leiden.unit.test.d.ts +5 -0
- package/dist/algorithms/clustering/leiden.unit.test.d.ts.map +1 -0
- package/dist/algorithms/clustering/louvain.d.ts +22 -6
- package/dist/algorithms/clustering/louvain.d.ts.map +1 -1
- package/dist/algorithms/clustering/louvain.unit.test.d.ts +5 -0
- package/dist/algorithms/clustering/louvain.unit.test.d.ts.map +1 -0
- package/dist/algorithms/decomposition/biconnected.unit.test.d.ts +2 -0
- package/dist/algorithms/decomposition/biconnected.unit.test.d.ts.map +1 -0
- package/dist/algorithms/decomposition/core-periphery.unit.test.d.ts +2 -0
- package/dist/algorithms/decomposition/core-periphery.unit.test.d.ts.map +1 -0
- package/dist/algorithms/decomposition/k-core.unit.test.d.ts +2 -0
- package/dist/algorithms/decomposition/k-core.unit.test.d.ts.map +1 -0
- package/dist/algorithms/extraction/filter.unit.test.d.ts +5 -0
- package/dist/algorithms/extraction/filter.unit.test.d.ts.map +1 -0
- package/dist/algorithms/extraction/forbidden-subgraphs.d.ts +211 -0
- package/dist/algorithms/extraction/forbidden-subgraphs.d.ts.map +1 -0
- package/dist/algorithms/extraction/motif.unit.test.d.ts +5 -0
- package/dist/algorithms/extraction/motif.unit.test.d.ts.map +1 -0
- package/dist/algorithms/extraction/path.unit.test.d.ts +5 -0
- package/dist/algorithms/extraction/path.unit.test.d.ts.map +1 -0
- package/dist/algorithms/extraction/subgraph.unit.test.d.ts +5 -0
- package/dist/algorithms/extraction/subgraph.unit.test.d.ts.map +1 -0
- package/dist/algorithms/extraction/truss.unit.test.d.ts +5 -0
- package/dist/algorithms/extraction/truss.unit.test.d.ts.map +1 -0
- package/dist/algorithms/extraction/validators.unit.test.d.ts +2 -0
- package/dist/algorithms/extraction/validators.unit.test.d.ts.map +1 -0
- package/dist/algorithms/graph/graph-adapter.d.ts.map +1 -1
- package/dist/algorithms/graph/graph-adapter.unit.test.d.ts +2 -0
- package/dist/algorithms/graph/graph-adapter.unit.test.d.ts.map +1 -0
- package/dist/algorithms/graph/graph.unit.test.d.ts +5 -0
- package/dist/algorithms/graph/graph.unit.test.d.ts.map +1 -0
- package/dist/algorithms/hierarchical/clustering.unit.test.d.ts +2 -0
- package/dist/algorithms/hierarchical/clustering.unit.test.d.ts.map +1 -0
- package/dist/algorithms/layout/hierarchical-layout.unit.test.d.ts +5 -0
- package/dist/algorithms/layout/hierarchical-layout.unit.test.d.ts.map +1 -0
- package/dist/algorithms/metrics/cluster-quality.unit.test.d.ts +5 -0
- package/dist/algorithms/metrics/cluster-quality.unit.test.d.ts.map +1 -0
- package/dist/algorithms/metrics/conductance.unit.test.d.ts +5 -0
- package/dist/algorithms/metrics/conductance.unit.test.d.ts.map +1 -0
- package/dist/algorithms/metrics/modularity.d.ts.map +1 -1
- package/dist/algorithms/metrics/modularity.unit.test.d.ts +5 -0
- package/dist/algorithms/metrics/modularity.unit.test.d.ts.map +1 -0
- package/dist/algorithms/partitioning/spectral.unit.test.d.ts +5 -0
- package/dist/algorithms/partitioning/spectral.unit.test.d.ts.map +1 -0
- package/dist/algorithms/pathfinding/dijkstra.unit.test.d.ts +5 -0
- package/dist/algorithms/pathfinding/dijkstra.unit.test.d.ts.map +1 -0
- package/dist/algorithms/pathfinding/mutual-information.unit.test.d.ts +2 -0
- package/dist/algorithms/pathfinding/mutual-information.unit.test.d.ts.map +1 -0
- package/dist/algorithms/pathfinding/path-ranking.d.ts.map +1 -1
- package/dist/algorithms/pathfinding/path-ranking.unit.test.d.ts +2 -0
- package/dist/algorithms/pathfinding/path-ranking.unit.test.d.ts.map +1 -0
- package/dist/algorithms/pathfinding/priority-queue.unit.test.d.ts +5 -0
- package/dist/algorithms/pathfinding/priority-queue.unit.test.d.ts.map +1 -0
- package/dist/algorithms/pathfinding/random-path-sampling.d.ts +31 -0
- package/dist/algorithms/pathfinding/random-path-sampling.d.ts.map +1 -0
- package/dist/algorithms/pathfinding/shortest-path-ranking.d.ts +28 -0
- package/dist/algorithms/pathfinding/shortest-path-ranking.d.ts.map +1 -0
- package/dist/algorithms/traversal/bidirectional-bfs.d.ts +15 -0
- package/dist/algorithms/traversal/bidirectional-bfs.d.ts.map +1 -1
- package/dist/algorithms/traversal/degree-prioritised-expansion-intersection.unit.test.d.ts +13 -0
- package/dist/algorithms/traversal/degree-prioritised-expansion-intersection.unit.test.d.ts.map +1 -0
- package/dist/algorithms/traversal/degree-prioritised-expansion.d.ts +34 -2
- package/dist/algorithms/traversal/degree-prioritised-expansion.d.ts.map +1 -1
- package/dist/algorithms/traversal/degree-prioritised-expansion.unit.test.d.ts +5 -0
- package/dist/algorithms/traversal/degree-prioritised-expansion.unit.test.d.ts.map +1 -0
- package/dist/algorithms/traversal/entropy-guided-expansion.d.ts +172 -0
- package/dist/algorithms/traversal/entropy-guided-expansion.d.ts.map +1 -0
- package/dist/algorithms/traversal/entropy-guided-expansion.unit.test.d.ts +2 -0
- package/dist/algorithms/traversal/entropy-guided-expansion.unit.test.d.ts.map +1 -0
- package/dist/algorithms/traversal/heterogeneity-aware-expansion.d.ts +199 -0
- package/dist/algorithms/traversal/heterogeneity-aware-expansion.d.ts.map +1 -0
- package/dist/algorithms/traversal/heterogeneity-aware-expansion.unit.test.d.ts +2 -0
- package/dist/algorithms/traversal/heterogeneity-aware-expansion.unit.test.d.ts.map +1 -0
- package/dist/algorithms/traversal/index.d.ts +14 -0
- package/dist/algorithms/traversal/index.d.ts.map +1 -1
- package/dist/algorithms/traversal/intelligent-delayed-termination.d.ts +221 -0
- package/dist/algorithms/traversal/intelligent-delayed-termination.d.ts.map +1 -0
- package/dist/algorithms/traversal/intelligent-delayed-termination.unit.test.d.ts +2 -0
- package/dist/algorithms/traversal/intelligent-delayed-termination.unit.test.d.ts.map +1 -0
- package/dist/algorithms/traversal/multi-frontier-adaptive-expansion.d.ts +245 -0
- package/dist/algorithms/traversal/multi-frontier-adaptive-expansion.d.ts.map +1 -0
- package/dist/algorithms/traversal/multi-frontier-adaptive-expansion.unit.test.d.ts +2 -0
- package/dist/algorithms/traversal/multi-frontier-adaptive-expansion.unit.test.d.ts.map +1 -0
- package/dist/algorithms/traversal/overlap-based/frontier-state.d.ts +25 -0
- package/dist/algorithms/traversal/overlap-based/frontier-state.d.ts.map +1 -0
- package/dist/algorithms/traversal/overlap-based/index.d.ts +71 -0
- package/dist/algorithms/traversal/overlap-based/index.d.ts.map +1 -0
- package/dist/algorithms/traversal/overlap-based/overlap-based-expansion.d.ts +182 -0
- package/dist/algorithms/traversal/overlap-based/overlap-based-expansion.d.ts.map +1 -0
- package/dist/algorithms/traversal/overlap-based/overlap-result.d.ts +82 -0
- package/dist/algorithms/traversal/overlap-based/overlap-result.d.ts.map +1 -0
- package/dist/algorithms/traversal/overlap-based/strategies/between-graph/between-graph-strategy.d.ts +42 -0
- package/dist/algorithms/traversal/overlap-based/strategies/between-graph/between-graph-strategy.d.ts.map +1 -0
- package/dist/algorithms/traversal/overlap-based/strategies/between-graph/minimal-paths.strategy.d.ts +41 -0
- package/dist/algorithms/traversal/overlap-based/strategies/between-graph/minimal-paths.strategy.d.ts.map +1 -0
- package/dist/algorithms/traversal/overlap-based/strategies/between-graph/salience-preserving.strategy.d.ts +82 -0
- package/dist/algorithms/traversal/overlap-based/strategies/between-graph/salience-preserving.strategy.d.ts.map +1 -0
- package/dist/algorithms/traversal/overlap-based/strategies/between-graph/truncated-component.strategy.d.ts +59 -0
- package/dist/algorithms/traversal/overlap-based/strategies/between-graph/truncated-component.strategy.d.ts.map +1 -0
- package/dist/algorithms/traversal/overlap-based/strategies/n1-handling/coverage-threshold.strategy.d.ts +57 -0
- package/dist/algorithms/traversal/overlap-based/strategies/n1-handling/coverage-threshold.strategy.d.ts.map +1 -0
- package/dist/algorithms/traversal/overlap-based/strategies/n1-handling/n1-handling-strategy.d.ts +25 -0
- package/dist/algorithms/traversal/overlap-based/strategies/n1-handling/n1-handling-strategy.d.ts.map +1 -0
- package/dist/algorithms/traversal/overlap-based/strategies/overlap-detection/overlap-detection-strategy.d.ts +26 -0
- package/dist/algorithms/traversal/overlap-based/strategies/overlap-detection/overlap-detection-strategy.d.ts.map +1 -0
- package/dist/algorithms/traversal/overlap-based/strategies/overlap-detection/physical-meeting.strategy.d.ts +35 -0
- package/dist/algorithms/traversal/overlap-based/strategies/overlap-detection/physical-meeting.strategy.d.ts.map +1 -0
- package/dist/algorithms/traversal/overlap-based/strategies/overlap-detection/sphere-intersection.strategy.d.ts +69 -0
- package/dist/algorithms/traversal/overlap-based/strategies/overlap-detection/sphere-intersection.strategy.d.ts.map +1 -0
- package/dist/algorithms/traversal/overlap-based/strategies/overlap-detection/threshold-sharing.strategy.d.ts +72 -0
- package/dist/algorithms/traversal/overlap-based/strategies/overlap-detection/threshold-sharing.strategy.d.ts.map +1 -0
- package/dist/algorithms/traversal/overlap-based/strategies/termination/common-convergence.strategy.d.ts +45 -0
- package/dist/algorithms/traversal/overlap-based/strategies/termination/common-convergence.strategy.d.ts.map +1 -0
- package/dist/algorithms/traversal/overlap-based/strategies/termination/full-pairwise.strategy.d.ts +43 -0
- package/dist/algorithms/traversal/overlap-based/strategies/termination/full-pairwise.strategy.d.ts.map +1 -0
- package/dist/algorithms/traversal/overlap-based/strategies/termination/termination-strategy.d.ts +40 -0
- package/dist/algorithms/traversal/overlap-based/strategies/termination/termination-strategy.d.ts.map +1 -0
- package/dist/algorithms/traversal/overlap-based/strategies/termination/transitive-connectivity.strategy.d.ts +45 -0
- package/dist/algorithms/traversal/overlap-based/strategies/termination/transitive-connectivity.strategy.d.ts.map +1 -0
- package/dist/algorithms/traversal/path-preserving-expansion.d.ts +197 -0
- package/dist/algorithms/traversal/path-preserving-expansion.d.ts.map +1 -0
- package/dist/algorithms/traversal/priority-calculator.d.ts +135 -0
- package/dist/algorithms/traversal/priority-calculator.d.ts.map +1 -0
- package/dist/algorithms/traversal/priority-queue.d.ts +6 -0
- package/dist/algorithms/traversal/priority-queue.d.ts.map +1 -1
- package/dist/algorithms/traversal/retrospective-salience-expansion.d.ts +173 -0
- package/dist/algorithms/traversal/retrospective-salience-expansion.d.ts.map +1 -0
- package/dist/algorithms/traversal/retrospective-salience-expansion.unit.test.d.ts +5 -0
- package/dist/algorithms/traversal/retrospective-salience-expansion.unit.test.d.ts.map +1 -0
- package/dist/algorithms/traversal/salience-prioritised-expansion.d.ts +149 -0
- package/dist/algorithms/traversal/salience-prioritised-expansion.d.ts.map +1 -0
- package/dist/algorithms/types/clustering-types.d.ts +2 -2
- package/dist/algorithms/types/clustering-types.d.ts.map +1 -1
- package/dist/algorithms/utils/csr.d.ts.map +1 -1
- package/dist/algorithms/utils/csr.unit.test.d.ts +2 -0
- package/dist/algorithms/utils/csr.unit.test.d.ts.map +1 -0
- package/dist/algorithms/utils/type-guards.unit.test.d.ts +2 -0
- package/dist/algorithms/utils/type-guards.unit.test.d.ts.map +1 -0
- package/dist/algorithms/utils/validators.unit.test.d.ts +2 -0
- package/dist/algorithms/utils/validators.unit.test.d.ts.map +1 -0
- package/dist/analyzer/advanced-props.d.ts.map +1 -1
- package/dist/analyzer/advanced-props.unit.test.d.ts +5 -0
- package/dist/analyzer/advanced-props.unit.test.d.ts.map +1 -0
- package/dist/analyzer/advanced-structures.unit.test.d.ts +5 -0
- package/dist/analyzer/advanced-structures.unit.test.d.ts.map +1 -0
- package/dist/analyzer/connectivity.unit.test.d.ts +5 -0
- package/dist/analyzer/connectivity.unit.test.d.ts.map +1 -0
- package/dist/analyzer/core-props.unit.test.d.ts +5 -0
- package/dist/analyzer/core-props.unit.test.d.ts.map +1 -0
- package/dist/analyzer/forbidden-subgraph.d.ts +59 -0
- package/dist/analyzer/forbidden-subgraph.d.ts.map +1 -0
- package/dist/analyzer/geometric.d.ts +21 -0
- package/dist/analyzer/geometric.d.ts.map +1 -0
- package/dist/analyzer/geometric.unit.test.d.ts +5 -0
- package/dist/analyzer/geometric.unit.test.d.ts.map +1 -0
- package/dist/analyzer/helpers.d.ts +2 -0
- package/dist/analyzer/helpers.d.ts.map +1 -1
- package/dist/analyzer/helpers.unit.test.d.ts +9 -0
- package/dist/analyzer/helpers.unit.test.d.ts.map +1 -0
- package/dist/analyzer/intersection.d.ts +17 -0
- package/dist/analyzer/intersection.d.ts.map +1 -0
- package/dist/analyzer/main.d.ts +22 -0
- package/dist/analyzer/main.d.ts.map +1 -1
- package/dist/analyzer/main.unit.test.d.ts +5 -0
- package/dist/analyzer/main.unit.test.d.ts.map +1 -0
- package/dist/analyzer/path-props.unit.test.d.ts +5 -0
- package/dist/analyzer/path-props.unit.test.d.ts.map +1 -0
- package/dist/analyzer/perfect-variants.d.ts +49 -0
- package/dist/analyzer/perfect-variants.d.ts.map +1 -0
- package/dist/analyzer/perfect-variants.unit.test.d.ts +5 -0
- package/dist/analyzer/perfect-variants.unit.test.d.ts.map +1 -0
- package/dist/analyzer/predicates.d.ts +31 -3
- package/dist/analyzer/predicates.d.ts.map +1 -1
- package/dist/analyzer/predicates.unit.test.d.ts +5 -0
- package/dist/analyzer/predicates.unit.test.d.ts.map +1 -0
- package/dist/analyzer/probe.d.ts +15 -0
- package/dist/analyzer/probe.d.ts.map +1 -0
- package/dist/analyzer/spectral.unit.test.d.ts +5 -0
- package/dist/analyzer/spectral.unit.test.d.ts.map +1 -0
- package/dist/analyzer/structural.d.ts +13 -0
- package/dist/analyzer/structural.d.ts.map +1 -0
- package/dist/analyzer/structure.d.ts.map +1 -1
- package/dist/analyzer/structure.unit.test.d.ts +5 -0
- package/dist/analyzer/structure.unit.test.d.ts.map +1 -0
- package/dist/analyzer/width.d.ts +33 -0
- package/dist/analyzer/width.d.ts.map +1 -0
- package/dist/analyzer/width.unit.test.d.ts +5 -0
- package/dist/analyzer/width.unit.test.d.ts.map +1 -0
- package/dist/cli-commands/analyze.d.ts +30 -0
- package/dist/cli-commands/analyze.d.ts.map +1 -0
- package/dist/cli-commands/evaluate.d.ts +64 -0
- package/dist/cli-commands/evaluate.d.ts.map +1 -0
- package/dist/cli-commands/generate.d.ts +34 -0
- package/dist/cli-commands/generate.d.ts.map +1 -0
- package/dist/cli-commands/validate.d.ts +32 -0
- package/dist/cli-commands/validate.d.ts.map +1 -0
- package/dist/cli-utils/arg-parser.d.ts +55 -0
- package/dist/cli-utils/arg-parser.d.ts.map +1 -0
- package/dist/cli-utils/arg-parser.unit.test.d.ts +5 -0
- package/dist/cli-utils/arg-parser.unit.test.d.ts.map +1 -0
- package/dist/cli-utils/error-formatter.d.ts +27 -0
- package/dist/cli-utils/error-formatter.d.ts.map +1 -0
- package/dist/cli-utils/format-detection.d.ts +25 -0
- package/dist/cli-utils/format-detection.d.ts.map +1 -0
- package/dist/cli-utils/format-detection.unit.test.d.ts +5 -0
- package/dist/cli-utils/format-detection.unit.test.d.ts.map +1 -0
- package/dist/cli-utils/graph-converter.d.ts +32 -0
- package/dist/cli-utils/graph-converter.d.ts.map +1 -0
- package/dist/cli-utils/graph-converter.unit.test.d.ts +5 -0
- package/dist/cli-utils/graph-converter.unit.test.d.ts.map +1 -0
- package/dist/cli-utils/graph-loader.d.ts +30 -0
- package/dist/cli-utils/graph-loader.d.ts.map +1 -0
- package/dist/cli-utils/spec-utils.d.ts +30 -0
- package/dist/cli-utils/spec-utils.d.ts.map +1 -0
- package/dist/cli.js +11416 -15
- package/dist/domain/claims.d.ts +56 -0
- package/dist/domain/claims.d.ts.map +1 -0
- package/dist/domain/index.d.ts +8 -0
- package/dist/domain/index.d.ts.map +1 -0
- package/dist/domain/tables.d.ts +66 -0
- package/dist/domain/tables.d.ts.map +1 -0
- package/dist/experiments/baselines/betweenness-ranking.d.ts +38 -0
- package/dist/experiments/baselines/betweenness-ranking.d.ts.map +1 -0
- package/dist/experiments/baselines/cross-seed-affinity.d.ts +141 -0
- package/dist/experiments/baselines/cross-seed-affinity.d.ts.map +1 -0
- package/dist/experiments/baselines/degree-sum-ranking.d.ts +38 -0
- package/dist/experiments/baselines/degree-sum-ranking.d.ts.map +1 -0
- package/dist/experiments/baselines/degree-surprise.d.ts +134 -0
- package/dist/experiments/baselines/degree-surprise.d.ts.map +1 -0
- package/dist/experiments/baselines/delayed-termination.d.ts +138 -0
- package/dist/experiments/baselines/delayed-termination.d.ts.map +1 -0
- package/dist/experiments/baselines/ensemble-expansion.d.ts +123 -0
- package/dist/experiments/baselines/ensemble-expansion.d.ts.map +1 -0
- package/dist/experiments/baselines/frontier-balanced.d.ts +3 -0
- package/dist/experiments/baselines/frontier-balanced.d.ts.map +1 -1
- package/dist/experiments/baselines/frontier-balanced.unit.test.d.ts +2 -0
- package/dist/experiments/baselines/frontier-balanced.unit.test.d.ts.map +1 -0
- package/dist/experiments/baselines/index.d.ts +16 -0
- package/dist/experiments/baselines/index.d.ts.map +1 -1
- package/dist/experiments/baselines/jaccard-arithmetic-ranking.d.ts +38 -0
- package/dist/experiments/baselines/jaccard-arithmetic-ranking.d.ts.map +1 -0
- package/dist/experiments/baselines/pagerank-sum-ranking.d.ts +46 -0
- package/dist/experiments/baselines/pagerank-sum-ranking.d.ts.map +1 -0
- package/dist/experiments/baselines/random-path-ranking.d.ts +42 -0
- package/dist/experiments/baselines/random-path-ranking.d.ts.map +1 -0
- package/dist/experiments/baselines/random-priority.d.ts +3 -0
- package/dist/experiments/baselines/random-priority.d.ts.map +1 -1
- package/dist/experiments/baselines/random-priority.unit.test.d.ts +2 -0
- package/dist/experiments/baselines/random-priority.unit.test.d.ts.map +1 -0
- package/dist/experiments/baselines/retroactive-path-enum.d.ts +91 -0
- package/dist/experiments/baselines/retroactive-path-enum.d.ts.map +1 -0
- package/dist/experiments/baselines/shortest-path-ranking.d.ts +40 -0
- package/dist/experiments/baselines/shortest-path-ranking.d.ts.map +1 -0
- package/dist/experiments/baselines/standard-bfs.d.ts +7 -0
- package/dist/experiments/baselines/standard-bfs.d.ts.map +1 -1
- package/dist/experiments/baselines/standard-bfs.unit.test.d.ts +2 -0
- package/dist/experiments/baselines/standard-bfs.unit.test.d.ts.map +1 -0
- package/dist/experiments/evaluation/__tests__/harness/evaluation.exp.integration.test.d.ts +13 -0
- package/dist/experiments/evaluation/__tests__/harness/evaluation.exp.integration.test.d.ts.map +1 -0
- package/dist/experiments/evaluation/__tests__/harness/evaluator.d.ts +55 -0
- package/dist/experiments/evaluation/__tests__/harness/evaluator.d.ts.map +1 -0
- package/dist/experiments/evaluation/__tests__/harness/fixtures.d.ts +45 -0
- package/dist/experiments/evaluation/__tests__/harness/fixtures.d.ts.map +1 -0
- package/dist/experiments/evaluation/__tests__/harness/index.d.ts +16 -0
- package/dist/experiments/evaluation/__tests__/harness/index.d.ts.map +1 -0
- package/dist/experiments/evaluation/__tests__/harness/types.d.ts +138 -0
- package/dist/experiments/evaluation/__tests__/harness/types.d.ts.map +1 -0
- package/dist/experiments/evaluation/__tests__/originality-correctness-significance.integration.test.d.ts +31 -0
- package/dist/experiments/evaluation/__tests__/originality-correctness-significance.integration.test.d.ts.map +1 -0
- package/dist/experiments/evaluation/__tests__/thesis-validation.exp.integration.test.d.ts +15 -0
- package/dist/experiments/evaluation/__tests__/thesis-validation.exp.integration.test.d.ts.map +1 -0
- package/dist/experiments/evaluation/__tests__/validation/adapter-roundtrip.unit.test.d.ts +14 -0
- package/dist/experiments/evaluation/__tests__/validation/adapter-roundtrip.unit.test.d.ts.map +1 -0
- package/dist/experiments/evaluation/__tests__/validation/canary-tests.integration.test.d.ts +17 -0
- package/dist/experiments/evaluation/__tests__/validation/canary-tests.integration.test.d.ts.map +1 -0
- package/dist/experiments/evaluation/__tests__/validation/common/baselines/high-degree-first.d.ts +26 -0
- package/dist/experiments/evaluation/__tests__/validation/common/baselines/high-degree-first.d.ts.map +1 -0
- package/dist/experiments/evaluation/__tests__/validation/common/baselines/low-degree-first.d.ts +26 -0
- package/dist/experiments/evaluation/__tests__/validation/common/baselines/low-degree-first.d.ts.map +1 -0
- package/dist/experiments/evaluation/__tests__/validation/common/benchmark-graph-expander.d.ts +58 -0
- package/dist/experiments/evaluation/__tests__/validation/common/benchmark-graph-expander.d.ts.map +1 -0
- package/dist/experiments/evaluation/__tests__/validation/common/benchmark-graph-expander.unit.test.d.ts +16 -0
- package/dist/experiments/evaluation/__tests__/validation/common/benchmark-graph-expander.unit.test.d.ts.map +1 -0
- package/dist/experiments/evaluation/__tests__/validation/common/graph-generators.d.ts +51 -0
- package/dist/experiments/evaluation/__tests__/validation/common/graph-generators.d.ts.map +1 -0
- package/dist/experiments/evaluation/__tests__/validation/common/instrumented-expander.d.ts +31 -0
- package/dist/experiments/evaluation/__tests__/validation/common/instrumented-expander.d.ts.map +1 -0
- package/dist/experiments/evaluation/__tests__/validation/common/instrumented-expander.unit.test.d.ts +16 -0
- package/dist/experiments/evaluation/__tests__/validation/common/instrumented-expander.unit.test.d.ts.map +1 -0
- package/dist/experiments/evaluation/__tests__/validation/common/path-ranking-helpers.d.ts +95 -0
- package/dist/experiments/evaluation/__tests__/validation/common/path-ranking-helpers.d.ts.map +1 -0
- package/dist/experiments/evaluation/__tests__/validation/common/representativeness-helpers.d.ts +56 -0
- package/dist/experiments/evaluation/__tests__/validation/common/representativeness-helpers.d.ts.map +1 -0
- package/dist/experiments/evaluation/__tests__/validation/common/statistical-functions.d.ts +78 -0
- package/dist/experiments/evaluation/__tests__/validation/common/statistical-functions.d.ts.map +1 -0
- package/dist/experiments/evaluation/__tests__/validation/common/test-graph-expander.d.ts +32 -0
- package/dist/experiments/evaluation/__tests__/validation/common/test-graph-expander.d.ts.map +1 -0
- package/dist/experiments/evaluation/__tests__/validation/common/test-graph-expander.unit.test.d.ts +15 -0
- package/dist/experiments/evaluation/__tests__/validation/common/test-graph-expander.unit.test.d.ts.map +1 -0
- package/dist/experiments/evaluation/__tests__/validation/comparative/comparative-summary.exp.integration.test.d.ts +10 -0
- package/dist/experiments/evaluation/__tests__/validation/comparative/comparative-summary.exp.integration.test.d.ts.map +1 -0
- package/dist/experiments/evaluation/__tests__/validation/comparative/execution-time.exp.integration.test.d.ts +7 -0
- package/dist/experiments/evaluation/__tests__/validation/comparative/execution-time.exp.integration.test.d.ts.map +1 -0
- package/dist/experiments/evaluation/__tests__/validation/comparative/literature-review-metrics.exp.integration.test.d.ts +13 -0
- package/dist/experiments/evaluation/__tests__/validation/comparative/literature-review-metrics.exp.integration.test.d.ts.map +1 -0
- package/dist/experiments/evaluation/__tests__/validation/comparative/method-ranking.exp.integration.test.d.ts +8 -0
- package/dist/experiments/evaluation/__tests__/validation/comparative/method-ranking.exp.integration.test.d.ts.map +1 -0
- package/dist/experiments/evaluation/__tests__/validation/comparative/multi-method-comparison.exp.integration.test.d.ts +9 -0
- package/dist/experiments/evaluation/__tests__/validation/comparative/multi-method-comparison.exp.integration.test.d.ts.map +1 -0
- package/dist/experiments/evaluation/__tests__/validation/comparative/novel-algorithm-comparison.exp.integration.test.d.ts +12 -0
- package/dist/experiments/evaluation/__tests__/validation/comparative/novel-algorithm-comparison.exp.integration.test.d.ts.map +1 -0
- package/dist/experiments/evaluation/__tests__/validation/comparative/perturbation-consistency.exp.integration.test.d.ts +9 -0
- package/dist/experiments/evaluation/__tests__/validation/comparative/perturbation-consistency.exp.integration.test.d.ts.map +1 -0
- package/dist/experiments/evaluation/__tests__/validation/comparative/validation-summary.exp.integration.test.d.ts +9 -0
- package/dist/experiments/evaluation/__tests__/validation/comparative/validation-summary.exp.integration.test.d.ts.map +1 -0
- package/dist/experiments/evaluation/__tests__/validation/comparative/variability-injection.exp.integration.test.d.ts +2 -0
- package/dist/experiments/evaluation/__tests__/validation/comparative/variability-injection.exp.integration.test.d.ts.map +1 -0
- package/dist/experiments/evaluation/__tests__/validation/graph-adapters.property.unit.test.d.ts +15 -0
- package/dist/experiments/evaluation/__tests__/validation/graph-adapters.property.unit.test.d.ts.map +1 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/classification/classification-evaluation.exp.integration.test.d.ts +14 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/classification/classification-evaluation.exp.integration.test.d.ts.map +1 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/community-detection/louvain/benchmarks/cora.exp.integration.test.d.ts +2 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/community-detection/louvain/benchmarks/cora.exp.integration.test.d.ts.map +1 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/community-detection/louvain/benchmarks/facebook.exp.integration.test.d.ts +2 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/community-detection/louvain/benchmarks/facebook.exp.integration.test.d.ts.map +1 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/community-detection/louvain/benchmarks/karate-club.exp.integration.test.d.ts +2 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/community-detection/louvain/benchmarks/karate-club.exp.integration.test.d.ts.map +1 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/community-detection/louvain/benchmarks/les-mis.exp.integration.test.d.ts +2 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/community-detection/louvain/benchmarks/les-mis.exp.integration.test.d.ts.map +1 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/community-detection/louvain/comparative/method-comparison.exp.integration.test.d.ts +2 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/community-detection/louvain/comparative/method-comparison.exp.integration.test.d.ts.map +1 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/community-detection/louvain/correctness/modularity-quality.exp.integration.test.d.ts +2 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/community-detection/louvain/correctness/modularity-quality.exp.integration.test.d.ts.map +1 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/decomposition/k-core/benchmarks/cora.exp.integration.test.d.ts +2 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/decomposition/k-core/benchmarks/cora.exp.integration.test.d.ts.map +1 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/decomposition/k-core/benchmarks/facebook.exp.integration.test.d.ts +2 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/decomposition/k-core/benchmarks/facebook.exp.integration.test.d.ts.map +1 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/decomposition/k-core/benchmarks/karate-club.exp.integration.test.d.ts +2 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/decomposition/k-core/benchmarks/karate-club.exp.integration.test.d.ts.map +1 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/decomposition/k-core/benchmarks/les-mis.exp.integration.test.d.ts +2 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/decomposition/k-core/benchmarks/les-mis.exp.integration.test.d.ts.map +1 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/decomposition/k-core/comparative/core-periphery-analysis.exp.integration.test.d.ts +2 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/decomposition/k-core/comparative/core-periphery-analysis.exp.integration.test.d.ts.map +1 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/decomposition/k-core/correctness/nested-hierarchy.exp.integration.test.d.ts +2 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/decomposition/k-core/correctness/nested-hierarchy.exp.integration.test.d.ts.map +1 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/generation/generation-evaluation.exp.integration.test.d.ts +14 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/generation/generation-evaluation.exp.integration.test.d.ts.map +1 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/ranking/path-salience/benchmarks/citeseer.exp.integration.test.d.ts +16 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/ranking/path-salience/benchmarks/citeseer.exp.integration.test.d.ts.map +1 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/ranking/path-salience/benchmarks/cora.exp.integration.test.d.ts +16 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/ranking/path-salience/benchmarks/cora.exp.integration.test.d.ts.map +1 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/ranking/path-salience/benchmarks/facebook.exp.integration.test.d.ts +16 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/ranking/path-salience/benchmarks/facebook.exp.integration.test.d.ts.map +1 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/ranking/path-salience/benchmarks/iteration-scaling.exp.integration.test.d.ts +20 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/ranking/path-salience/benchmarks/iteration-scaling.exp.integration.test.d.ts.map +1 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/ranking/path-salience/benchmarks/karate-club.exp.integration.test.d.ts +17 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/ranking/path-salience/benchmarks/karate-club.exp.integration.test.d.ts.map +1 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/ranking/path-salience/benchmarks/les-mis.exp.integration.test.d.ts +16 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/ranking/path-salience/benchmarks/les-mis.exp.integration.test.d.ts.map +1 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/ranking/path-salience/comparative/multi-method-comparison.exp.integration.test.d.ts +16 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/ranking/path-salience/comparative/multi-method-comparison.exp.integration.test.d.ts.map +1 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/ranking/path-salience/comparative/ranking-correlation.exp.integration.test.d.ts +14 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/ranking/path-salience/comparative/ranking-correlation.exp.integration.test.d.ts.map +1 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/ranking/path-salience/comparative/statistical-significance.exp.integration.test.d.ts +16 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/ranking/path-salience/comparative/statistical-significance.exp.integration.test.d.ts.map +1 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/ranking/path-salience/correctness/formula-correctness.exp.integration.test.d.ts +13 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/ranking/path-salience/correctness/formula-correctness.exp.integration.test.d.ts.map +1 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/ranking/path-salience/correctness/geometric-mean-property.exp.integration.test.d.ts +11 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/ranking/path-salience/correctness/geometric-mean-property.exp.integration.test.d.ts.map +1 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/ranking/path-salience/correctness/length-penalty.exp.integration.test.d.ts +13 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/ranking/path-salience/correctness/length-penalty.exp.integration.test.d.ts.map +1 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/ranking/path-salience/correctness/n-path-generalization.exp.integration.test.d.ts +13 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/ranking/path-salience/correctness/n-path-generalization.exp.integration.test.d.ts.map +1 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/ranking/path-salience/originality/mi-sensitivity.exp.integration.test.d.ts +15 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/ranking/path-salience/originality/mi-sensitivity.exp.integration.test.d.ts.map +1 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/ranking/path-salience/originality/path-diversity-benefit.exp.integration.test.d.ts +13 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/ranking/path-salience/originality/path-diversity-benefit.exp.integration.test.d.ts.map +1 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/ranking/path-salience/originality/ranking-difference.exp.integration.test.d.ts +14 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/ranking/path-salience/originality/ranking-difference.exp.integration.test.d.ts.map +1 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/ranking/path-salience/representativeness/__tests__/structural-coverage.exp.integration.test.d.ts +13 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/ranking/path-salience/representativeness/__tests__/structural-coverage.exp.integration.test.d.ts.map +1 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/ranking/path-salience/representativeness/__tests__/topological-representativeness.exp.integration.test.d.ts +13 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/ranking/path-salience/representativeness/__tests__/topological-representativeness.exp.integration.test.d.ts.map +1 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/ranking/path-salience/scenarios/multi-path-comparison.exp.integration.test.d.ts +12 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/ranking/path-salience/scenarios/multi-path-comparison.exp.integration.test.d.ts.map +1 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/ranking/path-salience/scenarios/scale-free-ranking.exp.integration.test.d.ts +13 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/ranking/path-salience/scenarios/scale-free-ranking.exp.integration.test.d.ts.map +1 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/ranking/path-salience/scenarios/weak-link-paths.exp.integration.test.d.ts +15 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/ranking/path-salience/scenarios/weak-link-paths.exp.integration.test.d.ts.map +1 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/ranking/path-salience/significance/hub-avoidance.exp.integration.test.d.ts +14 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/ranking/path-salience/significance/hub-avoidance.exp.integration.test.d.ts.map +1 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/ranking/path-salience/significance/quality-improvement.exp.integration.test.d.ts +15 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/ranking/path-salience/significance/quality-improvement.exp.integration.test.d.ts.map +1 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/ranking/path-salience/significance/ranking-stability.exp.integration.test.d.ts +15 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/ranking/path-salience/significance/ranking-stability.exp.integration.test.d.ts.map +1 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/ranking/ranking-baseline-comparison.exp.integration.test.d.ts +21 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/ranking/ranking-baseline-comparison.exp.integration.test.d.ts.map +1 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/traversal/degree-prioritised/benchmarks/citeseer.exp.integration.test.d.ts +2 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/traversal/degree-prioritised/benchmarks/citeseer.exp.integration.test.d.ts.map +1 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/traversal/degree-prioritised/benchmarks/cora.exp.integration.test.d.ts +2 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/traversal/degree-prioritised/benchmarks/cora.exp.integration.test.d.ts.map +1 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/traversal/degree-prioritised/benchmarks/facebook.exp.integration.test.d.ts +2 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/traversal/degree-prioritised/benchmarks/facebook.exp.integration.test.d.ts.map +1 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/traversal/degree-prioritised/benchmarks/karate-club.exp.integration.test.d.ts +2 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/traversal/degree-prioritised/benchmarks/karate-club.exp.integration.test.d.ts.map +1 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/traversal/degree-prioritised/benchmarks/les-mis.exp.integration.test.d.ts +2 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/traversal/degree-prioritised/benchmarks/les-mis.exp.integration.test.d.ts.map +1 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/traversal/degree-prioritised/correctness/n-seed-comparison.exp.integration.test.d.ts +8 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/traversal/degree-prioritised/correctness/n-seed-comparison.exp.integration.test.d.ts.map +1 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/traversal/degree-prioritised/correctness/validity-formula.exp.integration.test.d.ts +8 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/traversal/degree-prioritised/correctness/validity-formula.exp.integration.test.d.ts.map +1 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/traversal/degree-prioritised/correctness/validity-n-seed.exp.integration.test.d.ts +8 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/traversal/degree-prioritised/correctness/validity-n-seed.exp.integration.test.d.ts.map +1 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/traversal/degree-prioritised/correctness/validity-termination.exp.integration.test.d.ts +8 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/traversal/degree-prioritised/correctness/validity-termination.exp.integration.test.d.ts.map +1 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/traversal/degree-prioritised/node-explosion/double-star.exp.integration.test.d.ts +2 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/traversal/degree-prioritised/node-explosion/double-star.exp.integration.test.d.ts.map +1 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/traversal/degree-prioritised/node-explosion/expansion-order.exp.integration.test.d.ts +2 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/traversal/degree-prioritised/node-explosion/expansion-order.exp.integration.test.d.ts.map +1 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/traversal/degree-prioritised/node-explosion/metrics.exp.integration.test.d.ts +2 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/traversal/degree-prioritised/node-explosion/metrics.exp.integration.test.d.ts.map +1 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/traversal/degree-prioritised/node-explosion/multi-hub.exp.integration.test.d.ts +2 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/traversal/degree-prioritised/node-explosion/multi-hub.exp.integration.test.d.ts.map +1 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/traversal/degree-prioritised/node-explosion/scale-free.exp.integration.test.d.ts +2 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/traversal/degree-prioritised/node-explosion/scale-free.exp.integration.test.d.ts.map +1 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/traversal/degree-prioritised/node-explosion/star-graph.exp.integration.test.d.ts +2 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/traversal/degree-prioritised/node-explosion/star-graph.exp.integration.test.d.ts.map +1 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/traversal/degree-prioritised/originality/novelty-structural-difference.exp.integration.test.d.ts +13 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/traversal/degree-prioritised/originality/novelty-structural-difference.exp.integration.test.d.ts.map +1 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/traversal/degree-prioritised/representativeness/aggregation.exp.integration.test.d.ts +5 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/traversal/degree-prioritised/representativeness/aggregation.exp.integration.test.d.ts.map +1 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/traversal/degree-prioritised/representativeness/between-graph-ground-truth.exp.integration.test.d.ts +5 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/traversal/degree-prioritised/representativeness/between-graph-ground-truth.exp.integration.test.d.ts.map +1 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/traversal/degree-prioritised/representativeness/degree-distribution.exp.integration.test.d.ts +5 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/traversal/degree-prioritised/representativeness/degree-distribution.exp.integration.test.d.ts.map +1 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/traversal/degree-prioritised/representativeness/ego-network-n1.exp.integration.test.d.ts +5 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/traversal/degree-prioritised/representativeness/ego-network-n1.exp.integration.test.d.ts.map +1 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/traversal/degree-prioritised/representativeness/fixtures/index.d.ts +2 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/traversal/degree-prioritised/representativeness/fixtures/index.d.ts.map +1 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/traversal/degree-prioritised/representativeness/fixtures/test-graph-expander.d.ts +56 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/traversal/degree-prioritised/representativeness/fixtures/test-graph-expander.d.ts.map +1 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/traversal/degree-prioritised/representativeness/full-pipeline.exp.integration.test.d.ts +5 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/traversal/degree-prioritised/representativeness/full-pipeline.exp.integration.test.d.ts.map +1 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/traversal/degree-prioritised/representativeness/path-diversity.exp.integration.test.d.ts +5 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/traversal/degree-prioritised/representativeness/path-diversity.exp.integration.test.d.ts.map +1 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/traversal/degree-prioritised/significance/value-edge-efficiency.exp.integration.test.d.ts +8 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/traversal/degree-prioritised/significance/value-edge-efficiency.exp.integration.test.d.ts.map +1 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/traversal/degree-prioritised/significance/value-hub-mitigation.exp.integration.test.d.ts +8 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/traversal/degree-prioritised/significance/value-hub-mitigation.exp.integration.test.d.ts.map +1 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/traversal/degree-prioritised/significance/value-representativeness.exp.integration.test.d.ts +8 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/traversal/degree-prioritised/significance/value-representativeness.exp.integration.test.d.ts.map +1 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/traversal/entropy-guided/correctness/entropy-formula.exp.integration.test.d.ts +15 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/traversal/entropy-guided/correctness/entropy-formula.exp.integration.test.d.ts.map +1 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/traversal/entropy-guided/correctness/priority-formula.exp.integration.test.d.ts +18 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/traversal/entropy-guided/correctness/priority-formula.exp.integration.test.d.ts.map +1 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/traversal/entropy-guided/correctness/termination-guarantee.exp.integration.test.d.ts +13 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/traversal/entropy-guided/correctness/termination-guarantee.exp.integration.test.d.ts.map +1 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/traversal/entropy-guided/originality/cross-boundary-discovery.exp.integration.test.d.ts +12 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/traversal/entropy-guided/originality/cross-boundary-discovery.exp.integration.test.d.ts.map +1 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/traversal/entropy-guided/originality/entropy-ordering-difference.exp.integration.test.d.ts +14 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/traversal/entropy-guided/originality/entropy-ordering-difference.exp.integration.test.d.ts.map +1 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/traversal/entropy-guided/significance/hub-mitigation.exp.integration.test.d.ts +13 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/traversal/entropy-guided/significance/hub-mitigation.exp.integration.test.d.ts.map +1 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/traversal/entropy-guided/significance/type-diversity.exp.integration.test.d.ts +14 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/traversal/entropy-guided/significance/type-diversity.exp.integration.test.d.ts.map +1 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/traversal/overlap-based/overlap-based-expansion.integration.test.d.ts +7 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/traversal/overlap-based/overlap-based-expansion.integration.test.d.ts.map +1 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/traversal/path-preserving/correctness/early-termination.exp.integration.test.d.ts +8 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/traversal/path-preserving/correctness/early-termination.exp.integration.test.d.ts.map +1 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/traversal/path-preserving/correctness/path-potential-computation.exp.integration.test.d.ts +11 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/traversal/path-preserving/correctness/path-potential-computation.exp.integration.test.d.ts.map +1 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/traversal/path-preserving/correctness/priority-formula.exp.integration.test.d.ts +10 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/traversal/path-preserving/correctness/priority-formula.exp.integration.test.d.ts.map +1 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/traversal/path-preserving/originality/frontier-divergence.exp.integration.test.d.ts +12 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/traversal/path-preserving/originality/frontier-divergence.exp.integration.test.d.ts.map +1 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/traversal/path-preserving/originality/path-diversity-improvement.exp.integration.test.d.ts +12 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/traversal/path-preserving/originality/path-diversity-improvement.exp.integration.test.d.ts.map +1 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/traversal/path-preserving/significance/frontier-balance.exp.integration.test.d.ts +8 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/traversal/path-preserving/significance/frontier-balance.exp.integration.test.d.ts.map +1 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/traversal/path-preserving/significance/path-overlap-reduction.exp.integration.test.d.ts +8 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/traversal/path-preserving/significance/path-overlap-reduction.exp.integration.test.d.ts.map +1 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/traversal/retrospective-salience/correctness/jaccard-mi-estimation.exp.integration.test.d.ts +14 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/traversal/retrospective-salience/correctness/jaccard-mi-estimation.exp.integration.test.d.ts.map +1 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/traversal/retrospective-salience/correctness/phase1-formula.exp.integration.test.d.ts +14 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/traversal/retrospective-salience/correctness/phase1-formula.exp.integration.test.d.ts.map +1 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/traversal/retrospective-salience/correctness/phase2-formula.exp.integration.test.d.ts +14 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/traversal/retrospective-salience/correctness/phase2-formula.exp.integration.test.d.ts.map +1 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/traversal/retrospective-salience/originality/adaptive-priority.exp.integration.test.d.ts +17 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/traversal/retrospective-salience/originality/adaptive-priority.exp.integration.test.d.ts.map +1 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/traversal/retrospective-salience/originality/two-phase-transition.exp.integration.test.d.ts +18 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/traversal/retrospective-salience/originality/two-phase-transition.exp.integration.test.d.ts.map +1 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/traversal/retrospective-salience/significance/no-precomputation.exp.integration.test.d.ts +15 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/traversal/retrospective-salience/significance/no-precomputation.exp.integration.test.d.ts.map +1 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/traversal/retrospective-salience/significance/salience-coverage.exp.integration.test.d.ts +15 -0
- package/dist/experiments/evaluation/__tests__/validation/primary/traversal/retrospective-salience/significance/salience-coverage.exp.integration.test.d.ts.map +1 -0
- package/dist/experiments/evaluation/baselines/degree-ranker.unit.test.d.ts +2 -0
- package/dist/experiments/evaluation/baselines/degree-ranker.unit.test.d.ts.map +1 -0
- package/dist/experiments/evaluation/baselines/pagerank-ranker.unit.test.d.ts +2 -0
- package/dist/experiments/evaluation/baselines/pagerank-ranker.unit.test.d.ts.map +1 -0
- package/dist/experiments/evaluation/baselines/random-ranker.unit.test.d.ts +2 -0
- package/dist/experiments/evaluation/baselines/random-ranker.unit.test.d.ts.map +1 -0
- package/dist/experiments/evaluation/baselines/shortest-path-ranker.unit.test.d.ts +2 -0
- package/dist/experiments/evaluation/baselines/shortest-path-ranker.unit.test.d.ts.map +1 -0
- package/dist/experiments/evaluation/baselines/weight-ranker.unit.test.d.ts +2 -0
- package/dist/experiments/evaluation/baselines/weight-ranker.unit.test.d.ts.map +1 -0
- package/dist/experiments/evaluation/claims/index.d.ts +7 -0
- package/dist/experiments/evaluation/claims/index.d.ts.map +1 -0
- package/dist/experiments/evaluation/claims/thesis-claims.d.ts +111 -0
- package/dist/experiments/evaluation/claims/thesis-claims.d.ts.map +1 -0
- package/dist/experiments/evaluation/classification/classification-evaluator.d.ts +44 -0
- package/dist/experiments/evaluation/classification/classification-evaluator.d.ts.map +1 -0
- package/dist/experiments/evaluation/classification/feature-extractor.d.ts +50 -0
- package/dist/experiments/evaluation/classification/feature-extractor.d.ts.map +1 -0
- package/dist/experiments/evaluation/classification/graph-classifier.d.ts +103 -0
- package/dist/experiments/evaluation/classification/graph-classifier.d.ts.map +1 -0
- package/dist/experiments/evaluation/classification/index.d.ts +11 -0
- package/dist/experiments/evaluation/classification/index.d.ts.map +1 -0
- package/dist/experiments/evaluation/fixtures/algorithm-validation.unit.test.d.ts +12 -0
- package/dist/experiments/evaluation/fixtures/algorithm-validation.unit.test.d.ts.map +1 -0
- package/dist/experiments/evaluation/fixtures/benchmark-datasets.d.ts +44 -3
- package/dist/experiments/evaluation/fixtures/benchmark-datasets.d.ts.map +1 -1
- package/dist/experiments/evaluation/fixtures/benchmark-datasets.unit.test.d.ts +0 -4
- package/dist/experiments/evaluation/fixtures/benchmark-datasets.unit.test.d.ts.map +1 -1
- package/dist/experiments/evaluation/generation/constrained-generator.d.ts +61 -0
- package/dist/experiments/evaluation/generation/constrained-generator.d.ts.map +1 -0
- package/dist/experiments/evaluation/generation/generation-evaluator.d.ts +56 -0
- package/dist/experiments/evaluation/generation/generation-evaluator.d.ts.map +1 -0
- package/dist/experiments/evaluation/generation/index.d.ts +10 -0
- package/dist/experiments/evaluation/generation/index.d.ts.map +1 -0
- package/dist/experiments/evaluation/ground-truth/importance-based.d.ts.map +1 -1
- package/dist/experiments/evaluation/ground-truth/importance-based.unit.test.d.ts +5 -0
- package/dist/experiments/evaluation/ground-truth/importance-based.unit.test.d.ts.map +1 -0
- package/dist/experiments/evaluation/loaders/decompress.d.ts +141 -33
- package/dist/experiments/evaluation/loaders/decompress.d.ts.map +1 -1
- package/dist/experiments/evaluation/loaders/edge-list-loader.d.ts +44 -0
- package/dist/experiments/evaluation/loaders/edge-list-loader.d.ts.map +1 -1
- package/dist/experiments/evaluation/loaders/index.d.ts +2 -2
- package/dist/experiments/evaluation/loaders/index.d.ts.map +1 -1
- package/dist/experiments/evaluation/metrics/index.d.ts +1 -0
- package/dist/experiments/evaluation/metrics/index.d.ts.map +1 -1
- package/dist/experiments/evaluation/metrics/metric-calculators.property.unit.test.d.ts +16 -0
- package/dist/experiments/evaluation/metrics/metric-calculators.property.unit.test.d.ts.map +1 -0
- package/dist/experiments/evaluation/metrics/metrics-boundary-conditions.unit.test.d.ts +2 -0
- package/dist/experiments/evaluation/metrics/metrics-boundary-conditions.unit.test.d.ts.map +1 -0
- package/dist/experiments/evaluation/metrics/salience-coverage.d.ts +147 -0
- package/dist/experiments/evaluation/metrics/salience-coverage.d.ts.map +1 -0
- package/dist/experiments/evaluation/path-planting/citation-planting.unit.test.d.ts +5 -0
- package/dist/experiments/evaluation/path-planting/citation-planting.unit.test.d.ts.map +1 -0
- package/dist/experiments/evaluation/path-planting/heterogeneous-planting.unit.test.d.ts +5 -0
- package/dist/experiments/evaluation/path-planting/heterogeneous-planting.unit.test.d.ts.map +1 -0
- package/dist/experiments/evaluation/path-planting/noise-generator.unit.test.d.ts +5 -0
- package/dist/experiments/evaluation/path-planting/noise-generator.unit.test.d.ts.map +1 -0
- package/dist/experiments/evaluation/path-planting/path-generator.unit.test.d.ts +5 -0
- package/dist/experiments/evaluation/path-planting/path-generator.unit.test.d.ts.map +1 -0
- package/dist/experiments/evaluation/runner/experiment-config.unit.test.d.ts +10 -0
- package/dist/experiments/evaluation/runner/experiment-config.unit.test.d.ts.map +1 -0
- package/dist/experiments/evaluation/runner/experiment-runner.unit.test.d.ts +5 -0
- package/dist/experiments/evaluation/runner/experiment-runner.unit.test.d.ts.map +1 -0
- package/dist/experiments/evaluation/runner/report-generator.unit.test.d.ts +5 -0
- package/dist/experiments/evaluation/runner/report-generator.unit.test.d.ts.map +1 -0
- package/dist/experiments/evaluation/statistics/paired-tests.d.ts.map +1 -1
- package/dist/experiments/experiments/bidirectional-bfs.d.ts +42 -0
- package/dist/experiments/experiments/bidirectional-bfs.d.ts.map +1 -0
- package/dist/experiments/experiments/index.d.ts +10 -0
- package/dist/experiments/experiments/index.d.ts.map +1 -0
- package/dist/experiments/experiments/path-ranking.d.ts +29 -0
- package/dist/experiments/experiments/path-ranking.d.ts.map +1 -0
- package/dist/experiments/experiments/salience-coverage-comparison.d.ts +19 -0
- package/dist/experiments/experiments/salience-coverage-comparison.d.ts.map +1 -0
- package/dist/experiments/experiments/seeded-expansion.d.ts +43 -0
- package/dist/experiments/experiments/seeded-expansion.d.ts.map +1 -0
- package/dist/experiments/fixtures/mock-graph-expander.d.ts +2 -1
- package/dist/experiments/fixtures/mock-graph-expander.d.ts.map +1 -1
- package/dist/experiments/metrics/collector.d.ts +49 -0
- package/dist/experiments/metrics/collector.d.ts.map +1 -0
- package/dist/experiments/metrics/hub-avoidance-calculator.d.ts +97 -0
- package/dist/experiments/metrics/hub-avoidance-calculator.d.ts.map +1 -0
- package/dist/experiments/metrics/index.d.ts +10 -0
- package/dist/experiments/metrics/index.d.ts.map +1 -0
- package/dist/experiments/metrics/storage.d.ts +29 -0
- package/dist/experiments/metrics/storage.d.ts.map +1 -0
- package/dist/experiments/metrics/types.d.ts +362 -0
- package/dist/experiments/metrics/types.d.ts.map +1 -0
- package/dist/experiments/proofs/path-salience/boundedness.unit.test.d.ts +10 -0
- package/dist/experiments/proofs/path-salience/boundedness.unit.test.d.ts.map +1 -0
- package/dist/experiments/proofs/path-salience/dpi-consistency.unit.test.d.ts +11 -0
- package/dist/experiments/proofs/path-salience/dpi-consistency.unit.test.d.ts.map +1 -0
- package/dist/experiments/proofs/path-salience/equal-length.unit.test.d.ts +11 -0
- package/dist/experiments/proofs/path-salience/equal-length.unit.test.d.ts.map +1 -0
- package/dist/experiments/proofs/path-salience/length-independence.unit.test.d.ts +11 -0
- package/dist/experiments/proofs/path-salience/length-independence.unit.test.d.ts.map +1 -0
- package/dist/experiments/proofs/path-salience/monotonicity.unit.test.d.ts +10 -0
- package/dist/experiments/proofs/path-salience/monotonicity.unit.test.d.ts.map +1 -0
- package/dist/experiments/proofs/path-salience/subpath-optimality.unit.test.d.ts +12 -0
- package/dist/experiments/proofs/path-salience/subpath-optimality.unit.test.d.ts.map +1 -0
- package/dist/experiments/proofs/path-salience/universality.unit.test.d.ts +15 -0
- package/dist/experiments/proofs/path-salience/universality.unit.test.d.ts.map +1 -0
- package/dist/experiments/proofs/path-salience/weak-link.unit.test.d.ts +10 -0
- package/dist/experiments/proofs/path-salience/weak-link.unit.test.d.ts.map +1 -0
- package/dist/experiments/proofs/seed-bounded/completeness.unit.test.d.ts +10 -0
- package/dist/experiments/proofs/seed-bounded/completeness.unit.test.d.ts.map +1 -0
- package/dist/experiments/proofs/seed-bounded/degeneracy.unit.test.d.ts +16 -0
- package/dist/experiments/proofs/seed-bounded/degeneracy.unit.test.d.ts.map +1 -0
- package/dist/experiments/proofs/seed-bounded/order-independence.unit.test.d.ts +10 -0
- package/dist/experiments/proofs/seed-bounded/order-independence.unit.test.d.ts.map +1 -0
- package/dist/experiments/proofs/seed-bounded/termination.unit.test.d.ts +11 -0
- package/dist/experiments/proofs/seed-bounded/termination.unit.test.d.ts.map +1 -0
- package/dist/experiments/proofs/test-utils.d.ts +161 -0
- package/dist/experiments/proofs/test-utils.d.ts.map +1 -0
- package/dist/experiments/run-experiments.d.ts +19 -0
- package/dist/experiments/run-experiments.d.ts.map +1 -0
- package/dist/experiments/suts/degree-sum-ranking-sut.d.ts +52 -0
- package/dist/experiments/suts/degree-sum-ranking-sut.d.ts.map +1 -0
- package/dist/experiments/suts/index.d.ts +13 -0
- package/dist/experiments/suts/index.d.ts.map +1 -0
- package/dist/experiments/suts/jaccard-arithmetic-ranking-sut.d.ts +52 -0
- package/dist/experiments/suts/jaccard-arithmetic-ranking-sut.d.ts.map +1 -0
- package/dist/experiments/suts/pagerank-sum-ranking-sut.d.ts +52 -0
- package/dist/experiments/suts/pagerank-sum-ranking-sut.d.ts.map +1 -0
- package/dist/experiments/suts/path-salience-sut.d.ts +62 -0
- package/dist/experiments/suts/path-salience-sut.d.ts.map +1 -0
- package/dist/experiments/suts/random-ranking-sut.d.ts +52 -0
- package/dist/experiments/suts/random-ranking-sut.d.ts.map +1 -0
- package/dist/experiments/suts/shortest-ranking-sut.d.ts +51 -0
- package/dist/experiments/suts/shortest-ranking-sut.d.ts.map +1 -0
- package/dist/formats/gml/fetch.unit.test.d.ts +2 -0
- package/dist/formats/gml/fetch.unit.test.d.ts.map +1 -0
- package/dist/formats/gml/serialize.unit.test.d.ts +5 -0
- package/dist/formats/gml/serialize.unit.test.d.ts.map +1 -0
- package/dist/formats/pajek/fetch.unit.test.d.ts +2 -0
- package/dist/formats/pajek/fetch.unit.test.d.ts.map +1 -0
- package/dist/formats/pajek/parse.unit.test.d.ts +5 -0
- package/dist/formats/pajek/parse.unit.test.d.ts.map +1 -0
- package/dist/formats/snap/fetch.unit.test.d.ts +2 -0
- package/dist/formats/snap/fetch.unit.test.d.ts.map +1 -0
- package/dist/formats/ucinet/fetch.unit.test.d.ts +2 -0
- package/dist/formats/ucinet/fetch.unit.test.d.ts.map +1 -0
- package/dist/formats/ucinet/parse.unit.test.d.ts +5 -0
- package/dist/formats/ucinet/parse.unit.test.d.ts.map +1 -0
- package/dist/generation/generators/bipartite.unit.test.d.ts +2 -0
- package/dist/generation/generators/bipartite.unit.test.d.ts.map +1 -0
- package/dist/generation/generators/connectivity.unit.test.d.ts +2 -0
- package/dist/generation/generators/connectivity.unit.test.d.ts.map +1 -0
- package/dist/generation/generators/core-structures.unit.test.d.ts +2 -0
- package/dist/generation/generators/core-structures.unit.test.d.ts.map +1 -0
- package/dist/generation/generators/density-helpers.d.ts.map +1 -1
- package/dist/generation/generators/density-helpers.unit.test.d.ts +2 -0
- package/dist/generation/generators/density-helpers.unit.test.d.ts.map +1 -0
- package/dist/generation/generators/edge-generator.d.ts.map +1 -1
- package/dist/generation/generators/edge-generator.unit.test.d.ts +2 -0
- package/dist/generation/generators/edge-generator.unit.test.d.ts.map +1 -0
- package/dist/generation/generators/forbidden-subgraph.d.ts +83 -0
- package/dist/generation/generators/forbidden-subgraph.d.ts.map +1 -0
- package/dist/generation/generators/geometric.d.ts +10 -0
- package/dist/generation/generators/geometric.d.ts.map +1 -1
- package/dist/generation/generators/geometric.unit.test.d.ts +2 -0
- package/dist/generation/generators/geometric.unit.test.d.ts.map +1 -0
- package/dist/generation/generators/intersection.d.ts +21 -0
- package/dist/generation/generators/intersection.d.ts.map +1 -0
- package/dist/generation/generators/invariants.d.ts.map +1 -1
- package/dist/generation/generators/invariants.unit.test.d.ts +2 -0
- package/dist/generation/generators/invariants.unit.test.d.ts.map +1 -0
- package/dist/generation/generators/network-structures.unit.test.d.ts +2 -0
- package/dist/generation/generators/network-structures.unit.test.d.ts.map +1 -0
- package/dist/generation/generators/node-generator.unit.test.d.ts +2 -0
- package/dist/generation/generators/node-generator.unit.test.d.ts.map +1 -0
- package/dist/generation/generators/path-cycle.unit.test.d.ts +2 -0
- package/dist/generation/generators/path-cycle.unit.test.d.ts.map +1 -0
- package/dist/generation/generators/perfect-variants.d.ts +49 -0
- package/dist/generation/generators/perfect-variants.d.ts.map +1 -0
- package/dist/generation/generators/probe.d.ts +19 -0
- package/dist/generation/generators/probe.d.ts.map +1 -0
- package/dist/generation/generators/property-computers.unit.test.d.ts +2 -0
- package/dist/generation/generators/property-computers.unit.test.d.ts.map +1 -0
- package/dist/generation/generators/structural-classes.unit.test.d.ts +2 -0
- package/dist/generation/generators/structural-classes.unit.test.d.ts.map +1 -0
- package/dist/generation/generators/structural.d.ts +11 -0
- package/dist/generation/generators/structural.d.ts.map +1 -0
- package/dist/generation/generators/structure-handlers.unit.test.d.ts +2 -0
- package/dist/generation/generators/structure-handlers.unit.test.d.ts.map +1 -0
- package/dist/generation/generators/symmetry.unit.test.d.ts +2 -0
- package/dist/generation/generators/symmetry.unit.test.d.ts.map +1 -0
- package/dist/generation/generators/validation-helpers.unit.test.d.ts +2 -0
- package/dist/generation/generators/validation-helpers.unit.test.d.ts.map +1 -0
- package/dist/generation/generators/width.d.ts +37 -0
- package/dist/generation/generators/width.d.ts.map +1 -0
- package/dist/generation/graph-validator.d.ts.map +1 -1
- package/dist/generation/spec/advanced.unit.test.d.ts +5 -0
- package/dist/generation/spec/advanced.unit.test.d.ts.map +1 -0
- package/dist/generation/spec/core.d.ts +4 -0
- package/dist/generation/spec/core.d.ts.map +1 -1
- package/dist/generation/spec/core.unit.test.d.ts +5 -0
- package/dist/generation/spec/core.unit.test.d.ts.map +1 -0
- package/dist/generation/spec/forbidden-subgraph.d.ts +89 -0
- package/dist/generation/spec/forbidden-subgraph.d.ts.map +1 -0
- package/dist/generation/spec/geometric.d.ts +28 -9
- package/dist/generation/spec/geometric.d.ts.map +1 -1
- package/dist/generation/spec/geometric.unit.test.d.ts +5 -0
- package/dist/generation/spec/geometric.unit.test.d.ts.map +1 -0
- package/dist/generation/spec/index.d.ts +1 -1
- package/dist/generation/spec/index.d.ts.map +1 -1
- package/dist/generation/spec/intersection.d.ts +49 -0
- package/dist/generation/spec/intersection.d.ts.map +1 -0
- package/dist/generation/spec/invariants.unit.test.d.ts +5 -0
- package/dist/generation/spec/invariants.unit.test.d.ts.map +1 -0
- package/dist/generation/spec/metrics.unit.test.d.ts +5 -0
- package/dist/generation/spec/metrics.unit.test.d.ts.map +1 -0
- package/dist/generation/spec/network.unit.test.d.ts +5 -0
- package/dist/generation/spec/network.unit.test.d.ts.map +1 -0
- package/dist/generation/spec/new-classes-index.d.ts +15 -0
- package/dist/generation/spec/new-classes-index.d.ts.map +1 -0
- package/dist/generation/spec/path-cycle.unit.test.d.ts +5 -0
- package/dist/generation/spec/path-cycle.unit.test.d.ts.map +1 -0
- package/dist/generation/spec/perfect-variants.d.ts +39 -0
- package/dist/generation/spec/perfect-variants.d.ts.map +1 -0
- package/dist/generation/spec/probe.d.ts +29 -0
- package/dist/generation/spec/probe.d.ts.map +1 -0
- package/dist/generation/spec/products.unit.test.d.ts +5 -0
- package/dist/generation/spec/products.unit.test.d.ts.map +1 -0
- package/dist/generation/spec/regularity.unit.test.d.ts +5 -0
- package/dist/generation/spec/regularity.unit.test.d.ts.map +1 -0
- package/dist/generation/spec/structural.d.ts +12 -1
- package/dist/generation/spec/structural.d.ts.map +1 -1
- package/dist/generation/spec/structural.unit.test.d.ts +5 -0
- package/dist/generation/spec/structural.unit.test.d.ts.map +1 -0
- package/dist/generation/spec/symmetry.unit.test.d.ts +5 -0
- package/dist/generation/spec/symmetry.unit.test.d.ts.map +1 -0
- package/dist/generation/spec/test.unit.test.d.ts +5 -0
- package/dist/generation/spec/test.unit.test.d.ts.map +1 -0
- package/dist/generation/spec/width.d.ts +29 -0
- package/dist/generation/spec/width.d.ts.map +1 -0
- package/dist/generation/spec.d.ts +23 -4
- package/dist/generation/spec.d.ts.map +1 -1
- package/dist/index.cjs +31 -31
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6941 -4768
- package/dist/index.umd.js +33 -33
- package/dist/interfaces/graph-expander.d.ts +44 -2
- package/dist/interfaces/graph-expander.d.ts.map +1 -1
- package/dist/interfaces/graph-expander.unit.test.d.ts +2 -0
- package/dist/interfaces/graph-expander.unit.test.d.ts.map +1 -0
- package/dist/interfaces/readable-graph.unit.test.d.ts +2 -0
- package/dist/interfaces/readable-graph.unit.test.d.ts.map +1 -0
- package/dist/registries/index.d.ts +16 -0
- package/dist/registries/index.d.ts.map +1 -0
- package/dist/registries/register-cases.d.ts +91 -0
- package/dist/registries/register-cases.d.ts.map +1 -0
- package/dist/registries/register-overlap-suts.d.ts +28 -0
- package/dist/registries/register-overlap-suts.d.ts.map +1 -0
- package/dist/registries/register-ranking-cases.d.ts +36 -0
- package/dist/registries/register-ranking-cases.d.ts.map +1 -0
- package/dist/registries/register-ranking-suts.d.ts +83 -0
- package/dist/registries/register-ranking-suts.d.ts.map +1 -0
- package/dist/registries/register-suts.d.ts +55 -0
- package/dist/registries/register-suts.d.ts.map +1 -0
- package/dist/suts/degree-prioritised-v1.0.0.d.ts +56 -0
- package/dist/suts/degree-prioritised-v1.0.0.d.ts.map +1 -0
- package/dist/suts/entropy-guided-v1.0.0.d.ts +55 -0
- package/dist/suts/entropy-guided-v1.0.0.d.ts.map +1 -0
- package/dist/suts/heterogeneity-aware-v1.0.0.d.ts +57 -0
- package/dist/suts/heterogeneity-aware-v1.0.0.d.ts.map +1 -0
- package/dist/suts/multi-frontier-adaptive-v1.0.0.d.ts +56 -0
- package/dist/suts/multi-frontier-adaptive-v1.0.0.d.ts.map +1 -0
- package/dist/suts/path-preserving-v1.0.0.d.ts +58 -0
- package/dist/suts/path-preserving-v1.0.0.d.ts.map +1 -0
- package/dist/suts/path-salience-v1.0.0.d.ts +57 -0
- package/dist/suts/path-salience-v1.0.0.d.ts.map +1 -0
- package/dist/suts/random-ranking-v1.0.0.d.ts +50 -0
- package/dist/suts/random-ranking-v1.0.0.d.ts.map +1 -0
- package/dist/suts/retrospective-salience-v1.0.0.d.ts +57 -0
- package/dist/suts/retrospective-salience-v1.0.0.d.ts.map +1 -0
- package/dist/suts/shortest-ranking-v1.0.0.d.ts +49 -0
- package/dist/suts/shortest-ranking-v1.0.0.d.ts.map +1 -0
- package/dist/suts/standard-bfs-v1.0.0.d.ts +53 -0
- package/dist/suts/standard-bfs-v1.0.0.d.ts.map +1 -0
- package/dist/types/graph-core.d.ts +176 -0
- package/dist/types/graph-core.d.ts.map +1 -0
- package/dist/types/graph-core.unit.test.d.ts +5 -0
- package/dist/types/graph-core.unit.test.d.ts.map +1 -0
- package/dist/utils/graph-adapters.d.ts +101 -0
- package/dist/utils/graph-adapters.d.ts.map +1 -0
- package/dist/utils/graph-adapters.unit.test.d.ts +5 -0
- package/dist/utils/graph-adapters.unit.test.d.ts.map +1 -0
- package/dist/utils/wayback.unit.test.d.ts +2 -0
- package/dist/utils/wayback.unit.test.d.ts.map +1 -0
- package/dist/validation/basic-validators.unit.test.d.ts +2 -0
- package/dist/validation/basic-validators.unit.test.d.ts.map +1 -0
- package/dist/validation/coloring-validator.unit.test.d.ts +2 -0
- package/dist/validation/coloring-validator.unit.test.d.ts.map +1 -0
- package/dist/validation/connectivity-validators.unit.test.d.ts +2 -0
- package/dist/validation/connectivity-validators.unit.test.d.ts.map +1 -0
- package/dist/validation/degree-validators.unit.test.d.ts +2 -0
- package/dist/validation/degree-validators.unit.test.d.ts.map +1 -0
- package/dist/validation/density-connectivity.unit.test.d.ts +2 -0
- package/dist/validation/density-connectivity.unit.test.d.ts.map +1 -0
- package/dist/validation/extremal.unit.test.d.ts +2 -0
- package/dist/validation/extremal.unit.test.d.ts.map +1 -0
- package/dist/validation/flow-validator.unit.test.d.ts +2 -0
- package/dist/validation/flow-validator.unit.test.d.ts.map +1 -0
- package/dist/validation/forbidden-subgraph-helpers.d.ts +45 -0
- package/dist/validation/forbidden-subgraph-helpers.d.ts.map +1 -0
- package/dist/validation/forbidden-subgraph.d.ts +66 -0
- package/dist/validation/forbidden-subgraph.d.ts.map +1 -0
- package/dist/validation/geometric.unit.test.d.ts +2 -0
- package/dist/validation/geometric.unit.test.d.ts.map +1 -0
- package/dist/validation/helper-functions.d.ts +1 -0
- package/dist/validation/helper-functions.d.ts.map +1 -1
- package/dist/validation/helper-functions.unit.test.d.ts +2 -0
- package/dist/validation/helper-functions.unit.test.d.ts.map +1 -0
- package/dist/validation/index.d.ts +4 -0
- package/dist/validation/index.d.ts.map +1 -1
- package/dist/validation/intersection.d.ts +17 -0
- package/dist/validation/intersection.d.ts.map +1 -0
- package/dist/validation/invariant.unit.test.d.ts +2 -0
- package/dist/validation/invariant.unit.test.d.ts.map +1 -0
- package/dist/validation/minor.unit.test.d.ts +2 -0
- package/dist/validation/minor.unit.test.d.ts.map +1 -0
- package/dist/validation/network.d.ts.map +1 -1
- package/dist/validation/network.unit.test.d.ts +2 -0
- package/dist/validation/network.unit.test.d.ts.map +1 -0
- package/dist/validation/path-cycle.unit.test.d.ts +2 -0
- package/dist/validation/path-cycle.unit.test.d.ts.map +1 -0
- package/dist/validation/perfect-variants.d.ts +30 -0
- package/dist/validation/perfect-variants.d.ts.map +1 -0
- package/dist/validation/perfect-variants.unit.test.d.ts +5 -0
- package/dist/validation/perfect-variants.unit.test.d.ts.map +1 -0
- package/dist/validation/probe.d.ts +17 -0
- package/dist/validation/probe.d.ts.map +1 -0
- package/dist/validation/product.unit.test.d.ts +2 -0
- package/dist/validation/product.unit.test.d.ts.map +1 -0
- package/dist/validation/robustness.unit.test.d.ts +2 -0
- package/dist/validation/robustness.unit.test.d.ts.map +1 -0
- package/dist/validation/structural-class.d.ts.map +1 -1
- package/dist/validation/structural-class.unit.test.d.ts +2 -0
- package/dist/validation/structural-class.unit.test.d.ts.map +1 -0
- package/dist/validation/symmetry.d.ts.map +1 -1
- package/dist/validation/symmetry.unit.test.d.ts +2 -0
- package/dist/validation/symmetry.unit.test.d.ts.map +1 -0
- package/dist/validation/treewidth-validator.unit.test.d.ts +2 -0
- package/dist/validation/treewidth-validator.unit.test.d.ts.map +1 -0
- package/dist/validation/width.d.ts +27 -0
- package/dist/validation/width.d.ts.map +1 -0
- package/dist/validation/width.unit.test.d.ts +5 -0
- package/dist/validation/width.unit.test.d.ts.map +1 -0
- package/package.json +25 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"intelligent-delayed-termination.unit.test.d.ts","sourceRoot":"","sources":["../../../src/algorithms/traversal/intelligent-delayed-termination.unit.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,245 @@
|
|
|
1
|
+
import { GraphExpander } from '../../interfaces/graph-expander.js';
|
|
2
|
+
import { DegreePrioritisedExpansionResult } from './degree-prioritised-expansion.js';
|
|
3
|
+
/**
|
|
4
|
+
* Configuration for MFASF algorithm.
|
|
5
|
+
*/
|
|
6
|
+
export interface MFASFConfig {
|
|
7
|
+
/**
|
|
8
|
+
* Minimum number of paths to discover before considering phase 3 termination.
|
|
9
|
+
* @default 3
|
|
10
|
+
*/
|
|
11
|
+
minPaths?: number;
|
|
12
|
+
/**
|
|
13
|
+
* Diversity threshold τ for phase 3 termination.
|
|
14
|
+
* Diversity = |unique nodes in paths| / |total path nodes|
|
|
15
|
+
* @default 0.5
|
|
16
|
+
*/
|
|
17
|
+
diversityThreshold?: number;
|
|
18
|
+
/**
|
|
19
|
+
* Salience feedback weight λ for phase 2 priority.
|
|
20
|
+
* Higher values give more weight to salience feedback.
|
|
21
|
+
* @default 1.0
|
|
22
|
+
*/
|
|
23
|
+
salienceFeedbackWeight?: number;
|
|
24
|
+
/**
|
|
25
|
+
* Rolling window size for salience plateau detection.
|
|
26
|
+
* @default 5
|
|
27
|
+
*/
|
|
28
|
+
plateauWindowSize?: number;
|
|
29
|
+
/**
|
|
30
|
+
* Threshold for salience plateau detection (relative change).
|
|
31
|
+
* If salience improves by less than this ratio, consider plateaued.
|
|
32
|
+
* @default 0.01
|
|
33
|
+
*/
|
|
34
|
+
plateauThreshold?: number;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Multi-Frontier Adaptive Salience-Feedback (MFASF)
|
|
38
|
+
*
|
|
39
|
+
* **Novel Contribution**: Three-phase adaptive expansion that dynamically adjusts
|
|
40
|
+
* priority based on salience feedback from discovered paths, achieving higher
|
|
41
|
+
* mean path salience than static prioritization strategies.
|
|
42
|
+
*
|
|
43
|
+
* **Key Innovation**: Unlike static prioritization (degree-only, salience-only),
|
|
44
|
+
* MFASF adapts its exploration strategy based on real-time feedback from path
|
|
45
|
+
* quality. The algorithm transitions through three phases:
|
|
46
|
+
*
|
|
47
|
+
* **Phase 1: Path Potential Discovery**
|
|
48
|
+
* - Priority: π_MFASF_1(v) = deg(v) / (1 + path_potential(v))
|
|
49
|
+
* - path_potential(v) = count of v's neighbours visited by OTHER frontiers
|
|
50
|
+
* - Goal: Discover diverse connecting paths between seeds
|
|
51
|
+
* - Duration: Until M paths discovered (M = minPaths config)
|
|
52
|
+
*
|
|
53
|
+
* **Phase 2: Salience Feedback Expansion**
|
|
54
|
+
* - Priority: π_MFASF_2(v) = π_MFASF_1(v) × (1 + λ × salience_feedback(v))
|
|
55
|
+
* - salience_feedback(v) = estimated MI based on similarity to high-salience paths
|
|
56
|
+
* - Goal: Exploit discovered high-quality paths to find more
|
|
57
|
+
* - Duration: Until salience plateau detected
|
|
58
|
+
*
|
|
59
|
+
* **Phase 3: Termination**
|
|
60
|
+
* - Conditions: salience plateau reached AND diversity > τ AND |P| ≥ K
|
|
61
|
+
* - salience plateau: mean salience not improving significantly over window
|
|
62
|
+
* - diversity: ratio of unique nodes to total path nodes
|
|
63
|
+
* - Goal: Ensure sufficient quality and diversity before termination
|
|
64
|
+
*
|
|
65
|
+
* **Expected Behavior**:
|
|
66
|
+
* - Higher mean path salience than degree-prioritised expansion
|
|
67
|
+
* - Better exploration efficiency (fewer nodes per salient path)
|
|
68
|
+
* - Adaptive exploration balances exploitation and exploration
|
|
69
|
+
*
|
|
70
|
+
* **Complexity**:
|
|
71
|
+
* - Time: O(E log V + P × D) where E = edges, V = vertices, P = paths, D = avg degree
|
|
72
|
+
* - Space: O(V + E + P × K) where K = avg path length
|
|
73
|
+
*
|
|
74
|
+
* @template T - Node data type
|
|
75
|
+
*/
|
|
76
|
+
export declare class MultiFrontierAdaptiveExpansion<T> {
|
|
77
|
+
private readonly expander;
|
|
78
|
+
private readonly seeds;
|
|
79
|
+
private readonly frontiers;
|
|
80
|
+
private readonly paths;
|
|
81
|
+
private readonly sampledEdges;
|
|
82
|
+
private stats;
|
|
83
|
+
/** Tracks when each node was first discovered (iteration number) */
|
|
84
|
+
private readonly nodeDiscoveryIteration;
|
|
85
|
+
/** Track which frontier owns each node for O(1) intersection checking */
|
|
86
|
+
private readonly nodeToFrontierIndex;
|
|
87
|
+
/** Track path signatures for O(1) deduplication */
|
|
88
|
+
private readonly pathSignatures;
|
|
89
|
+
/** Current phase (1, 2, or 3) */
|
|
90
|
+
private currentPhase;
|
|
91
|
+
/** Salience feedback scores for nodes */
|
|
92
|
+
private readonly salienceFeedback;
|
|
93
|
+
/** Rolling window of mean salience values for plateau detection */
|
|
94
|
+
private readonly salienceHistory;
|
|
95
|
+
/** Cache of neighbor sets for path potential computation */
|
|
96
|
+
private readonly neighborCache;
|
|
97
|
+
/** Configuration with defaults applied */
|
|
98
|
+
private readonly config;
|
|
99
|
+
/**
|
|
100
|
+
* Create a new multi-frontier adaptive expansion.
|
|
101
|
+
*
|
|
102
|
+
* @param expander - Graph expander providing neighbour access
|
|
103
|
+
* @param seeds - Array of seed node IDs (N ≥ 1)
|
|
104
|
+
* @param config - Optional configuration overrides
|
|
105
|
+
* @throws Error if no seeds provided
|
|
106
|
+
*/
|
|
107
|
+
constructor(expander: GraphExpander<T>, seeds: readonly string[], config?: MFASFConfig);
|
|
108
|
+
/**
|
|
109
|
+
* Calculate Phase 1 priority: π_MFASF_1(v) = deg(v) / (1 + path_potential(v))
|
|
110
|
+
*
|
|
111
|
+
* @param nodeId - Node to calculate priority for
|
|
112
|
+
* @returns Priority value (lower = higher priority)
|
|
113
|
+
* @internal
|
|
114
|
+
*/
|
|
115
|
+
private calculatePhase1Priority;
|
|
116
|
+
/**
|
|
117
|
+
* Calculate Phase 2 priority: π_MFASF_2(v) = π_MFASF_1(v) × (1 + λ × salience_feedback(v))
|
|
118
|
+
*
|
|
119
|
+
* @param nodeId - Node to calculate priority for
|
|
120
|
+
* @returns Priority value (lower = higher priority)
|
|
121
|
+
* @internal
|
|
122
|
+
*/
|
|
123
|
+
private calculatePhase2Priority;
|
|
124
|
+
/**
|
|
125
|
+
* Calculate priority based on current phase.
|
|
126
|
+
*
|
|
127
|
+
* @param nodeId - Node to calculate priority for
|
|
128
|
+
* @returns Priority value
|
|
129
|
+
* @internal
|
|
130
|
+
*/
|
|
131
|
+
private calculateCurrentPriority;
|
|
132
|
+
/**
|
|
133
|
+
* Compute path potential for a node: count of neighbours visited by OTHER frontiers.
|
|
134
|
+
*
|
|
135
|
+
* @param nodeId - Node to compute potential for
|
|
136
|
+
* @returns Path potential count
|
|
137
|
+
* @internal
|
|
138
|
+
*/
|
|
139
|
+
private computePathPotential;
|
|
140
|
+
/**
|
|
141
|
+
* Update salience feedback based on newly discovered path.
|
|
142
|
+
*
|
|
143
|
+
* For each node, computes similarity to path nodes and updates feedback score.
|
|
144
|
+
*
|
|
145
|
+
* @param pathNodes - Nodes in the discovered path
|
|
146
|
+
* @param pathSalience - Estimated salience of the path
|
|
147
|
+
* @internal
|
|
148
|
+
*/
|
|
149
|
+
private updateSalienceFeedback;
|
|
150
|
+
/**
|
|
151
|
+
* Get neighbours for a node, caching for efficiency.
|
|
152
|
+
*
|
|
153
|
+
* @param nodeId - Node to get neighbours for
|
|
154
|
+
* @returns Set of neighbour node IDs
|
|
155
|
+
* @internal
|
|
156
|
+
*/
|
|
157
|
+
private getOrCacheNeighbors;
|
|
158
|
+
/**
|
|
159
|
+
* Estimate salience for a path based on node degrees.
|
|
160
|
+
*
|
|
161
|
+
* Uses degree-based heuristic: paths through lower-degree nodes are typically
|
|
162
|
+
* more salient (higher MI) because they represent more specific connections.
|
|
163
|
+
*
|
|
164
|
+
* @param pathNodes - Nodes in the path
|
|
165
|
+
* @returns Estimated salience in [0, 1]
|
|
166
|
+
* @internal
|
|
167
|
+
*/
|
|
168
|
+
private estimatePathSalience;
|
|
169
|
+
/**
|
|
170
|
+
* Check if salience has plateaued (not improving significantly).
|
|
171
|
+
*
|
|
172
|
+
* @returns true if plateau detected
|
|
173
|
+
* @internal
|
|
174
|
+
*/
|
|
175
|
+
private isSaliencePlateaued;
|
|
176
|
+
/**
|
|
177
|
+
* Compute path diversity: ratio of unique nodes to total path nodes.
|
|
178
|
+
*
|
|
179
|
+
* @returns Diversity ratio in [0, 1]
|
|
180
|
+
* @internal
|
|
181
|
+
*/
|
|
182
|
+
private computePathDiversity;
|
|
183
|
+
/**
|
|
184
|
+
* Check phase transition and termination conditions.
|
|
185
|
+
*
|
|
186
|
+
* @returns true if expansion should terminate
|
|
187
|
+
* @internal
|
|
188
|
+
*/
|
|
189
|
+
private checkPhaseTransition;
|
|
190
|
+
/**
|
|
191
|
+
* Rebuild all frontier priorities after phase transition.
|
|
192
|
+
*
|
|
193
|
+
* @internal
|
|
194
|
+
*/
|
|
195
|
+
private rebuildFrontierPriorities;
|
|
196
|
+
/**
|
|
197
|
+
* Run the expansion to completion.
|
|
198
|
+
*
|
|
199
|
+
* Transitions through three phases and terminates when phase 3 conditions met
|
|
200
|
+
* or all frontiers are exhausted.
|
|
201
|
+
*
|
|
202
|
+
* @returns Expansion results including paths and sampled subgraph
|
|
203
|
+
*/
|
|
204
|
+
run(): Promise<DegreePrioritisedExpansionResult>;
|
|
205
|
+
/**
|
|
206
|
+
* Check if any frontier has unexpanded nodes.
|
|
207
|
+
* @internal
|
|
208
|
+
*/
|
|
209
|
+
private hasNonEmptyFrontier;
|
|
210
|
+
/**
|
|
211
|
+
* Select the frontier with the lowest-priority node at its front.
|
|
212
|
+
* Returns -1 if all frontiers are empty.
|
|
213
|
+
* @internal
|
|
214
|
+
*/
|
|
215
|
+
private selectLowestPriorityFrontier;
|
|
216
|
+
/**
|
|
217
|
+
* Reconstruct path from meeting point between two frontiers.
|
|
218
|
+
* @param stateA
|
|
219
|
+
* @param stateB
|
|
220
|
+
* @param meetingNode
|
|
221
|
+
* @internal
|
|
222
|
+
*/
|
|
223
|
+
private reconstructPath;
|
|
224
|
+
/**
|
|
225
|
+
* Create a unique signature for a path.
|
|
226
|
+
* @param fromSeed
|
|
227
|
+
* @param toSeed
|
|
228
|
+
* @param nodes
|
|
229
|
+
* @internal
|
|
230
|
+
*/
|
|
231
|
+
private createPathSignature;
|
|
232
|
+
/**
|
|
233
|
+
* Record degree in distribution histogram.
|
|
234
|
+
* @param degree
|
|
235
|
+
* @internal
|
|
236
|
+
*/
|
|
237
|
+
private recordDegree;
|
|
238
|
+
/**
|
|
239
|
+
* Get histogram bucket for a degree value.
|
|
240
|
+
* @param degree
|
|
241
|
+
* @internal
|
|
242
|
+
*/
|
|
243
|
+
private getDegreeBucket;
|
|
244
|
+
}
|
|
245
|
+
//# sourceMappingURL=multi-frontier-adaptive-expansion.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"multi-frontier-adaptive-expansion.d.ts","sourceRoot":"","sources":["../../../src/algorithms/traversal/multi-frontier-adaptive-expansion.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACnE,OAAO,KAAK,EAAE,gCAAgC,EAAkB,MAAM,mCAAmC,CAAC;AAqB1G;;GAEG;AACH,MAAM,WAAW,WAAW;IAC3B;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAE5B;;;;OAIG;IACH,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAEhC;;;OAGG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,qBAAa,8BAA8B,CAAC,CAAC;IAsC3C,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,KAAK;IAtCvB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAuB;IACjD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAuF;IAC7G,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,iCAAiC;IACjC,OAAO,CAAC,YAAY,CAAgB;IAEpC,yCAAyC;IACzC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAA6B;IAE9D,mEAAmE;IACnE,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAgB;IAEhD,4DAA4D;IAC5D,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAkC;IAEhE,0CAA0C;IAC1C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAwB;IAE/C;;;;;;;OAOG;gBAEe,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,EAC1B,KAAK,EAAE,SAAS,MAAM,EAAE,EACzC,MAAM,GAAE,WAAgB;IA2CzB;;;;;;OAMG;IACH,OAAO,CAAC,uBAAuB;IAQ/B;;;;;;OAMG;IACH,OAAO,CAAC,uBAAuB;IAW/B;;;;;;OAMG;IACH,OAAO,CAAC,wBAAwB;IAQhC;;;;;;OAMG;IACH,OAAO,CAAC,oBAAoB;IAwB5B;;;;;;;;OAQG;YACW,sBAAsB;IA8BpC;;;;;;OAMG;YACW,mBAAmB;IAajC;;;;;;;;;OASG;IACH,OAAO,CAAC,oBAAoB;IAkB5B;;;;;OAKG;IACH,OAAO,CAAC,mBAAmB;IAkB3B;;;;;OAKG;IACH,OAAO,CAAC,oBAAoB;IAgB5B;;;;;OAKG;IACH,OAAO,CAAC,oBAAoB;IA0B5B;;;;OAIG;IACH,OAAO,CAAC,yBAAyB;IAsBjC;;;;;;;OAOG;IACG,GAAG,IAAI,OAAO,CAAC,gCAAgC,CAAC;IAuHtD;;;OAGG;IACH,OAAO,CAAC,mBAAmB;IAI3B;;;;OAIG;IACH,OAAO,CAAC,4BAA4B;IAkBpC;;;;;;OAMG;IACH,OAAO,CAAC,eAAe;IAkCvB;;;;;;OAMG;IACH,OAAO,CAAC,mBAAmB;IAK3B;;;;OAIG;IACH,OAAO,CAAC,YAAY;IAMpB;;;;OAIG;IACH,OAAO,CAAC,eAAe;CASvB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"multi-frontier-adaptive-expansion.unit.test.d.ts","sourceRoot":"","sources":["../../../src/algorithms/traversal/multi-frontier-adaptive-expansion.unit.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { PriorityQueue } from '../priority-queue';
|
|
2
|
+
/**
|
|
3
|
+
* State of a single frontier during expansion.
|
|
4
|
+
*
|
|
5
|
+
* This type is shared across the overlap-based expansion system
|
|
6
|
+
* for use in strategy interfaces.
|
|
7
|
+
*
|
|
8
|
+
* @template T - Type of priority queue items (node IDs as strings)
|
|
9
|
+
*/
|
|
10
|
+
export interface FrontierState {
|
|
11
|
+
/** Index of this frontier (corresponds to seed position) */
|
|
12
|
+
index: number;
|
|
13
|
+
/** Priority queue of nodes to expand */
|
|
14
|
+
frontier: PriorityQueue<string>;
|
|
15
|
+
/** Set of nodes visited by this frontier */
|
|
16
|
+
visited: Set<string>;
|
|
17
|
+
/** Parent pointers for path reconstruction */
|
|
18
|
+
parents: Map<string, {
|
|
19
|
+
parent: string;
|
|
20
|
+
edge: string;
|
|
21
|
+
}>;
|
|
22
|
+
/** Optional: Map of node ID to distance from seed (used by SphereIntersectionStrategy) */
|
|
23
|
+
nodeDistances?: Map<string, number>;
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=frontier-state.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"frontier-state.d.ts","sourceRoot":"","sources":["../../../../src/algorithms/traversal/overlap-based/frontier-state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAElD;;;;;;;GAOG;AACH,MAAM,WAAW,aAAa;IAC7B,4DAA4D;IAC5D,KAAK,EAAE,MAAM,CAAC;IAEd,wCAAwC;IACxC,QAAQ,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAEhC,4CAA4C;IAC5C,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAErB,8CAA8C;IAC9C,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAEvD,0FAA0F;IAC1F,aAAa,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACpC"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Overlap-Based Expansion Algorithm Family
|
|
3
|
+
*
|
|
4
|
+
* A modular implementation of overlap-based termination for N-seed graph traversal.
|
|
5
|
+
* This system enables efficient sampling of the "between-graph" (region connecting N seeds)
|
|
6
|
+
* while preserving sufficient structure for Path Salience ranking.
|
|
7
|
+
*
|
|
8
|
+
* ## Architecture
|
|
9
|
+
*
|
|
10
|
+
* The system uses a strategy pattern with 4 independent dimensions:
|
|
11
|
+
*
|
|
12
|
+
* 1. **Overlap Detection** (3 variants): How to detect when seeds' regions meet
|
|
13
|
+
* - PhysicalMeeting: O(1) physical node sharing
|
|
14
|
+
* - ThresholdSharing: Jaccard similarity threshold
|
|
15
|
+
* - SphereIntersection: Geometric radius-based detection
|
|
16
|
+
*
|
|
17
|
+
* 2. **N=1 Handling** (1 variant): Single-seed termination
|
|
18
|
+
* - CoverageThreshold: Terminate when X% of graph visited
|
|
19
|
+
*
|
|
20
|
+
* 3. **Termination** (3 variants): When overall algorithm terminates (N≥2)
|
|
21
|
+
* - FullPairwise: All C(N,2) seed pairs must overlap
|
|
22
|
+
* - TransitiveConnectivity: Overlap graph must be connected
|
|
23
|
+
* - CommonConvergence: All seeds share a common node
|
|
24
|
+
*
|
|
25
|
+
* 4. **Between-Graph** (3 variants): What subgraph to output
|
|
26
|
+
* - MinimalPaths: Only nodes/edges in discovered paths
|
|
27
|
+
* - TruncatedComponent: Connected component containing overlaps
|
|
28
|
+
* - SaliencePreserving: MI-based node ranking
|
|
29
|
+
*
|
|
30
|
+
* ## Total Variants
|
|
31
|
+
*
|
|
32
|
+
* 3 × 1 × 3 × 3 = 27 algorithm variants
|
|
33
|
+
*
|
|
34
|
+
* @example
|
|
35
|
+
* ```typescript
|
|
36
|
+
* import { OverlapBasedExpansion, PhysicalMeetingStrategy, FullPairwiseStrategy } from './overlap-based';
|
|
37
|
+
*
|
|
38
|
+
* const expansion = new OverlapBasedExpansion(expander, ['seedA', 'seedB'], {
|
|
39
|
+
* overlapDetection: new PhysicalMeetingStrategy(),
|
|
40
|
+
* termination: new FullPairwiseStrategy(),
|
|
41
|
+
* n1Handling: new CoverageThresholdStrategy(),
|
|
42
|
+
* betweenGraph: new MinimalPathsStrategy(),
|
|
43
|
+
* });
|
|
44
|
+
*
|
|
45
|
+
* const result = await expansion.run();
|
|
46
|
+
* ```
|
|
47
|
+
*/
|
|
48
|
+
export type { FrontierState } from './frontier-state.js';
|
|
49
|
+
export type { OverlapBasedExpansionConfig } from './overlap-based-expansion.js';
|
|
50
|
+
export { OverlapBasedExpansion } from './overlap-based-expansion.js';
|
|
51
|
+
export type { ExpansionStats, OverlapBasedExpansionResult, OverlapEvent, OverlapMetadata, } from './overlap-result.js';
|
|
52
|
+
export type { OverlapDetectionStrategy } from './strategies/overlap-detection/overlap-detection-strategy.js';
|
|
53
|
+
export { PhysicalMeetingStrategy } from './strategies/overlap-detection/physical-meeting.strategy.js';
|
|
54
|
+
export type { SphereIntersectionConfig } from './strategies/overlap-detection/sphere-intersection.strategy.js';
|
|
55
|
+
export { SphereIntersectionStrategy } from './strategies/overlap-detection/sphere-intersection.strategy.js';
|
|
56
|
+
export type { ThresholdSharingConfig } from './strategies/overlap-detection/threshold-sharing.strategy.js';
|
|
57
|
+
export { ThresholdSharingStrategy } from './strategies/overlap-detection/threshold-sharing.strategy.js';
|
|
58
|
+
export type { CoverageThresholdConfig } from './strategies/n1-handling/coverage-threshold.strategy.js';
|
|
59
|
+
export { CoverageThresholdStrategy } from './strategies/n1-handling/coverage-threshold.strategy.js';
|
|
60
|
+
export type { N1HandlingStrategy } from './strategies/n1-handling/n1-handling-strategy.js';
|
|
61
|
+
export { CommonConvergenceStrategy } from './strategies/termination/common-convergence.strategy.js';
|
|
62
|
+
export { FullPairwiseStrategy } from './strategies/termination/full-pairwise.strategy.js';
|
|
63
|
+
export type { TerminationStrategy } from './strategies/termination/termination-strategy.js';
|
|
64
|
+
export { TransitiveConnectivityStrategy } from './strategies/termination/transitive-connectivity.strategy.js';
|
|
65
|
+
export type { BetweenGraphStrategy } from './strategies/between-graph/between-graph-strategy.js';
|
|
66
|
+
export type { BetweenGraphOutput } from './strategies/between-graph/between-graph-strategy.js';
|
|
67
|
+
export { MinimalPathsStrategy } from './strategies/between-graph/minimal-paths.strategy.js';
|
|
68
|
+
export type { SaliencePreservingConfig } from './strategies/between-graph/salience-preserving.strategy.js';
|
|
69
|
+
export { SaliencePreservingStrategy } from './strategies/between-graph/salience-preserving.strategy.js';
|
|
70
|
+
export { TruncatedComponentStrategy } from './strategies/between-graph/truncated-component.strategy.js';
|
|
71
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/algorithms/traversal/overlap-based/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AAGH,YAAY,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,YAAY,EAAE,2BAA2B,EAAE,MAAM,8BAA8B,CAAC;AAChF,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACrE,YAAY,EACX,cAAc,EACd,2BAA2B,EAC3B,YAAY,EACZ,eAAe,GACf,MAAM,qBAAqB,CAAC;AAG7B,YAAY,EAAE,wBAAwB,EAAE,MAAM,8DAA8D,CAAC;AAC7G,OAAO,EAAE,uBAAuB,EAAE,MAAM,6DAA6D,CAAC;AACtG,YAAY,EAAE,wBAAwB,EAAE,MAAM,gEAAgE,CAAC;AAC/G,OAAO,EAAE,0BAA0B,EAAE,MAAM,gEAAgE,CAAC;AAC5G,YAAY,EAAE,sBAAsB,EAAE,MAAM,8DAA8D,CAAC;AAC3G,OAAO,EAAE,wBAAwB,EAAE,MAAM,8DAA8D,CAAC;AAGxG,YAAY,EAAE,uBAAuB,EAAE,MAAM,yDAAyD,CAAC;AACvG,OAAO,EAAE,yBAAyB,EAAE,MAAM,yDAAyD,CAAC;AACpG,YAAY,EAAE,kBAAkB,EAAE,MAAM,kDAAkD,CAAC;AAG3F,OAAO,EAAE,yBAAyB,EAAE,MAAM,yDAAyD,CAAC;AACpG,OAAO,EAAE,oBAAoB,EAAE,MAAM,oDAAoD,CAAC;AAC1F,YAAY,EAAE,mBAAmB,EAAE,MAAM,kDAAkD,CAAC;AAC5F,OAAO,EAAE,8BAA8B,EAAE,MAAM,8DAA8D,CAAC;AAG9G,YAAY,EAAE,oBAAoB,EAAE,MAAM,sDAAsD,CAAC;AACjG,YAAY,EAAE,kBAAkB,EAAE,MAAM,sDAAsD,CAAC;AAC/F,OAAO,EAAE,oBAAoB,EAAE,MAAM,sDAAsD,CAAC;AAC5F,YAAY,EAAE,wBAAwB,EAAE,MAAM,4DAA4D,CAAC;AAC3G,OAAO,EAAE,0BAA0B,EAAE,MAAM,4DAA4D,CAAC;AACxG,OAAO,EAAE,0BAA0B,EAAE,MAAM,4DAA4D,CAAC"}
|
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
import { GraphExpander } from '../../../interfaces/graph-expander';
|
|
2
|
+
import { OverlapBasedExpansionResult } from './overlap-result.js';
|
|
3
|
+
import { BetweenGraphStrategy } from './strategies/between-graph/between-graph-strategy.js';
|
|
4
|
+
import { N1HandlingStrategy } from './strategies/n1-handling/n1-handling-strategy.js';
|
|
5
|
+
import { OverlapDetectionStrategy } from './strategies/overlap-detection/overlap-detection-strategy.js';
|
|
6
|
+
import { TerminationStrategy } from './strategies/termination/termination-strategy.js';
|
|
7
|
+
/**
|
|
8
|
+
* Configuration for OverlapBasedExpansion.
|
|
9
|
+
*/
|
|
10
|
+
export interface OverlapBasedExpansionConfig {
|
|
11
|
+
/**
|
|
12
|
+
* Strategy for detecting overlap between seed search regions.
|
|
13
|
+
*/
|
|
14
|
+
overlapDetection: OverlapDetectionStrategy;
|
|
15
|
+
/**
|
|
16
|
+
* Strategy for determining when expansion should terminate.
|
|
17
|
+
*/
|
|
18
|
+
termination: TerminationStrategy;
|
|
19
|
+
/**
|
|
20
|
+
* Strategy for handling N=1 (single seed) scenario.
|
|
21
|
+
*/
|
|
22
|
+
n1Handling: N1HandlingStrategy;
|
|
23
|
+
/**
|
|
24
|
+
* Strategy for extracting the between-graph subgraph.
|
|
25
|
+
*/
|
|
26
|
+
betweenGraph: BetweenGraphStrategy;
|
|
27
|
+
/**
|
|
28
|
+
* Maximum iterations before forced termination (safety limit).
|
|
29
|
+
* Default: Infinity (no limit unless strategy terminates).
|
|
30
|
+
*/
|
|
31
|
+
maxIterations?: number;
|
|
32
|
+
/**
|
|
33
|
+
* Total nodes in graph (for N=1 coverage calculation).
|
|
34
|
+
* Optional - only used if n1Handling strategy requires it.
|
|
35
|
+
*/
|
|
36
|
+
totalNodes?: number;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Overlap-Based Expansion
|
|
40
|
+
*
|
|
41
|
+
* **Thesis Alignment**: Extends the seed-bounded sampling concept with overlap-based
|
|
42
|
+
* termination instead of frontier exhaustion. This enables efficient sampling of the
|
|
43
|
+
* "between-graph" (region connecting N seeds) while preserving sufficient structure
|
|
44
|
+
* for Path Salience ranking.
|
|
45
|
+
*
|
|
46
|
+
* **Key Design Properties**:
|
|
47
|
+
* 1. **Overlap-based termination**: Stops when seed search regions sufficiently overlap
|
|
48
|
+
* 2. **Strategy pattern architecture**: Modular dimensions for experimental comparison
|
|
49
|
+
* 3. **N-seed generalisation**: Handles N=1 (ego-network), N=2 (bidirectional), N≥3
|
|
50
|
+
* 4. **Degree prioritisation**: Expands globally lowest-degree node across all frontiers
|
|
51
|
+
*
|
|
52
|
+
* **Algorithm**:
|
|
53
|
+
* ```
|
|
54
|
+
* 1. Initialize N frontiers, one per seed
|
|
55
|
+
* 2. While termination condition not met:
|
|
56
|
+
* a. Select frontier with lowest-degree node at front
|
|
57
|
+
* b. Pop and expand neighbors
|
|
58
|
+
* c. Detect overlaps using strategy
|
|
59
|
+
* d. Check termination condition
|
|
60
|
+
* 3. Extract between-graph subgraph using strategy
|
|
61
|
+
* ```
|
|
62
|
+
*
|
|
63
|
+
* @template T - Type of node data returned by expander
|
|
64
|
+
*/
|
|
65
|
+
export declare class OverlapBasedExpansion<T> {
|
|
66
|
+
private readonly expander;
|
|
67
|
+
private readonly seeds;
|
|
68
|
+
private readonly config;
|
|
69
|
+
private readonly frontiers;
|
|
70
|
+
private readonly paths;
|
|
71
|
+
private readonly sampledEdges;
|
|
72
|
+
private readonly overlapEvents;
|
|
73
|
+
private stats;
|
|
74
|
+
private iteration;
|
|
75
|
+
/** Tracks when each node was first discovered (iteration number) */
|
|
76
|
+
private readonly nodeDiscoveryIteration;
|
|
77
|
+
/** Track which frontier owns each node for O(1) overlap detection */
|
|
78
|
+
private readonly nodeToFrontierIndex;
|
|
79
|
+
/** Track path signatures for O(1) deduplication */
|
|
80
|
+
private readonly pathSignatures;
|
|
81
|
+
/** Overlap matrix: "0-1" → Set of meeting nodes */
|
|
82
|
+
private readonly overlapMatrix;
|
|
83
|
+
/**
|
|
84
|
+
* Create a new overlap-based expansion.
|
|
85
|
+
*
|
|
86
|
+
* @param expander - Graph expander providing neighbour access
|
|
87
|
+
* @param seeds - Array of seed node IDs (N ≥ 1)
|
|
88
|
+
* @param config - Strategy configuration
|
|
89
|
+
* @throws Error if no seeds provided
|
|
90
|
+
*/
|
|
91
|
+
constructor(expander: GraphExpander<T>, seeds: readonly string[], config: OverlapBasedExpansionConfig);
|
|
92
|
+
/**
|
|
93
|
+
* Run the expansion to termination.
|
|
94
|
+
*
|
|
95
|
+
* @returns Expansion results including between-graph subgraph
|
|
96
|
+
*/
|
|
97
|
+
run(): Promise<OverlapBasedExpansionResult>;
|
|
98
|
+
/**
|
|
99
|
+
* Run expansion for N=1 (single seed) scenario.
|
|
100
|
+
*
|
|
101
|
+
* Uses n1Handling strategy to determine when to terminate.
|
|
102
|
+
*
|
|
103
|
+
* @private
|
|
104
|
+
*/
|
|
105
|
+
private runN1;
|
|
106
|
+
/**
|
|
107
|
+
* Run expansion for N≥2 scenario with overlap detection.
|
|
108
|
+
*
|
|
109
|
+
* @private
|
|
110
|
+
*/
|
|
111
|
+
private runNPlus;
|
|
112
|
+
/**
|
|
113
|
+
* Expand a single node (used in N=1 case).
|
|
114
|
+
*
|
|
115
|
+
* @param node - Node to expand
|
|
116
|
+
* @param frontier - Frontier state
|
|
117
|
+
* @param frontierIndex - Index of the frontier
|
|
118
|
+
* @private
|
|
119
|
+
*/
|
|
120
|
+
private expandNode;
|
|
121
|
+
/**
|
|
122
|
+
* Build the final result with between-graph subgraph extraction.
|
|
123
|
+
*
|
|
124
|
+
* @param terminationReason - Reason for termination
|
|
125
|
+
* @private
|
|
126
|
+
*/
|
|
127
|
+
private buildResult;
|
|
128
|
+
/**
|
|
129
|
+
* Check if any frontier has unexpanded nodes.
|
|
130
|
+
* @private
|
|
131
|
+
*/
|
|
132
|
+
private hasNonEmptyFrontier;
|
|
133
|
+
/**
|
|
134
|
+
* Select the frontier with the lowest-degree node at its front.
|
|
135
|
+
* Returns -1 if all frontiers are empty.
|
|
136
|
+
* @private
|
|
137
|
+
*/
|
|
138
|
+
private selectLowestDegreeFrontier;
|
|
139
|
+
/**
|
|
140
|
+
* Peek at the priority of the front item without removing it.
|
|
141
|
+
* @param queue
|
|
142
|
+
* @private
|
|
143
|
+
*/
|
|
144
|
+
private peekPriority;
|
|
145
|
+
/**
|
|
146
|
+
* Reconstruct path from meeting point between two frontiers.
|
|
147
|
+
* @param stateA
|
|
148
|
+
* @param stateB
|
|
149
|
+
* @param meetingNode
|
|
150
|
+
* @private
|
|
151
|
+
*/
|
|
152
|
+
private reconstructPath;
|
|
153
|
+
/**
|
|
154
|
+
* Create a unique signature for a path to enable O(1) deduplication.
|
|
155
|
+
* Signature is bidirectional (A-B same as B-A).
|
|
156
|
+
* @param fromSeed
|
|
157
|
+
* @param toSeed
|
|
158
|
+
* @param nodes
|
|
159
|
+
* @private
|
|
160
|
+
*/
|
|
161
|
+
private createPathSignature;
|
|
162
|
+
/**
|
|
163
|
+
* Get matrix key for overlap tracking (always sorted).
|
|
164
|
+
* @param a
|
|
165
|
+
* @param b
|
|
166
|
+
* @private
|
|
167
|
+
*/
|
|
168
|
+
private getMatrixKey;
|
|
169
|
+
/**
|
|
170
|
+
* Record degree in distribution histogram.
|
|
171
|
+
* @param degree
|
|
172
|
+
* @private
|
|
173
|
+
*/
|
|
174
|
+
private recordDegree;
|
|
175
|
+
/**
|
|
176
|
+
* Get histogram bucket for a degree value.
|
|
177
|
+
* @param degree
|
|
178
|
+
* @private
|
|
179
|
+
*/
|
|
180
|
+
private getDegreeBucket;
|
|
181
|
+
}
|
|
182
|
+
//# sourceMappingURL=overlap-based-expansion.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"overlap-based-expansion.d.ts","sourceRoot":"","sources":["../../../../src/algorithms/traversal/overlap-based/overlap-based-expansion.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AAGnE,OAAO,KAAK,EAAiB,2BAA2B,EAAmB,MAAM,qBAAqB,CAAC;AACvG,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sDAAsD,CAAC;AACjG,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kDAAkD,CAAC;AAC3F,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,8DAA8D,CAAC;AAC7G,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kDAAkD,CAAC;AAE5F;;GAEG;AACH,MAAM,WAAW,2BAA2B;IAC3C;;OAEG;IACH,gBAAgB,EAAE,wBAAwB,CAAC;IAE3C;;OAEG;IACH,WAAW,EAAE,mBAAmB,CAAC;IAEjC;;OAEG;IACH,UAAU,EAAE,kBAAkB,CAAC;IAE/B;;OAEG;IACH,YAAY,EAAE,oBAAoB,CAAC;IAEnC;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,qBAAa,qBAAqB,CAAC,CAAC;IAiClC,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAlCxB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAuB;IACjD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAoE;IAC1F,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAqB;IAClD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAKtB;IACR,OAAO,CAAC,KAAK,CAAiB;IAC9B,OAAO,CAAC,SAAS,CAAK;IACtB,oEAAoE;IACpE,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAA6B;IAEpE,qEAAqE;IACrE,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAA6B;IAEjE,mDAAmD;IACnD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAqB;IAEpD,mDAAmD;IACnD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAkC;IAEhE;;;;;;;OAOG;gBAEe,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,EAC1B,KAAK,EAAE,SAAS,MAAM,EAAE,EACxB,MAAM,EAAE,2BAA2B;IAmCrD;;;;OAIG;IACG,GAAG,IAAI,OAAO,CAAC,2BAA2B,CAAC;IAUjD;;;;;;OAMG;YACW,KAAK;IA4BnB;;;;OAIG;YACW,QAAQ;IA4HtB;;;;;;;OAOG;YACW,UAAU;IAoCxB;;;;;OAKG;IACH,OAAO,CAAC,WAAW;IAuCnB;;;OAGG;IACH,OAAO,CAAC,mBAAmB;IAI3B;;;;OAIG;IACH,OAAO,CAAC,0BAA0B;IAkBlC;;;;OAIG;IACH,OAAO,CAAC,YAAY;IAIpB;;;;;;OAMG;IACH,OAAO,CAAC,eAAe;IAmCvB;;;;;;;OAOG;IACH,OAAO,CAAC,mBAAmB;IAK3B;;;;;OAKG;IACH,OAAO,CAAC,YAAY;IAIpB;;;;OAIG;IACH,OAAO,CAAC,YAAY;IAMpB;;;;OAIG;IACH,OAAO,CAAC,eAAe;CASvB"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Result from overlap-based expansion.
|
|
3
|
+
*
|
|
4
|
+
* Extends the base DegreePrioritisedExpansionResult with overlap-specific metadata.
|
|
5
|
+
*/
|
|
6
|
+
export interface OverlapBasedExpansionResult {
|
|
7
|
+
/** Discovered paths (only when N ≥ 2 seeds) */
|
|
8
|
+
paths: Array<{
|
|
9
|
+
fromSeed: number;
|
|
10
|
+
toSeed: number;
|
|
11
|
+
nodes: string[];
|
|
12
|
+
}>;
|
|
13
|
+
/** Union of all nodes visited by all frontiers */
|
|
14
|
+
sampledNodes: Set<string>;
|
|
15
|
+
/** Edges traversed during expansion */
|
|
16
|
+
sampledEdges: Set<string>;
|
|
17
|
+
/** Per-frontier visited sets (for diagnostics) */
|
|
18
|
+
visitedPerFrontier: Array<Set<string>>;
|
|
19
|
+
/** Statistics about the expansion */
|
|
20
|
+
stats: ExpansionStats;
|
|
21
|
+
/** Overlap-specific metadata */
|
|
22
|
+
overlapMetadata: OverlapMetadata;
|
|
23
|
+
/**
|
|
24
|
+
* Maps each sampled node to the iteration when it was first discovered.
|
|
25
|
+
* Used for computing coverage efficiency metrics (first-discovery iteration,
|
|
26
|
+
* budget checkpoint coverage, area-under-curve).
|
|
27
|
+
*/
|
|
28
|
+
nodeDiscoveryIteration: Map<string, number>;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Statistics collected during expansion (from base DegreePrioritisedExpansionResult).
|
|
32
|
+
*/
|
|
33
|
+
export interface ExpansionStats {
|
|
34
|
+
/** Total nodes expanded (popped from frontiers) */
|
|
35
|
+
nodesExpanded: number;
|
|
36
|
+
/** Total edges traversed */
|
|
37
|
+
edgesTraversed: number;
|
|
38
|
+
/** Iterations (single node expansions) performed */
|
|
39
|
+
iterations: number;
|
|
40
|
+
/** Breakdown of nodes by degree ranges */
|
|
41
|
+
degreeDistribution: Map<string, number>;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Metadata about overlap events during expansion.
|
|
45
|
+
*/
|
|
46
|
+
export interface OverlapMetadata {
|
|
47
|
+
/**
|
|
48
|
+
* Termination reason - why the algorithm stopped.
|
|
49
|
+
*/
|
|
50
|
+
terminationReason: "overlap-satisfied" | "n1-coverage" | "max-iterations" | "exhaustion";
|
|
51
|
+
/**
|
|
52
|
+
* All overlap events recorded during expansion.
|
|
53
|
+
*/
|
|
54
|
+
overlapEvents: OverlapEvent[];
|
|
55
|
+
/**
|
|
56
|
+
* Iteration count at termination.
|
|
57
|
+
*/
|
|
58
|
+
iterations: number;
|
|
59
|
+
/**
|
|
60
|
+
* Overlap matrix showing which frontiers overlapped.
|
|
61
|
+
* Key format: "0-1" → Set of meeting nodes between frontier 0 and 1.
|
|
62
|
+
*/
|
|
63
|
+
overlapMatrix: Map<string, Set<string>>;
|
|
64
|
+
/**
|
|
65
|
+
* Coverage percentage (for N=1 case or when total graph size known).
|
|
66
|
+
*/
|
|
67
|
+
coverage?: number;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Overlap event recorded during expansion.
|
|
71
|
+
*/
|
|
72
|
+
export interface OverlapEvent {
|
|
73
|
+
/** Iteration when overlap occurred */
|
|
74
|
+
readonly iteration: number;
|
|
75
|
+
/** Index of first frontier involved in overlap */
|
|
76
|
+
readonly frontierA: number;
|
|
77
|
+
/** Index of second frontier involved in overlap */
|
|
78
|
+
readonly frontierB: number;
|
|
79
|
+
/** Node where frontiers met */
|
|
80
|
+
readonly meetingNode: string;
|
|
81
|
+
}
|
|
82
|
+
//# sourceMappingURL=overlap-result.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"overlap-result.d.ts","sourceRoot":"","sources":["../../../../src/algorithms/traversal/overlap-based/overlap-result.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,WAAW,2BAA2B;IAC3C,+CAA+C;IAC/C,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,uCAAuC;IACvC,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,gCAAgC;IAChC,eAAe,EAAE,eAAe,CAAC;IAEjC;;;;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;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC/B;;OAEG;IACH,iBAAiB,EAAE,mBAAmB,GAAG,aAAa,GAAG,gBAAgB,GAAG,YAAY,CAAC;IAEzF;;OAEG;IACH,aAAa,EAAE,YAAY,EAAE,CAAC;IAE9B;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;IAExC;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC5B,sCAAsC;IACtC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAE3B,kDAAkD;IAClD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAE3B,mDAAmD;IACnD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAE3B,+BAA+B;IAC/B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC7B"}
|