graphbox 1.2.2 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +98 -41
- 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/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/planar.integration.test.d.ts +3 -3
- 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/algorithms/clustering/louvain.d.ts +22 -6
- package/dist/algorithms/clustering/louvain.d.ts.map +1 -1
- package/dist/algorithms/extraction/forbidden-subgraphs.d.ts +211 -0
- package/dist/algorithms/extraction/forbidden-subgraphs.d.ts.map +1 -0
- package/dist/algorithms/pathfinding/path-ranking.d.ts.map +1 -1
- 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/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/analyzer/advanced-props.d.ts.map +1 -1
- 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/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/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 +30 -3
- package/dist/analyzer/predicates.d.ts.map +1 -1
- package/dist/analyzer/probe.d.ts +15 -0
- package/dist/analyzer/probe.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/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/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/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/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/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/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/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/generation/generators/density-helpers.d.ts.map +1 -1
- package/dist/generation/generators/edge-generator.d.ts.map +1 -1
- 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/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/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/structural.d.ts +11 -0
- package/dist/generation/generators/structural.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/core.d.ts +4 -0
- package/dist/generation/spec/core.d.ts.map +1 -1
- 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/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/new-classes-index.d.ts +15 -0
- package/dist/generation/spec/new-classes-index.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/structural.d.ts +12 -1
- package/dist/generation/spec/structural.d.ts.map +1 -1
- 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 +6616 -4485
- 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/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/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/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/network.d.ts.map +1 -1
- 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/structural-class.d.ts.map +1 -1
- package/dist/validation/symmetry.d.ts.map +1 -1
- 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
|
@@ -26,6 +26,19 @@ export interface BidirectionalBFSResult {
|
|
|
26
26
|
/**
|
|
27
27
|
* Generic bidirectional breadth-first search with degree-based node prioritization.
|
|
28
28
|
*
|
|
29
|
+
* **NOTE: This is an earlier design with parameterised termination.**
|
|
30
|
+
* For the parameter-free version that aligns with the thesis theoretical framework,
|
|
31
|
+
* see DegreePrioritisedExpansion (N≥1 seeds, frontier exhaustion only).
|
|
32
|
+
*
|
|
33
|
+
* **Design Relationship**:
|
|
34
|
+
* - BidirectionalBFS: Earlier design, N=2 only, has termination parameters (targetPaths, maxIterations)
|
|
35
|
+
* - DegreePrioritisedExpansion: Refined design, N≥1 with identical code path, parameter-free
|
|
36
|
+
*
|
|
37
|
+
* This implementation is suitable for production use cases where:
|
|
38
|
+
* - Predictable resource consumption is required
|
|
39
|
+
* - Finding *a* path quickly is more important than exhaustive sampling
|
|
40
|
+
* - Service-level objectives constrain iteration count
|
|
41
|
+
*
|
|
29
42
|
* Searches for paths between two seed nodes by expanding frontiers from both directions.
|
|
30
43
|
* Uses priority queue to process low-degree nodes first, naturally prioritizing specific
|
|
31
44
|
* connections over generic ones.
|
|
@@ -52,6 +65,8 @@ export interface BidirectionalBFSResult {
|
|
|
52
65
|
* const result = await bfs.search();
|
|
53
66
|
* console.log(`Found ${result.paths.length} paths in ${result.iterations} iterations`);
|
|
54
67
|
* ```
|
|
68
|
+
*
|
|
69
|
+
* @see DegreePrioritisedExpansion - Parameter-free version for N≥1 seeds
|
|
55
70
|
*/
|
|
56
71
|
export declare class BidirectionalBFS<T> {
|
|
57
72
|
private readonly expander;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bidirectional-bfs.d.ts","sourceRoot":"","sources":["../../../src/algorithms/traversal/bidirectional-bfs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAGhE;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACvC,qCAAqC;IACrC,WAAW,EAAE,MAAM,CAAC;IAEpB,6CAA6C;IAC7C,aAAa,EAAE,MAAM,CAAC;IAEtB,qFAAqF;IACrF,aAAa,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACtC,0EAA0E;IAC1E,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC;IAElB,+BAA+B;IAC/B,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAEtB,+BAA+B;IAC/B,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAEtB,qCAAqC;IACrC,UAAU,EAAE,MAAM,CAAC;CACnB;AAYD
|
|
1
|
+
{"version":3,"file":"bidirectional-bfs.d.ts","sourceRoot":"","sources":["../../../src/algorithms/traversal/bidirectional-bfs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAGhE;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACvC,qCAAqC;IACrC,WAAW,EAAE,MAAM,CAAC;IAEpB,6CAA6C;IAC7C,aAAa,EAAE,MAAM,CAAC;IAEtB,qFAAqF;IACrF,aAAa,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACtC,0EAA0E;IAC1E,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC;IAElB,+BAA+B;IAC/B,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAEtB,+BAA+B;IAC/B,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAEtB,qCAAqC;IACrC,UAAU,EAAE,MAAM,CAAC;CACnB;AAYD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AACH,qBAAa,gBAAgB,CAAC,CAAC;IAM7B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,OAAO;IARzB,OAAO,CAAC,UAAU,CAAkB;IACpC,OAAO,CAAC,MAAM,CAAW;IACzB,OAAO,CAAC,MAAM,CAAW;gBAGP,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,EAC1B,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,uBAAuB;IAuBlD;;;;OAIG;IACG,MAAM,IAAI,OAAO,CAAC,sBAAsB,CAAC;IA0E/C;;;;;OAKG;YACW,cAAc;IA8B5B;;;OAGG;IACH,OAAO,CAAC,mBAAmB;IAsB3B;;;;;OAKG;IACH,OAAO,CAAC,eAAe;IA4BvB;;;;OAIG;IACH,OAAO,CAAC,UAAU;IAQlB;;;;OAIG;IACH,OAAO,CAAC,uBAAuB;CAwB/B"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Regression test for frontier intersection detection bug (Jan 21 2026).
|
|
3
|
+
*
|
|
4
|
+
* BACKGROUND:
|
|
5
|
+
* Commit bec6dbf optimized intersection checking from O(F) to O(1) using
|
|
6
|
+
* nodeToFrontierIndex Map. The bug: Map was updated on every visit instead
|
|
7
|
+
* of only first visit, preventing intersection detection.
|
|
8
|
+
*
|
|
9
|
+
* This test creates a minimal graph where two frontiers MUST meet, verifying
|
|
10
|
+
* that path recording works correctly.
|
|
11
|
+
*/
|
|
12
|
+
export {};
|
|
13
|
+
//# sourceMappingURL=degree-prioritised-expansion-intersection.unit.test.d.ts.map
|
package/dist/algorithms/traversal/degree-prioritised-expansion-intersection.unit.test.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"degree-prioritised-expansion-intersection.unit.test.d.ts","sourceRoot":"","sources":["../../../src/algorithms/traversal/degree-prioritised-expansion-intersection.unit.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG"}
|
|
@@ -17,6 +17,12 @@ export interface DegreePrioritisedExpansionResult {
|
|
|
17
17
|
visitedPerFrontier: Array<Set<string>>;
|
|
18
18
|
/** Statistics about the expansion */
|
|
19
19
|
stats: ExpansionStats;
|
|
20
|
+
/**
|
|
21
|
+
* Maps each sampled node to the iteration when it was first discovered.
|
|
22
|
+
* Used for computing coverage efficiency metrics (first-discovery iteration,
|
|
23
|
+
* budget checkpoint coverage, area-under-curve).
|
|
24
|
+
*/
|
|
25
|
+
nodeDiscoveryIteration: Map<string, number>;
|
|
20
26
|
}
|
|
21
27
|
/**
|
|
22
28
|
* Statistics collected during expansion.
|
|
@@ -34,6 +40,22 @@ export interface ExpansionStats {
|
|
|
34
40
|
/**
|
|
35
41
|
* Degree-Prioritised Bidirectional Expansion
|
|
36
42
|
*
|
|
43
|
+
* **Thesis Alignment**: This is the primary implementation of the seed-bounded
|
|
44
|
+
* sampling algorithm described in Chapter 4 of the thesis. It embodies the
|
|
45
|
+
* parameter-free design with implicit termination via frontier exhaustion.
|
|
46
|
+
*
|
|
47
|
+
* **Design Relationship**:
|
|
48
|
+
* - BidirectionalBFS: Earlier design, N=2 only, has termination parameters (targetPaths, maxIterations)
|
|
49
|
+
* - DegreePrioritisedExpansion: Refined design (this file), N≥1 with identical code path, parameter-free
|
|
50
|
+
*
|
|
51
|
+
* Use this implementation when:
|
|
52
|
+
* - Representative sampling of graph structure is required
|
|
53
|
+
* - Evaluation dataset construction demands bias-free samples
|
|
54
|
+
* - N≥1 seed nodes need to be supported
|
|
55
|
+
* - Termination should be determined by graph structure, not arbitrary limits
|
|
56
|
+
*
|
|
57
|
+
* For production pathfinding with resource constraints, consider BidirectionalBFS instead.
|
|
58
|
+
*
|
|
37
59
|
* A unified algorithm for representative graph sampling between N ≥ 1 seed nodes.
|
|
38
60
|
* Uses node degree as priority (low degree = high priority) to explore peripheral
|
|
39
61
|
* routes before hub-dominated paths.
|
|
@@ -69,6 +91,8 @@ export interface ExpansionStats {
|
|
|
69
91
|
* console.log(`Found ${result.paths.length} paths`);
|
|
70
92
|
* console.log(`Sampled ${result.sampledNodes.size} nodes`);
|
|
71
93
|
* ```
|
|
94
|
+
*
|
|
95
|
+
* @see BidirectionalBFS - Parameterised version for N=2 with resource constraints
|
|
72
96
|
*/
|
|
73
97
|
export declare class DegreePrioritisedExpansion<T> {
|
|
74
98
|
private readonly expander;
|
|
@@ -77,6 +101,12 @@ export declare class DegreePrioritisedExpansion<T> {
|
|
|
77
101
|
private readonly paths;
|
|
78
102
|
private readonly sampledEdges;
|
|
79
103
|
private stats;
|
|
104
|
+
/** Tracks when each node was first discovered (iteration number) */
|
|
105
|
+
private readonly nodeDiscoveryIteration;
|
|
106
|
+
/** Track which frontier owns each node for O(1) intersection checking */
|
|
107
|
+
private readonly nodeToFrontierIndex;
|
|
108
|
+
/** Track path signatures for O(1) deduplication */
|
|
109
|
+
private readonly pathSignatures;
|
|
80
110
|
/**
|
|
81
111
|
* Create a new degree-prioritised expansion.
|
|
82
112
|
*
|
|
@@ -120,13 +150,15 @@ export declare class DegreePrioritisedExpansion<T> {
|
|
|
120
150
|
*/
|
|
121
151
|
private reconstructPath;
|
|
122
152
|
/**
|
|
123
|
-
*
|
|
153
|
+
* Create a unique signature for a path to enable O(1) deduplication.
|
|
154
|
+
* Signature is bidirectional (A-B same as B-A) and includes the actual
|
|
155
|
+
* node sequence to distinguish different paths with the same length.
|
|
124
156
|
* @param fromSeed
|
|
125
157
|
* @param toSeed
|
|
126
158
|
* @param nodes
|
|
127
159
|
* @internal
|
|
128
160
|
*/
|
|
129
|
-
private
|
|
161
|
+
private createPathSignature;
|
|
130
162
|
/**
|
|
131
163
|
* Record degree in distribution histogram.
|
|
132
164
|
* @param degree
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"degree-prioritised-expansion.d.ts","sourceRoot":"","sources":["../../../src/algorithms/traversal/degree-prioritised-expansion.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAGhE;;GAEG;AACH,MAAM,WAAW,gCAAgC;IAChD,yDAAyD;IACzD,KAAK,EAAE,KAAK,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAC;IAEpE,kDAAkD;IAClD,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAE1B,4CAA4C;IAC5C,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAE1B,kDAAkD;IAClD,kBAAkB,EAAE,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;IAEvC,qCAAqC;IACrC,KAAK,EAAE,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"degree-prioritised-expansion.d.ts","sourceRoot":"","sources":["../../../src/algorithms/traversal/degree-prioritised-expansion.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAGhE;;GAEG;AACH,MAAM,WAAW,gCAAgC;IAChD,yDAAyD;IACzD,KAAK,EAAE,KAAK,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAC;IAEpE,kDAAkD;IAClD,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAE1B,4CAA4C;IAC5C,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAE1B,kDAAkD;IAClD,kBAAkB,EAAE,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;IAEvC,qCAAqC;IACrC,KAAK,EAAE,cAAc,CAAC;IAEtB;;;;OAIG;IACH,sBAAsB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC5C;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC9B,mDAAmD;IACnD,aAAa,EAAE,MAAM,CAAC;IAEtB,4BAA4B;IAC5B,cAAc,EAAE,MAAM,CAAC;IAEvB,oDAAoD;IACpD,UAAU,EAAE,MAAM,CAAC;IAEnB,0CAA0C;IAC1C,kBAAkB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACxC;AAoBD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwDG;AACH,qBAAa,0BAA0B,CAAC,CAAC;IAsBvC,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,KAAK;IAtBvB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAuB;IACjD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAoE;IAC1F,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAqB;IAClD,OAAO,CAAC,KAAK,CAAiB;IAC9B,oEAAoE;IACpE,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAA6B;IAEpE,yEAAyE;IACzE,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAA6B;IAEjE,mDAAmD;IACnD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAqB;IAEpD;;;;;;OAMG;gBAEe,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,EAC1B,KAAK,EAAE,SAAS,MAAM,EAAE;IAkC1C;;;;;;;OAOG;IACG,GAAG,IAAI,OAAO,CAAC,gCAAgC,CAAC;IA2FtD;;;OAGG;IACH,OAAO,CAAC,mBAAmB;IAI3B;;;;OAIG;IACH,OAAO,CAAC,0BAA0B;IAmBlC;;;;OAIG;IACH,OAAO,CAAC,YAAY;IAKpB;;;;;;OAMG;IACH,OAAO,CAAC,eAAe;IA8CvB;;;;;;;;OAQG;IACH,OAAO,CAAC,mBAAmB;IAQ3B;;;;OAIG;IACH,OAAO,CAAC,YAAY;IAMpB;;;;OAIG;IACH,OAAO,CAAC,eAAe;CASvB"}
|
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
import { GraphExpander } from '../../interfaces/graph-expander';
|
|
2
|
+
import { DegreePrioritisedExpansionResult } from './degree-prioritised-expansion';
|
|
3
|
+
/**
|
|
4
|
+
* Entropy-Guided Expansion (EGE)
|
|
5
|
+
*
|
|
6
|
+
* **Thesis Alignment**: This is an experimental variant of the seed-bounded
|
|
7
|
+
* sampling algorithm that uses local neighbourhood entropy to guide expansion
|
|
8
|
+
* instead of simple degree prioritisation.
|
|
9
|
+
*
|
|
10
|
+
* **Design Motivation**:
|
|
11
|
+
* - DegreePrioritisedExpansion: Defers hubs using degree alone
|
|
12
|
+
* - EntropyGuidedExpansion: Incorporates neighbourhood diversity via entropy
|
|
13
|
+
*
|
|
14
|
+
* Use this implementation when:
|
|
15
|
+
* - Neighbourhood diversity should influence exploration order
|
|
16
|
+
* - Homogeneous neighbourhoods (low entropy) should be explored first
|
|
17
|
+
* - Heterogeneous neighbourhoods (high entropy) should be deferred
|
|
18
|
+
*
|
|
19
|
+
* **Key Design Properties**:
|
|
20
|
+
* 1. **Parameter-free termination**: No arbitrary limits on nodes, edges, or iterations.
|
|
21
|
+
* The sole termination condition is structural: all frontiers exhausted.
|
|
22
|
+
* 2. **N-seed generalisation**: Single algorithm handles N=1 (ego-network), N=2
|
|
23
|
+
* (bidirectional), and N≥3 (multi-frontier) with identical code path.
|
|
24
|
+
* 3. **Entropy-based prioritisation**: Priority π_EGE(v) = (1 / (H_local(v) + ε)) × log(deg(v) + 1)
|
|
25
|
+
* where H_local(v) is Shannon entropy of neighbour type distribution.
|
|
26
|
+
* 4. **Hub deferral maintained**: log(deg + 1) term preserves degree-based ordering.
|
|
27
|
+
*
|
|
28
|
+
* **Algorithm**:
|
|
29
|
+
* ```
|
|
30
|
+
* 1. Initialize N frontiers, one per seed
|
|
31
|
+
* 2. While any frontier is non-empty:
|
|
32
|
+
* a. Select the frontier with the lowest entropy-weighted node at its front
|
|
33
|
+
* b. Pop that node and expand its neighbours
|
|
34
|
+
* c. For each new neighbour, check intersection with all other frontiers
|
|
35
|
+
* d. If intersection found, record path between the two seeds
|
|
36
|
+
* 3. Return sampled subgraph (union of all visited nodes)
|
|
37
|
+
* ```
|
|
38
|
+
*
|
|
39
|
+
* **Priority Function**:
|
|
40
|
+
* π_EGE(v) = (1 / (H_local(v) + ε)) × log(deg(v) + 1)
|
|
41
|
+
*
|
|
42
|
+
* Where:
|
|
43
|
+
* - H_local(v) = -Σ p(τ) log p(τ) (Shannon entropy of neighbour types)
|
|
44
|
+
* - p(τ) = proportion of neighbours with relationship type τ
|
|
45
|
+
* - ε = 0.001 (prevents division by zero)
|
|
46
|
+
* - deg(v) = total degree of node v
|
|
47
|
+
*
|
|
48
|
+
* **Complexity**: O(E log V) where E = edges explored, V = vertices
|
|
49
|
+
*
|
|
50
|
+
* @template T - Type of node data returned by expander
|
|
51
|
+
* @example
|
|
52
|
+
* ```typescript
|
|
53
|
+
* const expansion = new EntropyGuidedExpansion(expander, ['seedA', 'seedB']);
|
|
54
|
+
* const result = await expansion.run();
|
|
55
|
+
* console.log(`Found ${result.paths.length} paths`);
|
|
56
|
+
* console.log(`Sampled ${result.sampledNodes.size} nodes`);
|
|
57
|
+
* ```
|
|
58
|
+
*
|
|
59
|
+
* @see DegreePrioritisedExpansion - Base implementation using degree alone
|
|
60
|
+
*/
|
|
61
|
+
export declare class EntropyGuidedExpansion<T> {
|
|
62
|
+
private readonly expander;
|
|
63
|
+
private readonly seeds;
|
|
64
|
+
private readonly frontiers;
|
|
65
|
+
private readonly paths;
|
|
66
|
+
private readonly sampledEdges;
|
|
67
|
+
private stats;
|
|
68
|
+
/** Tracks when each node was first discovered (iteration number) */
|
|
69
|
+
private readonly nodeDiscoveryIteration;
|
|
70
|
+
/** Track which frontier owns each node for O(1) intersection checking */
|
|
71
|
+
private readonly nodeToFrontierIndex;
|
|
72
|
+
/** Track path signatures for O(1) deduplication */
|
|
73
|
+
private readonly pathSignatures;
|
|
74
|
+
/** Epsilon value to prevent division by zero in entropy calculation */
|
|
75
|
+
private static readonly EPSILON;
|
|
76
|
+
/**
|
|
77
|
+
* Create a new entropy-guided expansion.
|
|
78
|
+
*
|
|
79
|
+
* @param expander - Graph expander providing neighbour access
|
|
80
|
+
* @param seeds - Array of seed node IDs (N ≥ 1)
|
|
81
|
+
* @throws Error if no seeds provided
|
|
82
|
+
*/
|
|
83
|
+
constructor(expander: GraphExpander<T>, seeds: readonly string[]);
|
|
84
|
+
/**
|
|
85
|
+
* Compute local entropy H_local(v) for a node based on neighbour type distribution.
|
|
86
|
+
*
|
|
87
|
+
* H_local(v) = -Σ p(τ) log₂ p(τ)
|
|
88
|
+
*
|
|
89
|
+
* Where p(τ) is the proportion of neighbours with relationship type τ.
|
|
90
|
+
*
|
|
91
|
+
* @param nodeId - Node to compute entropy for
|
|
92
|
+
* @returns Shannon entropy of neighbour type distribution
|
|
93
|
+
* @internal
|
|
94
|
+
*/
|
|
95
|
+
private computeLocalEntropy;
|
|
96
|
+
/**
|
|
97
|
+
* Calculate entropy-guided priority for a node.
|
|
98
|
+
*
|
|
99
|
+
* π_EGE(v) = (1 / (H_local(v) + ε)) × log(deg(v) + 1)
|
|
100
|
+
*
|
|
101
|
+
* Lower priority = explored first (min-heap behaviour).
|
|
102
|
+
*
|
|
103
|
+
* @param nodeId - Node to calculate priority for
|
|
104
|
+
* @returns Priority value (lower = higher priority)
|
|
105
|
+
* @internal
|
|
106
|
+
*/
|
|
107
|
+
private calculateEntropyPriority;
|
|
108
|
+
/**
|
|
109
|
+
* Calculate entropy-guided priority for a node (async version).
|
|
110
|
+
*
|
|
111
|
+
* @param nodeId - Node to calculate priority for
|
|
112
|
+
* @returns Priority value (lower = higher priority)
|
|
113
|
+
* @internal
|
|
114
|
+
*/
|
|
115
|
+
private calculateEntropyPriorityAsync;
|
|
116
|
+
/**
|
|
117
|
+
* Run the expansion to completion.
|
|
118
|
+
*
|
|
119
|
+
* Terminates when all frontiers are exhausted (no unexpanded nodes remain).
|
|
120
|
+
* This is the ONLY termination condition—no arbitrary limits.
|
|
121
|
+
*
|
|
122
|
+
* @returns Expansion results including paths and sampled subgraph
|
|
123
|
+
*/
|
|
124
|
+
run(): Promise<DegreePrioritisedExpansionResult>;
|
|
125
|
+
/**
|
|
126
|
+
* Check if any frontier has unexpanded nodes.
|
|
127
|
+
* @internal
|
|
128
|
+
*/
|
|
129
|
+
private hasNonEmptyFrontier;
|
|
130
|
+
/**
|
|
131
|
+
* Select the frontier with the lowest entropy-weighted node at its front.
|
|
132
|
+
* Returns -1 if all frontiers are empty.
|
|
133
|
+
* @internal
|
|
134
|
+
*/
|
|
135
|
+
private selectLowestEntropyFrontier;
|
|
136
|
+
/**
|
|
137
|
+
* Peek at the priority of the front item without removing it.
|
|
138
|
+
* @param queue
|
|
139
|
+
* @internal
|
|
140
|
+
*/
|
|
141
|
+
private peekPriority;
|
|
142
|
+
/**
|
|
143
|
+
* Reconstruct path from meeting point between two frontiers.
|
|
144
|
+
* @param stateA
|
|
145
|
+
* @param stateB
|
|
146
|
+
* @param meetingNode
|
|
147
|
+
* @internal
|
|
148
|
+
*/
|
|
149
|
+
private reconstructPath;
|
|
150
|
+
/**
|
|
151
|
+
* Create a unique signature for a path to enable O(1) deduplication.
|
|
152
|
+
* Signature is bidirectional (A-B same as B-A).
|
|
153
|
+
* @param fromSeed
|
|
154
|
+
* @param toSeed
|
|
155
|
+
* @param nodes
|
|
156
|
+
* @internal
|
|
157
|
+
*/
|
|
158
|
+
private createPathSignature;
|
|
159
|
+
/**
|
|
160
|
+
* Record degree in distribution histogram.
|
|
161
|
+
* @param degree
|
|
162
|
+
* @internal
|
|
163
|
+
*/
|
|
164
|
+
private recordDegree;
|
|
165
|
+
/**
|
|
166
|
+
* Get histogram bucket for a degree value.
|
|
167
|
+
* @param degree
|
|
168
|
+
* @internal
|
|
169
|
+
*/
|
|
170
|
+
private getDegreeBucket;
|
|
171
|
+
}
|
|
172
|
+
//# sourceMappingURL=entropy-guided-expansion.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entropy-guided-expansion.d.ts","sourceRoot":"","sources":["../../../src/algorithms/traversal/entropy-guided-expansion.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,gCAAgC,EAAkB,MAAM,gCAAgC,CAAC;AAqBlG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyDG;AACH,qBAAa,sBAAsB,CAAC,CAAC;IAyBnC,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,KAAK;IAzBvB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAuB;IACjD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAoE;IAC1F,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAqB;IAClD,OAAO,CAAC,KAAK,CAAiB;IAC9B,oEAAoE;IACpE,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAA6B;IAEpE,yEAAyE;IACzE,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAA6B;IAEjE,mDAAmD;IACnD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAqB;IAEpD,uEAAuE;IACvE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAS;IAExC;;;;;;OAMG;gBAEe,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,EAC1B,KAAK,EAAE,SAAS,MAAM,EAAE;IAkC1C;;;;;;;;;;OAUG;YACW,mBAAmB;IA6BjC;;;;;;;;;;OAUG;IACH,OAAO,CAAC,wBAAwB;IAUhC;;;;;;OAMG;YACW,6BAA6B;IAW3C;;;;;;;OAOG;IACG,GAAG,IAAI,OAAO,CAAC,gCAAgC,CAAC;IAuFtD;;;OAGG;IACH,OAAO,CAAC,mBAAmB;IAI3B;;;;OAIG;IACH,OAAO,CAAC,2BAA2B;IAmBnC;;;;OAIG;IACH,OAAO,CAAC,YAAY;IAKpB;;;;;;OAMG;IACH,OAAO,CAAC,eAAe;IAmCvB;;;;;;;OAOG;IACH,OAAO,CAAC,mBAAmB;IAM3B;;;;OAIG;IACH,OAAO,CAAC,YAAY;IAMpB;;;;OAIG;IACH,OAAO,CAAC,eAAe;CASvB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entropy-guided-expansion.unit.test.d.ts","sourceRoot":"","sources":["../../../src/algorithms/traversal/entropy-guided-expansion.unit.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
import { GraphExpander } from '../../interfaces/graph-expander.js';
|
|
2
|
+
import { DegreePrioritisedExpansionResult } from './degree-prioritised-expansion.js';
|
|
3
|
+
/**
|
|
4
|
+
* Heterogeneity-Aware Bidirectional Expansion (HABE)
|
|
5
|
+
*
|
|
6
|
+
* **Novel Contribution**: Combines entropy-guided expansion with overlap-based
|
|
7
|
+
* termination and path salience ranking to produce cross-domain paths that
|
|
8
|
+
* traverse heterogeneous graph regions.
|
|
9
|
+
*
|
|
10
|
+
* **Key Innovation**: HABE integrates three thesis components:
|
|
11
|
+
* 1. **EGE Priority**: π_HABE(v) = (1 / (H_local(v) + ε)) × log(deg(v) + 1)
|
|
12
|
+
* - Low-entropy (homogeneous) neighborhoods expanded first
|
|
13
|
+
* - High-entropy (heterogeneous) neighborhoods deferred
|
|
14
|
+
* 2. **Transitive Connectivity Termination**: Terminates when overlap graph is connected
|
|
15
|
+
* - Less strict than full pairwise, enables earlier termination
|
|
16
|
+
* - Ensures all seeds are transitively connected
|
|
17
|
+
* 3. **Path Salience Output**: Returns paths ranked by geometric-mean MI
|
|
18
|
+
* - M(P) = exp((1/k) Σ log I(e))
|
|
19
|
+
* - Weak-link sensitivity without length bias
|
|
20
|
+
*
|
|
21
|
+
* **Design Motivation**:
|
|
22
|
+
* In heterogeneous graphs (e.g., citation networks with multi-domain papers),
|
|
23
|
+
* standard expansion may get trapped in homogeneous regions. HABE actively
|
|
24
|
+
* defers high-entropy nodes, encouraging exploration of cross-domain connections.
|
|
25
|
+
*
|
|
26
|
+
* **Key Properties**:
|
|
27
|
+
* 1. **Cross-domain sensitivity**: Prioritizes edges connecting different domains
|
|
28
|
+
* 2. **Parameter-free termination**: Transitive connectivity, no arbitrary cutoffs
|
|
29
|
+
* 3. **N-seed generalisation**: Single algorithm handles N=1, N=2, and N≥3
|
|
30
|
+
* 4. **Entropy-hub duality**: log(deg+1) maintains hub deferral from degree-prioritised
|
|
31
|
+
*
|
|
32
|
+
* **Algorithm**:
|
|
33
|
+
* ```
|
|
34
|
+
* 1. Pre-compute local entropy H_local(v) for frontier nodes
|
|
35
|
+
* 2. Initialize N frontiers, one per seed
|
|
36
|
+
* 3. While any frontier is non-empty AND overlap graph not connected:
|
|
37
|
+
* a. Select frontier with lowest π_HABE(v) node at front
|
|
38
|
+
* b. Pop that node and expand its neighbours
|
|
39
|
+
* c. For each new neighbour:
|
|
40
|
+
* - Compute H_local asynchronously
|
|
41
|
+
* - Check intersection with all other frontiers
|
|
42
|
+
* - Record overlap events for termination check
|
|
43
|
+
* d. If intersection found, record path between seeds
|
|
44
|
+
* 4. Rank discovered paths by geometric-mean MI (Path Salience)
|
|
45
|
+
* 5. Return sampled subgraph with ranked paths
|
|
46
|
+
* ```
|
|
47
|
+
*
|
|
48
|
+
* **Priority Function**:
|
|
49
|
+
* π_HABE(v) = (1 / (H_local(v) + ε)) × log(deg(v) + 1)
|
|
50
|
+
*
|
|
51
|
+
* Where:
|
|
52
|
+
* - H_local(v) = -Σ p(τ) log₂ p(τ) (Shannon entropy of neighbour types)
|
|
53
|
+
* - p(τ) = proportion of neighbours with relationship type τ
|
|
54
|
+
* - ε = 0.001 (prevents division by zero)
|
|
55
|
+
* - deg(v) = total degree of node v
|
|
56
|
+
*
|
|
57
|
+
* **Complexity**: O(E log V) where E = edges explored, V = vertices
|
|
58
|
+
*
|
|
59
|
+
* @template T - Type of node data returned by expander
|
|
60
|
+
* @example
|
|
61
|
+
* ```typescript
|
|
62
|
+
* const expansion = new HeterogeneityAwareExpansion(expander, ['seedA', 'seedB']);
|
|
63
|
+
* const result = await expansion.run();
|
|
64
|
+
* console.log(`Found ${result.paths.length} cross-domain paths`);
|
|
65
|
+
* console.log(`Sampled ${result.sampledNodes.size} nodes`);
|
|
66
|
+
* ```
|
|
67
|
+
*
|
|
68
|
+
* @see EntropyGuidedExpansion - Entropy-based priority without overlap termination
|
|
69
|
+
* @see DegreePrioritisedExpansion - Base implementation using degree alone
|
|
70
|
+
*/
|
|
71
|
+
export declare class HeterogeneityAwareExpansion<T> {
|
|
72
|
+
private readonly expander;
|
|
73
|
+
private readonly seeds;
|
|
74
|
+
private readonly frontiers;
|
|
75
|
+
private readonly paths;
|
|
76
|
+
private readonly sampledEdges;
|
|
77
|
+
private stats;
|
|
78
|
+
/** Tracks when each node was first discovered (iteration number) */
|
|
79
|
+
private readonly nodeDiscoveryIteration;
|
|
80
|
+
/** Track which frontier owns each node for O(1) intersection checking */
|
|
81
|
+
private readonly nodeToFrontierIndex;
|
|
82
|
+
/** Track path signatures for O(1) deduplication */
|
|
83
|
+
private readonly pathSignatures;
|
|
84
|
+
/** Overlap events for transitive connectivity termination */
|
|
85
|
+
private readonly overlapEvents;
|
|
86
|
+
/** Epsilon value to prevent division by zero in entropy calculation */
|
|
87
|
+
private static readonly EPSILON;
|
|
88
|
+
/** Cache of pre-computed local entropy values */
|
|
89
|
+
private readonly entropyCache;
|
|
90
|
+
/**
|
|
91
|
+
* Create a new heterogeneity-aware expansion.
|
|
92
|
+
*
|
|
93
|
+
* @param expander - Graph expander providing neighbour access
|
|
94
|
+
* @param seeds - Array of seed node IDs (N ≥ 1)
|
|
95
|
+
* @throws Error if no seeds provided
|
|
96
|
+
*/
|
|
97
|
+
constructor(expander: GraphExpander<T>, seeds: readonly string[]);
|
|
98
|
+
/**
|
|
99
|
+
* Compute local entropy H_local(v) for a node based on neighbour type distribution.
|
|
100
|
+
*
|
|
101
|
+
* H_local(v) = -Σ p(τ) log₂ p(τ)
|
|
102
|
+
*
|
|
103
|
+
* Where p(τ) is the proportion of neighbours with relationship type τ.
|
|
104
|
+
*
|
|
105
|
+
* @param nodeId - Node to compute entropy for
|
|
106
|
+
* @returns Shannon entropy of neighbour type distribution
|
|
107
|
+
* @internal
|
|
108
|
+
*/
|
|
109
|
+
private computeLocalEntropy;
|
|
110
|
+
/**
|
|
111
|
+
* Calculate initial priority for seed nodes (degree-only, entropy computed lazily).
|
|
112
|
+
*
|
|
113
|
+
* @param nodeId - Node to calculate priority for
|
|
114
|
+
* @returns Priority value
|
|
115
|
+
* @internal
|
|
116
|
+
*/
|
|
117
|
+
private calculateInitialPriority;
|
|
118
|
+
/**
|
|
119
|
+
* Calculate HABE priority for a node (async version with entropy).
|
|
120
|
+
*
|
|
121
|
+
* π_HABE(v) = (1 / (H_local(v) + ε)) × log(deg(v) + 1)
|
|
122
|
+
*
|
|
123
|
+
* Lower priority = explored first (min-heap behaviour).
|
|
124
|
+
*
|
|
125
|
+
* @param nodeId - Node to calculate priority for
|
|
126
|
+
* @returns Priority value (lower = higher priority)
|
|
127
|
+
* @internal
|
|
128
|
+
*/
|
|
129
|
+
private calculateHABEPriority;
|
|
130
|
+
/**
|
|
131
|
+
* Check if expansion should terminate based on transitive connectivity.
|
|
132
|
+
*
|
|
133
|
+
* Terminates when overlap graph is connected (all seeds transitively connected).
|
|
134
|
+
*
|
|
135
|
+
* @returns true if expansion should terminate
|
|
136
|
+
* @internal
|
|
137
|
+
*/
|
|
138
|
+
private shouldTerminate;
|
|
139
|
+
/**
|
|
140
|
+
* Check if an undirected graph is connected using BFS.
|
|
141
|
+
*
|
|
142
|
+
* @param adj - Adjacency list representation of graph
|
|
143
|
+
* @param n - Number of nodes
|
|
144
|
+
* @returns true if graph is connected
|
|
145
|
+
* @internal
|
|
146
|
+
*/
|
|
147
|
+
private isConnected;
|
|
148
|
+
/**
|
|
149
|
+
* Run the expansion to completion.
|
|
150
|
+
*
|
|
151
|
+
* Terminates when:
|
|
152
|
+
* - All frontiers are exhausted (no unexpanded nodes remain), OR
|
|
153
|
+
* - Overlap graph is transitively connected (all seeds connected via overlaps)
|
|
154
|
+
*
|
|
155
|
+
* @returns Expansion results including paths and sampled subgraph
|
|
156
|
+
*/
|
|
157
|
+
run(): Promise<DegreePrioritisedExpansionResult>;
|
|
158
|
+
/**
|
|
159
|
+
* Check if any frontier has unexpanded nodes.
|
|
160
|
+
* @internal
|
|
161
|
+
*/
|
|
162
|
+
private hasNonEmptyFrontier;
|
|
163
|
+
/**
|
|
164
|
+
* Select the frontier with the lowest HABE-priority node at its front.
|
|
165
|
+
* Returns -1 if all frontiers are empty.
|
|
166
|
+
* @internal
|
|
167
|
+
*/
|
|
168
|
+
private selectLowestPriorityFrontier;
|
|
169
|
+
/**
|
|
170
|
+
* Reconstruct path from meeting point between two frontiers.
|
|
171
|
+
* @param stateA
|
|
172
|
+
* @param stateB
|
|
173
|
+
* @param meetingNode
|
|
174
|
+
* @internal
|
|
175
|
+
*/
|
|
176
|
+
private reconstructPath;
|
|
177
|
+
/**
|
|
178
|
+
* Create a unique signature for a path to enable O(1) deduplication.
|
|
179
|
+
* Signature is bidirectional (A-B same as B-A).
|
|
180
|
+
* @param fromSeed
|
|
181
|
+
* @param toSeed
|
|
182
|
+
* @param nodes
|
|
183
|
+
* @internal
|
|
184
|
+
*/
|
|
185
|
+
private createPathSignature;
|
|
186
|
+
/**
|
|
187
|
+
* Record degree in distribution histogram.
|
|
188
|
+
* @param degree
|
|
189
|
+
* @internal
|
|
190
|
+
*/
|
|
191
|
+
private recordDegree;
|
|
192
|
+
/**
|
|
193
|
+
* Get histogram bucket for a degree value.
|
|
194
|
+
* @param degree
|
|
195
|
+
* @internal
|
|
196
|
+
*/
|
|
197
|
+
private getDegreeBucket;
|
|
198
|
+
}
|
|
199
|
+
//# sourceMappingURL=heterogeneity-aware-expansion.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"heterogeneity-aware-expansion.d.ts","sourceRoot":"","sources":["../../../src/algorithms/traversal/heterogeneity-aware-expansion.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACnE,OAAO,KAAK,EAAE,gCAAgC,EAAkB,MAAM,mCAAmC,CAAC;AA+B1G;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmEG;AACH,qBAAa,2BAA2B,CAAC,CAAC;IA+BxC,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,KAAK;IA/BvB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAuB;IACjD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAoE;IAC1F,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAqB;IAClD,OAAO,CAAC,KAAK,CAAiB;IAC9B,oEAAoE;IACpE,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAA6B;IAEpE,yEAAyE;IACzE,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAA6B;IAEjE,mDAAmD;IACnD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAqB;IAEpD,6DAA6D;IAC7D,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAsB;IAEpD,uEAAuE;IACvE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAS;IAExC,iDAAiD;IACjD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA6B;IAE1D;;;;;;OAMG;gBAEe,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,EAC1B,KAAK,EAAE,SAAS,MAAM,EAAE;IAmC1C;;;;;;;;;;OAUG;YACW,mBAAmB;IAqCjC;;;;;;OAMG;IACH,OAAO,CAAC,wBAAwB;IAKhC;;;;;;;;;;OAUG;YACW,qBAAqB;IAWnC;;;;;;;OAOG;IACH,OAAO,CAAC,eAAe;IA6BvB;;;;;;;OAOG;IACH,OAAO,CAAC,WAAW;IAuBnB;;;;;;;;OAQG;IACG,GAAG,IAAI,OAAO,CAAC,gCAAgC,CAAC;IA4GtD;;;OAGG;IACH,OAAO,CAAC,mBAAmB;IAI3B;;;;OAIG;IACH,OAAO,CAAC,4BAA4B;IAmBpC;;;;;;OAMG;IACH,OAAO,CAAC,eAAe;IAkCvB;;;;;;;OAOG;IACH,OAAO,CAAC,mBAAmB;IAO3B;;;;OAIG;IACH,OAAO,CAAC,YAAY;IAMpB;;;;OAIG;IACH,OAAO,CAAC,eAAe;CASvB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"heterogeneity-aware-expansion.unit.test.d.ts","sourceRoot":"","sources":["../../../src/algorithms/traversal/heterogeneity-aware-expansion.unit.test.ts"],"names":[],"mappings":""}
|
|
@@ -11,5 +11,19 @@ export type { DegreePrioritisedExpansionResult, ExpansionStats } from './degree-
|
|
|
11
11
|
export { DegreePrioritisedExpansion } from './degree-prioritised-expansion';
|
|
12
12
|
export type { DFSTraversalResult } from './dfs';
|
|
13
13
|
export { dfs } from './dfs';
|
|
14
|
+
export { EntropyGuidedExpansion } from './entropy-guided-expansion';
|
|
15
|
+
export { HeterogeneityAwareExpansion } from './heterogeneity-aware-expansion';
|
|
16
|
+
export type { IntelligentDelayedTerminationConfig } from './intelligent-delayed-termination';
|
|
17
|
+
export { IntelligentDelayedTermination } from './intelligent-delayed-termination';
|
|
18
|
+
export type { MFASFConfig } from './multi-frontier-adaptive-expansion';
|
|
19
|
+
export { MultiFrontierAdaptiveExpansion } from './multi-frontier-adaptive-expansion';
|
|
20
|
+
export type { PathPreservingExpansionConfig } from './path-preserving-expansion';
|
|
21
|
+
export { PathPreservingExpansion } from './path-preserving-expansion';
|
|
22
|
+
export type { PriorityOptions } from './priority-calculator';
|
|
23
|
+
export { calculatePriority, calculatePriorityFromNeighbors, createPriorityCalculator, DEFAULT_EPSILON, DEFAULT_NODE_WEIGHT, legacyCalculatePriority, } from './priority-calculator';
|
|
14
24
|
export { PriorityQueue } from './priority-queue';
|
|
25
|
+
export { RetrospectiveSalienceExpansion } from './retrospective-salience-expansion';
|
|
26
|
+
export { computeNodeSalienceFromRankedPaths, computeNodeSalienceScores, SaliencePrioritisedExpansion, } from './salience-prioritised-expansion';
|
|
27
|
+
export type { BetweenGraphOutput, BetweenGraphStrategy, CoverageThresholdConfig, FrontierState, N1HandlingStrategy, OverlapBasedExpansionConfig, OverlapBasedExpansionResult, OverlapDetectionStrategy, OverlapEvent, OverlapMetadata, SaliencePreservingConfig, SphereIntersectionConfig, TerminationStrategy, ThresholdSharingConfig, } from './overlap-based';
|
|
28
|
+
export { CommonConvergenceStrategy, CoverageThresholdStrategy, FullPairwiseStrategy, MinimalPathsStrategy, OverlapBasedExpansion, PhysicalMeetingStrategy, SaliencePreservingStrategy, SphereIntersectionStrategy, ThresholdSharingStrategy, TransitiveConnectivityStrategy, TruncatedComponentStrategy, } from './overlap-based';
|
|
15
29
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/algorithms/traversal/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/algorithms/traversal/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,YAAY,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,OAAO,CAAC;AAChE,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5B,YAAY,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC3F,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,YAAY,EAAE,gCAAgC,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AACvG,OAAO,EAAE,0BAA0B,EAAE,MAAM,gCAAgC,CAAC;AAC5E,YAAY,EAAE,kBAAkB,EAAE,MAAM,OAAO,CAAC;AAChD,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5B,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,2BAA2B,EAAE,MAAM,iCAAiC,CAAC;AAC9E,YAAY,EAAE,mCAAmC,EAAE,MAAM,mCAAmC,CAAC;AAC7F,OAAO,EAAE,6BAA6B,EAAE,MAAM,mCAAmC,CAAC;AAClF,YAAY,EAAE,WAAW,EAAE,MAAM,qCAAqC,CAAC;AACvE,OAAO,EAAE,8BAA8B,EAAE,MAAM,qCAAqC,CAAC;AACrF,YAAY,EAAE,6BAA6B,EAAE,MAAM,6BAA6B,CAAC;AACjF,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AACtE,YAAY,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EACN,iBAAiB,EACjB,8BAA8B,EAC9B,wBAAwB,EACxB,eAAe,EACf,mBAAmB,EACnB,uBAAuB,GACvB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,8BAA8B,EAAE,MAAM,oCAAoC,CAAC;AACpF,OAAO,EACN,kCAAkC,EAClC,yBAAyB,EACzB,4BAA4B,GAC5B,MAAM,kCAAkC,CAAC;AAG1C,YAAY,EACX,kBAAkB,EAClB,oBAAoB,EACpB,uBAAuB,EACvB,aAAa,EACb,kBAAkB,EAClB,2BAA2B,EAC3B,2BAA2B,EAC3B,wBAAwB,EACxB,YAAY,EACZ,eAAe,EACf,wBAAwB,EACxB,wBAAwB,EACxB,mBAAmB,EACnB,sBAAsB,GACtB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAEN,yBAAyB,EAEzB,yBAAyB,EACzB,oBAAoB,EAEpB,oBAAoB,EAEpB,qBAAqB,EAErB,uBAAuB,EACvB,0BAA0B,EAC1B,0BAA0B,EAC1B,wBAAwB,EACxB,8BAA8B,EAC9B,0BAA0B,GAC1B,MAAM,iBAAiB,CAAC"}
|