graphwise 1.11.0 → 1.12.1
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 +17 -17
- package/dist/__test__/fixtures/graphs/linear-chain.d.ts +3 -3
- package/dist/__test__/fixtures/helpers.d.ts +12 -12
- package/dist/__test__/fixtures/helpers.d.ts.map +1 -1
- package/dist/__test__/fixtures/index.d.ts +1 -1
- package/dist/__test__/fixtures/metrics.d.ts +10 -10
- package/dist/__test__/fixtures/metrics.d.ts.map +1 -1
- package/dist/__test__/fixtures/types.d.ts +2 -2
- package/dist/__test__/fixtures/types.d.ts.map +1 -1
- package/dist/async/protocol.d.ts +1 -1
- package/dist/async/protocol.d.ts.map +1 -1
- package/dist/{expansion → exploration}/base-core.d.ts +5 -5
- package/dist/exploration/base-core.d.ts.map +1 -0
- package/dist/exploration/base-core.unit.test.d.ts.map +1 -0
- package/dist/{expansion → exploration}/base-helpers.d.ts +11 -11
- package/dist/exploration/base-helpers.d.ts.map +1 -0
- package/dist/{expansion → exploration}/base.d.ts +11 -11
- package/dist/exploration/base.d.ts.map +1 -0
- package/dist/exploration/base.unit.test.d.ts.map +1 -0
- package/dist/{expansion → exploration}/comparison.integration.test.d.ts +2 -2
- package/dist/exploration/comparison.integration.test.d.ts.map +1 -0
- package/dist/{expansion → exploration}/dfs-priority.d.ts +8 -8
- package/dist/exploration/dfs-priority.d.ts.map +1 -0
- package/dist/exploration/dfs-priority.unit.test.d.ts.map +1 -0
- package/dist/{expansion → exploration}/dome.d.ts +13 -13
- package/dist/exploration/dome.d.ts.map +1 -0
- package/dist/{expansion → exploration}/dome.integration.test.d.ts +2 -2
- package/dist/exploration/dome.integration.test.d.ts.map +1 -0
- package/dist/exploration/dome.unit.test.d.ts.map +1 -0
- package/dist/{expansion → exploration}/edge.d.ts +8 -8
- package/dist/exploration/edge.d.ts.map +1 -0
- package/dist/{expansion → exploration}/edge.integration.test.d.ts +1 -1
- package/dist/exploration/edge.integration.test.d.ts.map +1 -0
- package/dist/exploration/edge.unit.test.d.ts.map +1 -0
- package/dist/{expansion → exploration}/flux.d.ts +11 -11
- package/dist/exploration/flux.d.ts.map +1 -0
- package/dist/{expansion → exploration}/flux.integration.test.d.ts +1 -1
- package/dist/exploration/flux.integration.test.d.ts.map +1 -0
- package/dist/exploration/flux.unit.test.d.ts.map +1 -0
- package/dist/{expansion → exploration}/frontier-balanced.d.ts +8 -8
- package/dist/exploration/frontier-balanced.d.ts.map +1 -0
- package/dist/exploration/frontier-balanced.unit.test.d.ts.map +1 -0
- package/dist/{expansion → exploration}/fuse.d.ts +10 -10
- package/dist/exploration/fuse.d.ts.map +1 -0
- package/dist/{expansion → exploration}/fuse.integration.test.d.ts +1 -1
- package/dist/exploration/fuse.integration.test.d.ts.map +1 -0
- package/dist/exploration/fuse.unit.test.d.ts.map +1 -0
- package/dist/{expansion → exploration}/hae.d.ts +10 -10
- package/dist/exploration/hae.d.ts.map +1 -0
- package/dist/{expansion → exploration}/hae.integration.test.d.ts +2 -2
- package/dist/exploration/hae.integration.test.d.ts.map +1 -0
- package/dist/exploration/hae.unit.test.d.ts.map +1 -0
- package/dist/exploration/index.cjs +51 -0
- package/dist/{expansion → exploration}/index.d.ts +3 -3
- package/dist/exploration/index.d.ts.map +1 -0
- package/dist/{expansion → exploration}/index.js +1 -1
- package/dist/{expansion → exploration}/k-hop.d.ts +6 -6
- package/dist/exploration/k-hop.d.ts.map +1 -0
- package/dist/exploration/k-hop.unit.test.d.ts.map +1 -0
- package/dist/{expansion → exploration}/lace.d.ts +11 -11
- package/dist/exploration/lace.d.ts.map +1 -0
- package/dist/{expansion → exploration}/lace.integration.test.d.ts +1 -1
- package/dist/exploration/lace.integration.test.d.ts.map +1 -0
- package/dist/exploration/lace.unit.test.d.ts.map +1 -0
- package/dist/{expansion → exploration}/maze.d.ts +9 -9
- package/dist/exploration/maze.d.ts.map +1 -0
- package/dist/{expansion → exploration}/maze.integration.test.d.ts +1 -1
- package/dist/exploration/maze.integration.test.d.ts.map +1 -0
- package/dist/exploration/maze.unit.test.d.ts.map +1 -0
- package/dist/{expansion → exploration}/pipe.d.ts +8 -8
- package/dist/exploration/pipe.d.ts.map +1 -0
- package/dist/{expansion → exploration}/pipe.integration.test.d.ts +2 -2
- package/dist/exploration/pipe.integration.test.d.ts.map +1 -0
- package/dist/exploration/pipe.unit.test.d.ts.map +1 -0
- package/dist/{expansion → exploration}/priority-helpers.d.ts +2 -2
- package/dist/exploration/priority-helpers.d.ts.map +1 -0
- package/dist/{expansion → exploration}/random-priority.d.ts +11 -11
- package/dist/exploration/random-priority.d.ts.map +1 -0
- package/dist/exploration/random-priority.unit.test.d.ts.map +1 -0
- package/dist/{expansion → exploration}/random-walk.d.ts +6 -6
- package/dist/exploration/random-walk.d.ts.map +1 -0
- package/dist/exploration/random-walk.unit.test.d.ts.map +1 -0
- package/dist/{expansion → exploration}/reach.d.ts +9 -9
- package/dist/exploration/reach.d.ts.map +1 -0
- package/dist/{expansion → exploration}/reach.integration.test.d.ts +1 -1
- package/dist/exploration/reach.integration.test.d.ts.map +1 -0
- package/dist/exploration/reach.unit.test.d.ts.map +1 -0
- package/dist/{expansion → exploration}/sage.d.ts +9 -9
- package/dist/exploration/sage.d.ts.map +1 -0
- package/dist/{expansion → exploration}/sage.integration.test.d.ts +1 -1
- package/dist/exploration/sage.integration.test.d.ts.map +1 -0
- package/dist/exploration/sage.unit.test.d.ts.map +1 -0
- package/dist/{expansion → exploration}/sift.d.ts +12 -12
- package/dist/exploration/sift.d.ts.map +1 -0
- package/dist/{expansion → exploration}/sift.integration.test.d.ts +1 -1
- package/dist/exploration/sift.integration.test.d.ts.map +1 -0
- package/dist/exploration/sift.unit.test.d.ts.map +1 -0
- package/dist/{expansion → exploration}/standard-bfs.d.ts +8 -8
- package/dist/exploration/standard-bfs.d.ts.map +1 -0
- package/dist/exploration/standard-bfs.unit.test.d.ts.map +1 -0
- package/dist/{expansion → exploration}/tide.d.ts +8 -8
- package/dist/exploration/tide.d.ts.map +1 -0
- package/dist/{expansion → exploration}/tide.integration.test.d.ts +1 -1
- package/dist/exploration/tide.integration.test.d.ts.map +1 -0
- package/dist/exploration/tide.unit.test.d.ts.map +1 -0
- package/dist/{expansion → exploration}/types.d.ts +17 -17
- package/dist/exploration/types.d.ts.map +1 -0
- package/dist/{expansion → exploration}/warp.d.ts +8 -8
- package/dist/exploration/warp.d.ts.map +1 -0
- package/dist/{expansion → exploration}/warp.integration.test.d.ts +1 -1
- package/dist/exploration/warp.integration.test.d.ts.map +1 -0
- package/dist/exploration/warp.unit.test.d.ts.map +1 -0
- package/dist/{expansion--UuRowv-.cjs → exploration-BfDi17av.cjs} +136 -136
- package/dist/exploration-BfDi17av.cjs.map +1 -0
- package/dist/{expansion-CZLNK6Pr.js → exploration-DKjRNxS5.js} +136 -136
- package/dist/exploration-DKjRNxS5.js.map +1 -0
- package/dist/gpu/index.cjs +1 -1
- package/dist/gpu/index.js +1 -1
- package/dist/index/index.cjs +57 -53
- package/dist/index/index.js +5 -5
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/{kernel-CigCjrts.js → kernel-BLwhyVSV.js} +1 -1
- package/dist/{kernel-CigCjrts.js.map → kernel-BLwhyVSV.js.map} +1 -1
- package/dist/{kernel-2oH4Cn32.cjs → kernel-BffKjhZS.cjs} +1 -1
- package/dist/{kernel-2oH4Cn32.cjs.map → kernel-BffKjhZS.cjs.map} +1 -1
- package/dist/{kernel-CXeGBH3s.cjs → kernel-CbP715Sq.cjs} +1 -1
- package/dist/{kernel-CXeGBH3s.cjs.map → kernel-CbP715Sq.cjs.map} +1 -1
- package/dist/{kernel-CvnRsF7E.js → kernel-DolEKSSx.js} +1 -1
- package/dist/{kernel-CvnRsF7E.js.map → kernel-DolEKSSx.js.map} +1 -1
- package/dist/{kernel-DukrXtVb.cjs → kernel-E_h47HjZ.cjs} +1 -1
- package/dist/{kernel-DukrXtVb.cjs.map → kernel-E_h47HjZ.cjs.map} +1 -1
- package/dist/{kernel-6deK9fh1.js → kernel-lYa4TYth.js} +1 -1
- package/dist/{kernel-6deK9fh1.js.map → kernel-lYa4TYth.js.map} +1 -1
- package/dist/{operations-D-RB67WP.cjs → operations-CSU0yFPr.cjs} +4 -4
- package/dist/{operations-D-RB67WP.cjs.map → operations-CSU0yFPr.cjs.map} +1 -1
- package/dist/{operations-D9otVlIH.js → operations-CdrA87Au.js} +4 -4
- package/dist/{operations-D9otVlIH.js.map → operations-CdrA87Au.js.map} +1 -1
- package/dist/ranking/baselines/betweenness.d.ts +2 -2
- package/dist/ranking/baselines/betweenness.d.ts.map +1 -1
- package/dist/ranking/baselines/communicability.d.ts +3 -3
- package/dist/ranking/baselines/communicability.d.ts.map +1 -1
- package/dist/ranking/baselines/degree-sum.d.ts +2 -2
- package/dist/ranking/baselines/degree-sum.d.ts.map +1 -1
- package/dist/ranking/baselines/hitting-time.d.ts +2 -2
- package/dist/ranking/baselines/hitting-time.d.ts.map +1 -1
- package/dist/ranking/baselines/jaccard-arithmetic.d.ts +2 -2
- package/dist/ranking/baselines/jaccard-arithmetic.d.ts.map +1 -1
- package/dist/ranking/baselines/katz.d.ts +3 -3
- package/dist/ranking/baselines/katz.d.ts.map +1 -1
- package/dist/ranking/baselines/pagerank.d.ts +3 -3
- package/dist/ranking/baselines/pagerank.d.ts.map +1 -1
- package/dist/ranking/baselines/random-ranking.d.ts +2 -2
- package/dist/ranking/baselines/random-ranking.d.ts.map +1 -1
- package/dist/ranking/baselines/resistance-distance.d.ts +2 -2
- package/dist/ranking/baselines/resistance-distance.d.ts.map +1 -1
- package/dist/ranking/baselines/shortest.d.ts +2 -2
- package/dist/ranking/baselines/shortest.d.ts.map +1 -1
- package/dist/ranking/baselines/types.d.ts +3 -3
- package/dist/ranking/baselines/types.d.ts.map +1 -1
- package/dist/ranking/baselines/utils.d.ts +3 -3
- package/dist/ranking/baselines/utils.d.ts.map +1 -1
- package/dist/ranking/baselines/widest-path.d.ts +2 -2
- package/dist/ranking/baselines/widest-path.d.ts.map +1 -1
- package/dist/ranking/index.cjs +1 -1
- package/dist/ranking/index.js +1 -1
- package/dist/ranking/parse-gpu.d.ts +2 -2
- package/dist/ranking/parse-gpu.d.ts.map +1 -1
- package/dist/ranking/parse.d.ts +4 -4
- package/dist/ranking/parse.d.ts.map +1 -1
- package/dist/{ranking-pe5UaxKg.cjs → ranking-BQqrH26-.cjs} +2 -2
- package/dist/ranking-BQqrH26-.cjs.map +1 -0
- package/dist/{ranking-DOKDBcIR.js → ranking-B_KdM8Wq.js} +2 -2
- package/dist/ranking-B_KdM8Wq.js.map +1 -0
- package/dist/schemas/graph.d.ts +1 -1
- package/dist/schemas/index.cjs +1 -1
- package/dist/schemas/index.cjs.map +1 -1
- package/dist/schemas/index.js +1 -1
- package/dist/schemas/index.js.map +1 -1
- package/dist/seeds/basil.d.ts +12 -0
- package/dist/seeds/basil.d.ts.map +1 -0
- package/dist/seeds/brisk.d.ts +18 -0
- package/dist/seeds/brisk.d.ts.map +1 -0
- package/dist/seeds/hybrid-core.d.ts +32 -0
- package/dist/seeds/hybrid-core.d.ts.map +1 -0
- package/dist/seeds/hybrid-ensembles.unit.test.d.ts +2 -0
- package/dist/seeds/hybrid-ensembles.unit.test.d.ts.map +1 -0
- package/dist/seeds/index.cjs +11 -1108
- package/dist/seeds/index.d.ts +4 -0
- package/dist/seeds/index.d.ts.map +1 -1
- package/dist/seeds/index.js +2 -1103
- package/dist/seeds/omnia.d.ts +12 -0
- package/dist/seeds/omnia.d.ts.map +1 -0
- package/dist/seeds/prism.d.ts +12 -0
- package/dist/seeds/prism.d.ts.map +1 -0
- package/dist/seeds--fLhoBaG.cjs +1762 -0
- package/dist/seeds--fLhoBaG.cjs.map +1 -0
- package/dist/seeds-ihozTw4J.js +1703 -0
- package/dist/seeds-ihozTw4J.js.map +1 -0
- package/dist/utils/entropy.d.ts +1 -1
- package/dist/utils/index.cjs +1 -1
- package/dist/utils/index.cjs.map +1 -1
- package/dist/utils/index.js +1 -1
- package/dist/utils/index.js.map +1 -1
- package/package.json +7 -7
- package/dist/expansion/base-core.d.ts.map +0 -1
- package/dist/expansion/base-core.unit.test.d.ts.map +0 -1
- package/dist/expansion/base-helpers.d.ts.map +0 -1
- package/dist/expansion/base.d.ts.map +0 -1
- package/dist/expansion/base.unit.test.d.ts.map +0 -1
- package/dist/expansion/comparison.integration.test.d.ts.map +0 -1
- package/dist/expansion/dfs-priority.d.ts.map +0 -1
- package/dist/expansion/dfs-priority.unit.test.d.ts.map +0 -1
- package/dist/expansion/dome.d.ts.map +0 -1
- package/dist/expansion/dome.integration.test.d.ts.map +0 -1
- package/dist/expansion/dome.unit.test.d.ts.map +0 -1
- package/dist/expansion/edge.d.ts.map +0 -1
- package/dist/expansion/edge.integration.test.d.ts.map +0 -1
- package/dist/expansion/edge.unit.test.d.ts.map +0 -1
- package/dist/expansion/flux.d.ts.map +0 -1
- package/dist/expansion/flux.integration.test.d.ts.map +0 -1
- package/dist/expansion/flux.unit.test.d.ts.map +0 -1
- package/dist/expansion/frontier-balanced.d.ts.map +0 -1
- package/dist/expansion/frontier-balanced.unit.test.d.ts.map +0 -1
- package/dist/expansion/fuse.d.ts.map +0 -1
- package/dist/expansion/fuse.integration.test.d.ts.map +0 -1
- package/dist/expansion/fuse.unit.test.d.ts.map +0 -1
- package/dist/expansion/hae.d.ts.map +0 -1
- package/dist/expansion/hae.integration.test.d.ts.map +0 -1
- package/dist/expansion/hae.unit.test.d.ts.map +0 -1
- package/dist/expansion/index.cjs +0 -51
- package/dist/expansion/index.d.ts.map +0 -1
- package/dist/expansion/k-hop.d.ts.map +0 -1
- package/dist/expansion/k-hop.unit.test.d.ts.map +0 -1
- package/dist/expansion/lace.d.ts.map +0 -1
- package/dist/expansion/lace.integration.test.d.ts.map +0 -1
- package/dist/expansion/lace.unit.test.d.ts.map +0 -1
- package/dist/expansion/maze.d.ts.map +0 -1
- package/dist/expansion/maze.integration.test.d.ts.map +0 -1
- package/dist/expansion/maze.unit.test.d.ts.map +0 -1
- package/dist/expansion/pipe.d.ts.map +0 -1
- package/dist/expansion/pipe.integration.test.d.ts.map +0 -1
- package/dist/expansion/pipe.unit.test.d.ts.map +0 -1
- package/dist/expansion/priority-helpers.d.ts.map +0 -1
- package/dist/expansion/random-priority.d.ts.map +0 -1
- package/dist/expansion/random-priority.unit.test.d.ts.map +0 -1
- package/dist/expansion/random-walk.d.ts.map +0 -1
- package/dist/expansion/random-walk.unit.test.d.ts.map +0 -1
- package/dist/expansion/reach.d.ts.map +0 -1
- package/dist/expansion/reach.integration.test.d.ts.map +0 -1
- package/dist/expansion/reach.unit.test.d.ts.map +0 -1
- package/dist/expansion/sage.d.ts.map +0 -1
- package/dist/expansion/sage.integration.test.d.ts.map +0 -1
- package/dist/expansion/sage.unit.test.d.ts.map +0 -1
- package/dist/expansion/sift.d.ts.map +0 -1
- package/dist/expansion/sift.integration.test.d.ts.map +0 -1
- package/dist/expansion/sift.unit.test.d.ts.map +0 -1
- package/dist/expansion/standard-bfs.d.ts.map +0 -1
- package/dist/expansion/standard-bfs.unit.test.d.ts.map +0 -1
- package/dist/expansion/tide.d.ts.map +0 -1
- package/dist/expansion/tide.integration.test.d.ts.map +0 -1
- package/dist/expansion/tide.unit.test.d.ts.map +0 -1
- package/dist/expansion/types.d.ts.map +0 -1
- package/dist/expansion/warp.d.ts.map +0 -1
- package/dist/expansion/warp.integration.test.d.ts.map +0 -1
- package/dist/expansion/warp.unit.test.d.ts.map +0 -1
- package/dist/expansion--UuRowv-.cjs.map +0 -1
- package/dist/expansion-CZLNK6Pr.js.map +0 -1
- package/dist/ranking-DOKDBcIR.js.map +0 -1
- package/dist/ranking-pe5UaxKg.cjs.map +0 -1
- package/dist/seeds/index.cjs.map +0 -1
- package/dist/seeds/index.js.map +0 -1
- /package/dist/{expansion → exploration}/base-core.unit.test.d.ts +0 -0
- /package/dist/{expansion → exploration}/base.unit.test.d.ts +0 -0
- /package/dist/{expansion → exploration}/dfs-priority.unit.test.d.ts +0 -0
- /package/dist/{expansion → exploration}/dome.unit.test.d.ts +0 -0
- /package/dist/{expansion → exploration}/edge.unit.test.d.ts +0 -0
- /package/dist/{expansion → exploration}/flux.unit.test.d.ts +0 -0
- /package/dist/{expansion → exploration}/frontier-balanced.unit.test.d.ts +0 -0
- /package/dist/{expansion → exploration}/fuse.unit.test.d.ts +0 -0
- /package/dist/{expansion → exploration}/hae.unit.test.d.ts +0 -0
- /package/dist/{expansion → exploration}/k-hop.unit.test.d.ts +0 -0
- /package/dist/{expansion → exploration}/lace.unit.test.d.ts +0 -0
- /package/dist/{expansion → exploration}/maze.unit.test.d.ts +0 -0
- /package/dist/{expansion → exploration}/pipe.unit.test.d.ts +0 -0
- /package/dist/{expansion → exploration}/random-priority.unit.test.d.ts +0 -0
- /package/dist/{expansion → exploration}/random-walk.unit.test.d.ts +0 -0
- /package/dist/{expansion → exploration}/reach.unit.test.d.ts +0 -0
- /package/dist/{expansion → exploration}/sage.unit.test.d.ts +0 -0
- /package/dist/{expansion → exploration}/sift.unit.test.d.ts +0 -0
- /package/dist/{expansion → exploration}/standard-bfs.unit.test.d.ts +0 -0
- /package/dist/{expansion → exploration}/tide.unit.test.d.ts +0 -0
- /package/dist/{expansion → exploration}/warp.unit.test.d.ts +0 -0
|
@@ -3,9 +3,9 @@ import { f as runAsync, p as runSync, r as opDegree, s as opNeighbours } from ".
|
|
|
3
3
|
import { c as graphToCSR, i as jaccardFromIntersection, r as intersectionBatch } from "./logic-DyBzRg1A.js";
|
|
4
4
|
import { localTypeEntropy } from "./utils/index.js";
|
|
5
5
|
import { t as jaccard } from "./jaccard-BwC_NuQu.js";
|
|
6
|
-
//#region src/
|
|
6
|
+
//#region src/exploration/base-helpers.ts
|
|
7
7
|
/**
|
|
8
|
-
* Check whether
|
|
8
|
+
* Check whether exploration should continue given current progress.
|
|
9
9
|
*
|
|
10
10
|
* Returns shouldContinue=false as soon as any configured limit is reached,
|
|
11
11
|
* along with the appropriate termination reason.
|
|
@@ -13,7 +13,7 @@ import { t as jaccard } from "./jaccard-BwC_NuQu.js";
|
|
|
13
13
|
* @param iterations - Number of iterations completed so far
|
|
14
14
|
* @param nodesVisited - Number of distinct nodes visited so far
|
|
15
15
|
* @param pathsFound - Number of paths discovered so far
|
|
16
|
-
* @param limits - Configured
|
|
16
|
+
* @param limits - Configured exploration limits (0 = unlimited)
|
|
17
17
|
* @returns Whether to continue and the termination reason if stopping
|
|
18
18
|
*/
|
|
19
19
|
function continueExpansion(iterations, nodesVisited, pathsFound, limits) {
|
|
@@ -81,11 +81,11 @@ function reconstructPath$1(collisionNode, frontierA, frontierB, predecessors, se
|
|
|
81
81
|
};
|
|
82
82
|
}
|
|
83
83
|
/**
|
|
84
|
-
* Create an empty
|
|
84
|
+
* Create an empty exploration result for early termination (e.g. no seeds given).
|
|
85
85
|
*
|
|
86
86
|
* @param algorithm - Name of the algorithm producing this result
|
|
87
87
|
* @param startTime - performance.now() timestamp taken before the algorithm began
|
|
88
|
-
* @returns An
|
|
88
|
+
* @returns An ExplorationResult with zero paths and zero stats
|
|
89
89
|
*/
|
|
90
90
|
function emptyResult$2(algorithm, startTime) {
|
|
91
91
|
return {
|
|
@@ -105,7 +105,7 @@ function emptyResult$2(algorithm, startTime) {
|
|
|
105
105
|
};
|
|
106
106
|
}
|
|
107
107
|
//#endregion
|
|
108
|
-
//#region src/
|
|
108
|
+
//#region src/exploration/base-core.ts
|
|
109
109
|
/**
|
|
110
110
|
* Default priority function — degree-ordered (DOME).
|
|
111
111
|
*
|
|
@@ -115,7 +115,7 @@ function degreePriority(_nodeId, context) {
|
|
|
115
115
|
return context.degree;
|
|
116
116
|
}
|
|
117
117
|
/**
|
|
118
|
-
* Generator core of the BASE
|
|
118
|
+
* Generator core of the BASE exploration algorithm.
|
|
119
119
|
*
|
|
120
120
|
* Yields GraphOp objects to request graph data, allowing the caller to
|
|
121
121
|
* provide a sync or async runner. The optional `graphRef` parameter is
|
|
@@ -124,10 +124,10 @@ function degreePriority(_nodeId, context) {
|
|
|
124
124
|
* graph may be supplied instead.
|
|
125
125
|
*
|
|
126
126
|
* @param graphMeta - Immutable graph metadata (directed, nodeCount, edgeCount)
|
|
127
|
-
* @param seeds - Seed nodes for
|
|
127
|
+
* @param seeds - Seed nodes for exploration
|
|
128
128
|
* @param config - Expansion configuration (priority, limits, debug)
|
|
129
129
|
* @param graphRef - Optional real graph reference for context.graph in priority functions
|
|
130
|
-
* @returns An
|
|
130
|
+
* @returns An ExplorationResult with all discovered paths and statistics
|
|
131
131
|
*/
|
|
132
132
|
function* baseCore(graphMeta, seeds, config, graphRef) {
|
|
133
133
|
const startTime = performance.now();
|
|
@@ -333,15 +333,15 @@ function buildPriorityContext(_nodeId, frontierIndex, combinedVisited, allVisite
|
|
|
333
333
|
};
|
|
334
334
|
}
|
|
335
335
|
//#endregion
|
|
336
|
-
//#region src/
|
|
336
|
+
//#region src/exploration/base.ts
|
|
337
337
|
/**
|
|
338
|
-
* Run BASE
|
|
338
|
+
* Run BASE exploration synchronously.
|
|
339
339
|
*
|
|
340
340
|
* Delegates to baseCore + runSync. Behaviour is identical to the previous
|
|
341
341
|
* direct implementation — all existing callers are unaffected.
|
|
342
342
|
*
|
|
343
343
|
* @param graph - Source graph
|
|
344
|
-
* @param seeds - Seed nodes for
|
|
344
|
+
* @param seeds - Seed nodes for exploration
|
|
345
345
|
* @param config - Expansion configuration
|
|
346
346
|
* @returns Expansion result with discovered paths
|
|
347
347
|
*/
|
|
@@ -353,7 +353,7 @@ function base(graph, seeds, config) {
|
|
|
353
353
|
}, seeds, config, graph), graph);
|
|
354
354
|
}
|
|
355
355
|
/**
|
|
356
|
-
* Run BASE
|
|
356
|
+
* Run BASE exploration asynchronously.
|
|
357
357
|
*
|
|
358
358
|
* Delegates to baseCore + runAsync. Supports:
|
|
359
359
|
* - Cancellation via AbortSignal (config.signal)
|
|
@@ -365,9 +365,9 @@ function base(graph, seeds, config) {
|
|
|
365
365
|
* priority (DOME) does not access context.graph and works correctly.
|
|
366
366
|
*
|
|
367
367
|
* @param graph - Async source graph
|
|
368
|
-
* @param seeds - Seed nodes for
|
|
368
|
+
* @param seeds - Seed nodes for exploration
|
|
369
369
|
* @param config - Expansion and async runner configuration
|
|
370
|
-
* @returns Promise resolving to the
|
|
370
|
+
* @returns Promise resolving to the exploration result
|
|
371
371
|
*/
|
|
372
372
|
async function baseAsync(graph, seeds, config) {
|
|
373
373
|
const [nodeCount, edgeCount] = await Promise.all([graph.nodeCount, graph.edgeCount]);
|
|
@@ -383,7 +383,7 @@ async function baseAsync(graph, seeds, config) {
|
|
|
383
383
|
return runAsync(gen, graph, runnerOptions);
|
|
384
384
|
}
|
|
385
385
|
//#endregion
|
|
386
|
-
//#region src/
|
|
386
|
+
//#region src/exploration/dome.ts
|
|
387
387
|
/**
|
|
388
388
|
* DOME priority: lower degree is expanded first.
|
|
389
389
|
*/
|
|
@@ -397,10 +397,10 @@ function domeHighDegreePriority(_nodeId, context) {
|
|
|
397
397
|
return -context.degree;
|
|
398
398
|
}
|
|
399
399
|
/**
|
|
400
|
-
* Run DOME
|
|
400
|
+
* Run DOME exploration (degree-ordered).
|
|
401
401
|
*
|
|
402
402
|
* @param graph - Source graph
|
|
403
|
-
* @param seeds - Seed nodes for
|
|
403
|
+
* @param seeds - Seed nodes for exploration
|
|
404
404
|
* @param config - Expansion configuration
|
|
405
405
|
* @returns Expansion result with discovered paths
|
|
406
406
|
*/
|
|
@@ -411,12 +411,12 @@ function dome(graph, seeds, config) {
|
|
|
411
411
|
});
|
|
412
412
|
}
|
|
413
413
|
/**
|
|
414
|
-
* Run DOME
|
|
414
|
+
* Run DOME exploration asynchronously (degree-ordered).
|
|
415
415
|
*
|
|
416
416
|
* @param graph - Async source graph
|
|
417
|
-
* @param seeds - Seed nodes for
|
|
417
|
+
* @param seeds - Seed nodes for exploration
|
|
418
418
|
* @param config - Expansion and async runner configuration
|
|
419
|
-
* @returns Promise resolving to the
|
|
419
|
+
* @returns Promise resolving to the exploration result
|
|
420
420
|
*/
|
|
421
421
|
async function domeAsync(graph, seeds, config) {
|
|
422
422
|
return baseAsync(graph, seeds, {
|
|
@@ -434,12 +434,12 @@ function domeHighDegree(graph, seeds, config) {
|
|
|
434
434
|
});
|
|
435
435
|
}
|
|
436
436
|
/**
|
|
437
|
-
* Run DOME high-degree
|
|
437
|
+
* Run DOME high-degree exploration asynchronously (high degree first).
|
|
438
438
|
*
|
|
439
439
|
* @param graph - Async source graph
|
|
440
|
-
* @param seeds - Seed nodes for
|
|
440
|
+
* @param seeds - Seed nodes for exploration
|
|
441
441
|
* @param config - Expansion and async runner configuration
|
|
442
|
-
* @returns Promise resolving to the
|
|
442
|
+
* @returns Promise resolving to the exploration result
|
|
443
443
|
*/
|
|
444
444
|
async function domeHighDegreeAsync(graph, seeds, config) {
|
|
445
445
|
return baseAsync(graph, seeds, {
|
|
@@ -448,7 +448,7 @@ async function domeHighDegreeAsync(graph, seeds, config) {
|
|
|
448
448
|
});
|
|
449
449
|
}
|
|
450
450
|
//#endregion
|
|
451
|
-
//#region src/
|
|
451
|
+
//#region src/exploration/hae.ts
|
|
452
452
|
var EPSILON = 1e-10;
|
|
453
453
|
/**
|
|
454
454
|
* Default type mapper - uses node.type property.
|
|
@@ -472,13 +472,13 @@ function createHAEPriority(typeMapper) {
|
|
|
472
472
|
};
|
|
473
473
|
}
|
|
474
474
|
/**
|
|
475
|
-
* Run HAE
|
|
475
|
+
* Run HAE exploration (Heterogeneity-Aware Exploration).
|
|
476
476
|
*
|
|
477
477
|
* Discovers paths by prioritising nodes with diverse neighbour types,
|
|
478
478
|
* using a custom type mapper for flexible type extraction.
|
|
479
479
|
*
|
|
480
480
|
* @param graph - Source graph
|
|
481
|
-
* @param seeds - Seed nodes for
|
|
481
|
+
* @param seeds - Seed nodes for exploration
|
|
482
482
|
* @param config - HAE configuration with optional typeMapper
|
|
483
483
|
* @returns Expansion result with discovered paths
|
|
484
484
|
*/
|
|
@@ -490,7 +490,7 @@ function hae(graph, seeds, config) {
|
|
|
490
490
|
});
|
|
491
491
|
}
|
|
492
492
|
/**
|
|
493
|
-
* Run HAE
|
|
493
|
+
* Run HAE exploration asynchronously.
|
|
494
494
|
*
|
|
495
495
|
* Note: the HAE priority function accesses `context.graph` to retrieve
|
|
496
496
|
* neighbour types. Full async equivalence requires PriorityContext
|
|
@@ -498,9 +498,9 @@ function hae(graph, seeds, config) {
|
|
|
498
498
|
* surface; use with a `wrapAsync`-wrapped sync graph for testing.
|
|
499
499
|
*
|
|
500
500
|
* @param graph - Async source graph
|
|
501
|
-
* @param seeds - Seed nodes for
|
|
501
|
+
* @param seeds - Seed nodes for exploration
|
|
502
502
|
* @param config - HAE configuration combined with async runner options
|
|
503
|
-
* @returns Promise resolving to the
|
|
503
|
+
* @returns Promise resolving to the exploration result
|
|
504
504
|
*/
|
|
505
505
|
async function haeAsync(graph, seeds, config) {
|
|
506
506
|
const typeMapper = config?.typeMapper ?? defaultTypeMapper$1;
|
|
@@ -510,17 +510,17 @@ async function haeAsync(graph, seeds, config) {
|
|
|
510
510
|
});
|
|
511
511
|
}
|
|
512
512
|
//#endregion
|
|
513
|
-
//#region src/
|
|
513
|
+
//#region src/exploration/edge.ts
|
|
514
514
|
/** Default type mapper: reads `node.type`, falling back to "default". */
|
|
515
515
|
var defaultTypeMapper = (n) => typeof n.type === "string" ? n.type : "default";
|
|
516
516
|
/**
|
|
517
|
-
* Run EDGE
|
|
517
|
+
* Run EDGE exploration (Entropy-Driven Graph Exploration).
|
|
518
518
|
*
|
|
519
519
|
* Discovers paths by prioritising nodes with diverse neighbour types,
|
|
520
520
|
* deferring nodes with homogeneous neighbourhoods.
|
|
521
521
|
*
|
|
522
522
|
* @param graph - Source graph
|
|
523
|
-
* @param seeds - Seed nodes for
|
|
523
|
+
* @param seeds - Seed nodes for exploration
|
|
524
524
|
* @param config - Expansion configuration
|
|
525
525
|
* @returns Expansion result with discovered paths
|
|
526
526
|
*/
|
|
@@ -531,7 +531,7 @@ function edge(graph, seeds, config) {
|
|
|
531
531
|
});
|
|
532
532
|
}
|
|
533
533
|
/**
|
|
534
|
-
* Run EDGE
|
|
534
|
+
* Run EDGE exploration asynchronously.
|
|
535
535
|
*
|
|
536
536
|
* Delegates to `haeAsync` with the default `node.type` mapper.
|
|
537
537
|
*
|
|
@@ -541,9 +541,9 @@ function edge(graph, seeds, config) {
|
|
|
541
541
|
* surface; use with a `wrapAsync`-wrapped sync graph for testing.
|
|
542
542
|
*
|
|
543
543
|
* @param graph - Async source graph
|
|
544
|
-
* @param seeds - Seed nodes for
|
|
544
|
+
* @param seeds - Seed nodes for exploration
|
|
545
545
|
* @param config - Expansion and async runner configuration
|
|
546
|
-
* @returns Promise resolving to the
|
|
546
|
+
* @returns Promise resolving to the exploration result
|
|
547
547
|
*/
|
|
548
548
|
async function edgeAsync(graph, seeds, config) {
|
|
549
549
|
return haeAsync(graph, seeds, {
|
|
@@ -552,7 +552,7 @@ async function edgeAsync(graph, seeds, config) {
|
|
|
552
552
|
});
|
|
553
553
|
}
|
|
554
554
|
//#endregion
|
|
555
|
-
//#region src/
|
|
555
|
+
//#region src/exploration/pipe.ts
|
|
556
556
|
/**
|
|
557
557
|
* Priority function using path potential.
|
|
558
558
|
* Lower values = higher priority (expanded first).
|
|
@@ -570,13 +570,13 @@ function pipePriority(nodeId, context) {
|
|
|
570
570
|
return context.degree / (1 + pathPotential);
|
|
571
571
|
}
|
|
572
572
|
/**
|
|
573
|
-
* Run PIPE
|
|
573
|
+
* Run PIPE exploration (Path-potential Informed Priority Exploration).
|
|
574
574
|
*
|
|
575
575
|
* Discovers paths by prioritising nodes that bridge multiple frontiers,
|
|
576
576
|
* identifying connecting points between seed regions.
|
|
577
577
|
*
|
|
578
578
|
* @param graph - Source graph
|
|
579
|
-
* @param seeds - Seed nodes for
|
|
579
|
+
* @param seeds - Seed nodes for exploration
|
|
580
580
|
* @param config - Expansion configuration
|
|
581
581
|
* @returns Expansion result with discovered paths
|
|
582
582
|
*/
|
|
@@ -587,7 +587,7 @@ function pipe(graph, seeds, config) {
|
|
|
587
587
|
});
|
|
588
588
|
}
|
|
589
589
|
/**
|
|
590
|
-
* Run PIPE
|
|
590
|
+
* Run PIPE exploration asynchronously.
|
|
591
591
|
*
|
|
592
592
|
* Note: the PIPE priority function accesses `context.graph` to retrieve
|
|
593
593
|
* neighbour lists. Full async equivalence requires PriorityContext
|
|
@@ -595,9 +595,9 @@ function pipe(graph, seeds, config) {
|
|
|
595
595
|
* surface; use with a `wrapAsync`-wrapped sync graph for testing.
|
|
596
596
|
*
|
|
597
597
|
* @param graph - Async source graph
|
|
598
|
-
* @param seeds - Seed nodes for
|
|
598
|
+
* @param seeds - Seed nodes for exploration
|
|
599
599
|
* @param config - Expansion and async runner configuration
|
|
600
|
-
* @returns Promise resolving to the
|
|
600
|
+
* @returns Promise resolving to the exploration result
|
|
601
601
|
*/
|
|
602
602
|
async function pipeAsync(graph, seeds, config) {
|
|
603
603
|
return baseAsync(graph, seeds, {
|
|
@@ -606,7 +606,7 @@ async function pipeAsync(graph, seeds, config) {
|
|
|
606
606
|
});
|
|
607
607
|
}
|
|
608
608
|
//#endregion
|
|
609
|
-
//#region src/
|
|
609
|
+
//#region src/exploration/priority-helpers.ts
|
|
610
610
|
/**
|
|
611
611
|
* Compute average MI between each candidate and a set of reference nodes.
|
|
612
612
|
*
|
|
@@ -747,16 +747,16 @@ function updateSalienceCounts(salienceCounts, paths, fromIndex) {
|
|
|
747
747
|
return paths.length;
|
|
748
748
|
}
|
|
749
749
|
//#endregion
|
|
750
|
-
//#region src/
|
|
750
|
+
//#region src/exploration/sage.ts
|
|
751
751
|
/**
|
|
752
|
-
* Run SAGE
|
|
752
|
+
* Run SAGE exploration algorithm.
|
|
753
753
|
*
|
|
754
|
-
* Salience-aware multi-frontier
|
|
754
|
+
* Salience-aware multi-frontier exploration with two phases:
|
|
755
755
|
* - Phase 1: Degree-based priority (early exploration)
|
|
756
756
|
* - Phase 2: Salience feedback (path-aware frontier steering)
|
|
757
757
|
*
|
|
758
758
|
* @param graph - Source graph
|
|
759
|
-
* @param seeds - Seed nodes for
|
|
759
|
+
* @param seeds - Seed nodes for exploration
|
|
760
760
|
* @param config - Expansion configuration
|
|
761
761
|
* @returns Expansion result with discovered paths
|
|
762
762
|
*/
|
|
@@ -780,16 +780,16 @@ function sage(graph, seeds, config) {
|
|
|
780
780
|
});
|
|
781
781
|
}
|
|
782
782
|
/**
|
|
783
|
-
* Run SAGE
|
|
783
|
+
* Run SAGE exploration asynchronously.
|
|
784
784
|
*
|
|
785
785
|
* Creates fresh closure state (salienceCounts, phase tracking) for this
|
|
786
786
|
* invocation. The SAGE priority function does not access `context.graph`
|
|
787
787
|
* directly, so it is safe to use in async mode via `baseAsync`.
|
|
788
788
|
*
|
|
789
789
|
* @param graph - Async source graph
|
|
790
|
-
* @param seeds - Seed nodes for
|
|
790
|
+
* @param seeds - Seed nodes for exploration
|
|
791
791
|
* @param config - Expansion and async runner configuration
|
|
792
|
-
* @returns Promise resolving to the
|
|
792
|
+
* @returns Promise resolving to the exploration result
|
|
793
793
|
*/
|
|
794
794
|
async function sageAsync(graph, seeds, config) {
|
|
795
795
|
const salienceCounts = /* @__PURE__ */ new Map();
|
|
@@ -808,16 +808,16 @@ async function sageAsync(graph, seeds, config) {
|
|
|
808
808
|
});
|
|
809
809
|
}
|
|
810
810
|
//#endregion
|
|
811
|
-
//#region src/
|
|
811
|
+
//#region src/exploration/reach.ts
|
|
812
812
|
/**
|
|
813
|
-
* Run REACH
|
|
813
|
+
* Run REACH exploration algorithm.
|
|
814
814
|
*
|
|
815
|
-
* Mutual information-aware multi-frontier
|
|
815
|
+
* Mutual information-aware multi-frontier exploration with two phases:
|
|
816
816
|
* - Phase 1: Degree-based priority (early exploration)
|
|
817
817
|
* - Phase 2: Structural similarity feedback (MI-guided frontier steering)
|
|
818
818
|
*
|
|
819
819
|
* @param graph - Source graph
|
|
820
|
-
* @param seeds - Seed nodes for
|
|
820
|
+
* @param seeds - Seed nodes for exploration
|
|
821
821
|
* @param config - Expansion configuration
|
|
822
822
|
* @returns Expansion result with discovered paths
|
|
823
823
|
*/
|
|
@@ -864,7 +864,7 @@ function reach(graph, seeds, config) {
|
|
|
864
864
|
});
|
|
865
865
|
}
|
|
866
866
|
/**
|
|
867
|
-
* Run REACH
|
|
867
|
+
* Run REACH exploration asynchronously.
|
|
868
868
|
*
|
|
869
869
|
* Creates fresh closure state (phase tracking, Jaccard cache) for this
|
|
870
870
|
* invocation. The REACH priority function uses `jaccard(context.graph, ...)`
|
|
@@ -873,9 +873,9 @@ function reach(graph, seeds, config) {
|
|
|
873
873
|
* deferred). This export establishes the async API surface.
|
|
874
874
|
*
|
|
875
875
|
* @param graph - Async source graph
|
|
876
|
-
* @param seeds - Seed nodes for
|
|
876
|
+
* @param seeds - Seed nodes for exploration
|
|
877
877
|
* @param config - Expansion and async runner configuration
|
|
878
|
-
* @returns Promise resolving to the
|
|
878
|
+
* @returns Promise resolving to the exploration result
|
|
879
879
|
*/
|
|
880
880
|
async function reachAsync(graph, seeds, config) {
|
|
881
881
|
let inPhase2 = false;
|
|
@@ -898,19 +898,19 @@ async function reachAsync(graph, seeds, config) {
|
|
|
898
898
|
});
|
|
899
899
|
}
|
|
900
900
|
//#endregion
|
|
901
|
-
//#region src/
|
|
901
|
+
//#region src/exploration/maze.ts
|
|
902
902
|
/** Default threshold for switching to phase 2 (after M paths) */
|
|
903
903
|
var DEFAULT_PHASE2_THRESHOLD = 1;
|
|
904
904
|
/** Salience weighting factor */
|
|
905
905
|
var SALIENCE_WEIGHT = 1e3;
|
|
906
906
|
/**
|
|
907
|
-
* Run MAZE
|
|
907
|
+
* Run MAZE exploration algorithm.
|
|
908
908
|
*
|
|
909
|
-
* Multi-phase
|
|
909
|
+
* Multi-phase exploration combining path potential and salience with
|
|
910
910
|
* adaptive frontier steering.
|
|
911
911
|
*
|
|
912
912
|
* @param graph - Source graph
|
|
913
|
-
* @param seeds - Seed nodes for
|
|
913
|
+
* @param seeds - Seed nodes for exploration
|
|
914
914
|
* @param config - Expansion configuration
|
|
915
915
|
* @returns Expansion result with discovered paths
|
|
916
916
|
*/
|
|
@@ -944,7 +944,7 @@ function maze(graph, seeds, config) {
|
|
|
944
944
|
});
|
|
945
945
|
}
|
|
946
946
|
/**
|
|
947
|
-
* Run MAZE
|
|
947
|
+
* Run MAZE exploration asynchronously.
|
|
948
948
|
*
|
|
949
949
|
* Creates fresh closure state (salienceCounts, phase tracking) for this
|
|
950
950
|
* invocation. The MAZE priority function accesses `context.graph` to
|
|
@@ -953,9 +953,9 @@ function maze(graph, seeds, config) {
|
|
|
953
953
|
* This export establishes the async API surface.
|
|
954
954
|
*
|
|
955
955
|
* @param graph - Async source graph
|
|
956
|
-
* @param seeds - Seed nodes for
|
|
956
|
+
* @param seeds - Seed nodes for exploration
|
|
957
957
|
* @param config - Expansion and async runner configuration
|
|
958
|
-
* @returns Promise resolving to the
|
|
958
|
+
* @returns Promise resolving to the exploration result
|
|
959
959
|
*/
|
|
960
960
|
async function mazeAsync(graph, seeds, config) {
|
|
961
961
|
const salienceCounts = /* @__PURE__ */ new Map();
|
|
@@ -984,7 +984,7 @@ async function mazeAsync(graph, seeds, config) {
|
|
|
984
984
|
});
|
|
985
985
|
}
|
|
986
986
|
//#endregion
|
|
987
|
-
//#region src/
|
|
987
|
+
//#region src/exploration/tide.ts
|
|
988
988
|
/**
|
|
989
989
|
* TIDE priority function.
|
|
990
990
|
*
|
|
@@ -998,13 +998,13 @@ function tidePriority(nodeId, context) {
|
|
|
998
998
|
return totalDegree;
|
|
999
999
|
}
|
|
1000
1000
|
/**
|
|
1001
|
-
* Run TIDE
|
|
1001
|
+
* Run TIDE exploration algorithm.
|
|
1002
1002
|
*
|
|
1003
1003
|
* Expands from seeds prioritising low-degree edges first.
|
|
1004
1004
|
* Useful for avoiding hubs and exploring sparse regions.
|
|
1005
1005
|
*
|
|
1006
1006
|
* @param graph - Source graph
|
|
1007
|
-
* @param seeds - Seed nodes for
|
|
1007
|
+
* @param seeds - Seed nodes for exploration
|
|
1008
1008
|
* @param config - Expansion configuration
|
|
1009
1009
|
* @returns Expansion result with discovered paths
|
|
1010
1010
|
*/
|
|
@@ -1015,7 +1015,7 @@ function tide(graph, seeds, config) {
|
|
|
1015
1015
|
});
|
|
1016
1016
|
}
|
|
1017
1017
|
/**
|
|
1018
|
-
* Run TIDE
|
|
1018
|
+
* Run TIDE exploration asynchronously.
|
|
1019
1019
|
*
|
|
1020
1020
|
* Note: the TIDE priority function accesses `context.graph` to retrieve
|
|
1021
1021
|
* neighbour lists and per-neighbour degrees. Full async equivalence
|
|
@@ -1023,9 +1023,9 @@ function tide(graph, seeds, config) {
|
|
|
1023
1023
|
* establishes the async API surface.
|
|
1024
1024
|
*
|
|
1025
1025
|
* @param graph - Async source graph
|
|
1026
|
-
* @param seeds - Seed nodes for
|
|
1026
|
+
* @param seeds - Seed nodes for exploration
|
|
1027
1027
|
* @param config - Expansion and async runner configuration
|
|
1028
|
-
* @returns Promise resolving to the
|
|
1028
|
+
* @returns Promise resolving to the exploration result
|
|
1029
1029
|
*/
|
|
1030
1030
|
async function tideAsync(graph, seeds, config) {
|
|
1031
1031
|
return baseAsync(graph, seeds, {
|
|
@@ -1034,7 +1034,7 @@ async function tideAsync(graph, seeds, config) {
|
|
|
1034
1034
|
});
|
|
1035
1035
|
}
|
|
1036
1036
|
//#endregion
|
|
1037
|
-
//#region src/
|
|
1037
|
+
//#region src/exploration/lace.ts
|
|
1038
1038
|
/**
|
|
1039
1039
|
* LACE priority function.
|
|
1040
1040
|
*
|
|
@@ -1045,13 +1045,13 @@ function lacePriority(nodeId, context, mi) {
|
|
|
1045
1045
|
return 1 - avgFrontierMI(context.graph, nodeId, context, mi);
|
|
1046
1046
|
}
|
|
1047
1047
|
/**
|
|
1048
|
-
* Run LACE
|
|
1048
|
+
* Run LACE exploration algorithm.
|
|
1049
1049
|
*
|
|
1050
1050
|
* Expands from seeds prioritising high-MI edges.
|
|
1051
1051
|
* Useful for finding paths with strong semantic associations.
|
|
1052
1052
|
*
|
|
1053
1053
|
* @param graph - Source graph
|
|
1054
|
-
* @param seeds - Seed nodes for
|
|
1054
|
+
* @param seeds - Seed nodes for exploration
|
|
1055
1055
|
* @param config - Expansion configuration with MI function
|
|
1056
1056
|
* @returns Expansion result with discovered paths
|
|
1057
1057
|
*/
|
|
@@ -1064,7 +1064,7 @@ function lace(graph, seeds, config) {
|
|
|
1064
1064
|
});
|
|
1065
1065
|
}
|
|
1066
1066
|
/**
|
|
1067
|
-
* Run LACE
|
|
1067
|
+
* Run LACE exploration asynchronously.
|
|
1068
1068
|
*
|
|
1069
1069
|
* Note: the LACE priority function accesses `context.graph` via
|
|
1070
1070
|
* `avgFrontierMI`. Full async equivalence requires PriorityContext
|
|
@@ -1072,9 +1072,9 @@ function lace(graph, seeds, config) {
|
|
|
1072
1072
|
* API surface.
|
|
1073
1073
|
*
|
|
1074
1074
|
* @param graph - Async source graph
|
|
1075
|
-
* @param seeds - Seed nodes for
|
|
1075
|
+
* @param seeds - Seed nodes for exploration
|
|
1076
1076
|
* @param config - LACE configuration combined with async runner options
|
|
1077
|
-
* @returns Promise resolving to the
|
|
1077
|
+
* @returns Promise resolving to the exploration result
|
|
1078
1078
|
*/
|
|
1079
1079
|
async function laceAsync(graph, seeds, config) {
|
|
1080
1080
|
const { mi = jaccard, ...restConfig } = config ?? {};
|
|
@@ -1085,7 +1085,7 @@ async function laceAsync(graph, seeds, config) {
|
|
|
1085
1085
|
});
|
|
1086
1086
|
}
|
|
1087
1087
|
/**
|
|
1088
|
-
* Batch priority function for LACE
|
|
1088
|
+
* Batch priority function for LACE exploration.
|
|
1089
1089
|
*
|
|
1090
1090
|
* Computes average MI between each candidate and all nodes visited by the
|
|
1091
1091
|
* same frontier in a single batch operation. More efficient than computing
|
|
@@ -1118,7 +1118,7 @@ function laceWithBatchPriority(config) {
|
|
|
1118
1118
|
};
|
|
1119
1119
|
}
|
|
1120
1120
|
//#endregion
|
|
1121
|
-
//#region src/
|
|
1121
|
+
//#region src/exploration/warp.ts
|
|
1122
1122
|
/**
|
|
1123
1123
|
* WARP priority function.
|
|
1124
1124
|
*
|
|
@@ -1133,13 +1133,13 @@ function warpPriority(nodeId, context) {
|
|
|
1133
1133
|
return 1 / (1 + bridgeScore);
|
|
1134
1134
|
}
|
|
1135
1135
|
/**
|
|
1136
|
-
* Run WARP
|
|
1136
|
+
* Run WARP exploration algorithm.
|
|
1137
1137
|
*
|
|
1138
1138
|
* Expands from seeds prioritising bridge nodes.
|
|
1139
1139
|
* Useful for finding paths through structurally important nodes.
|
|
1140
1140
|
*
|
|
1141
1141
|
* @param graph - Source graph
|
|
1142
|
-
* @param seeds - Seed nodes for
|
|
1142
|
+
* @param seeds - Seed nodes for exploration
|
|
1143
1143
|
* @param config - Expansion configuration
|
|
1144
1144
|
* @returns Expansion result with discovered paths
|
|
1145
1145
|
*/
|
|
@@ -1150,7 +1150,7 @@ function warp(graph, seeds, config) {
|
|
|
1150
1150
|
});
|
|
1151
1151
|
}
|
|
1152
1152
|
/**
|
|
1153
|
-
* Run WARP
|
|
1153
|
+
* Run WARP exploration asynchronously.
|
|
1154
1154
|
*
|
|
1155
1155
|
* Note: the WARP priority function accesses `context.graph` via
|
|
1156
1156
|
* `countCrossFrontierNeighbours`. Full async equivalence requires
|
|
@@ -1158,9 +1158,9 @@ function warp(graph, seeds, config) {
|
|
|
1158
1158
|
* establishes the async API surface.
|
|
1159
1159
|
*
|
|
1160
1160
|
* @param graph - Async source graph
|
|
1161
|
-
* @param seeds - Seed nodes for
|
|
1161
|
+
* @param seeds - Seed nodes for exploration
|
|
1162
1162
|
* @param config - Expansion and async runner configuration
|
|
1163
|
-
* @returns Promise resolving to the
|
|
1163
|
+
* @returns Promise resolving to the exploration result
|
|
1164
1164
|
*/
|
|
1165
1165
|
async function warpAsync(graph, seeds, config) {
|
|
1166
1166
|
return baseAsync(graph, seeds, {
|
|
@@ -1169,7 +1169,7 @@ async function warpAsync(graph, seeds, config) {
|
|
|
1169
1169
|
});
|
|
1170
1170
|
}
|
|
1171
1171
|
//#endregion
|
|
1172
|
-
//#region src/
|
|
1172
|
+
//#region src/exploration/fuse.ts
|
|
1173
1173
|
/**
|
|
1174
1174
|
* FUSE priority function.
|
|
1175
1175
|
*
|
|
@@ -1182,13 +1182,13 @@ function fusePriority(nodeId, context, mi, salienceWeight) {
|
|
|
1182
1182
|
return (1 - salienceWeight) * context.degree + salienceWeight * (1 - avgSalience);
|
|
1183
1183
|
}
|
|
1184
1184
|
/**
|
|
1185
|
-
* Run FUSE
|
|
1185
|
+
* Run FUSE exploration algorithm.
|
|
1186
1186
|
*
|
|
1187
1187
|
* Combines structural exploration with semantic salience.
|
|
1188
1188
|
* Useful for finding paths that are both short and semantically meaningful.
|
|
1189
1189
|
*
|
|
1190
1190
|
* @param graph - Source graph
|
|
1191
|
-
* @param seeds - Seed nodes for
|
|
1191
|
+
* @param seeds - Seed nodes for exploration
|
|
1192
1192
|
* @param config - Expansion configuration with MI function
|
|
1193
1193
|
* @returns Expansion result with discovered paths
|
|
1194
1194
|
*/
|
|
@@ -1201,7 +1201,7 @@ function fuse(graph, seeds, config) {
|
|
|
1201
1201
|
});
|
|
1202
1202
|
}
|
|
1203
1203
|
/**
|
|
1204
|
-
* Run FUSE
|
|
1204
|
+
* Run FUSE exploration asynchronously.
|
|
1205
1205
|
*
|
|
1206
1206
|
* Note: the FUSE priority function accesses `context.graph` via
|
|
1207
1207
|
* `avgFrontierMI`. Full async equivalence requires PriorityContext
|
|
@@ -1209,9 +1209,9 @@ function fuse(graph, seeds, config) {
|
|
|
1209
1209
|
* API surface.
|
|
1210
1210
|
*
|
|
1211
1211
|
* @param graph - Async source graph
|
|
1212
|
-
* @param seeds - Seed nodes for
|
|
1212
|
+
* @param seeds - Seed nodes for exploration
|
|
1213
1213
|
* @param config - FUSE configuration combined with async runner options
|
|
1214
|
-
* @returns Promise resolving to the
|
|
1214
|
+
* @returns Promise resolving to the exploration result
|
|
1215
1215
|
*/
|
|
1216
1216
|
async function fuseAsync(graph, seeds, config) {
|
|
1217
1217
|
const { mi = jaccard, salienceWeight = .5, ...restConfig } = config ?? {};
|
|
@@ -1262,7 +1262,7 @@ function fuseWithBatchPriority(config) {
|
|
|
1262
1262
|
};
|
|
1263
1263
|
}
|
|
1264
1264
|
//#endregion
|
|
1265
|
-
//#region src/
|
|
1265
|
+
//#region src/exploration/sift.ts
|
|
1266
1266
|
/**
|
|
1267
1267
|
* REACH (SIFT) priority function.
|
|
1268
1268
|
*
|
|
@@ -1275,13 +1275,13 @@ function siftPriority(nodeId, context, mi, miThreshold) {
|
|
|
1275
1275
|
else return context.degree + 100;
|
|
1276
1276
|
}
|
|
1277
1277
|
/**
|
|
1278
|
-
* Run SIFT
|
|
1278
|
+
* Run SIFT exploration algorithm.
|
|
1279
1279
|
*
|
|
1280
|
-
* Two-phase adaptive
|
|
1281
|
-
* from initial sampling, then uses them for guided
|
|
1280
|
+
* Two-phase adaptive exploration that learns MI thresholds
|
|
1281
|
+
* from initial sampling, then uses them for guided exploration.
|
|
1282
1282
|
*
|
|
1283
1283
|
* @param graph - Source graph
|
|
1284
|
-
* @param seeds - Seed nodes for
|
|
1284
|
+
* @param seeds - Seed nodes for exploration
|
|
1285
1285
|
* @param config - Expansion configuration
|
|
1286
1286
|
* @returns Expansion result with discovered paths
|
|
1287
1287
|
*/
|
|
@@ -1294,7 +1294,7 @@ function sift(graph, seeds, config) {
|
|
|
1294
1294
|
});
|
|
1295
1295
|
}
|
|
1296
1296
|
/**
|
|
1297
|
-
* Run SIFT
|
|
1297
|
+
* Run SIFT exploration asynchronously.
|
|
1298
1298
|
*
|
|
1299
1299
|
* Note: the SIFT priority function accesses `context.graph` via
|
|
1300
1300
|
* `avgFrontierMI`. Full async equivalence requires PriorityContext
|
|
@@ -1302,9 +1302,9 @@ function sift(graph, seeds, config) {
|
|
|
1302
1302
|
* API surface.
|
|
1303
1303
|
*
|
|
1304
1304
|
* @param graph - Async source graph
|
|
1305
|
-
* @param seeds - Seed nodes for
|
|
1305
|
+
* @param seeds - Seed nodes for exploration
|
|
1306
1306
|
* @param config - SIFT (REACHConfig) configuration combined with async runner options
|
|
1307
|
-
* @returns Promise resolving to the
|
|
1307
|
+
* @returns Promise resolving to the exploration result
|
|
1308
1308
|
*/
|
|
1309
1309
|
async function siftAsync(graph, seeds, config) {
|
|
1310
1310
|
const { mi = jaccard, miThreshold = .25, ...restConfig } = config ?? {};
|
|
@@ -1356,7 +1356,7 @@ function siftWithBatchPriority(config) {
|
|
|
1356
1356
|
};
|
|
1357
1357
|
}
|
|
1358
1358
|
//#endregion
|
|
1359
|
-
//#region src/
|
|
1359
|
+
//#region src/exploration/flux.ts
|
|
1360
1360
|
/**
|
|
1361
1361
|
* Compute local density around a node.
|
|
1362
1362
|
*/
|
|
@@ -1392,14 +1392,14 @@ function fluxPriority(nodeId, context, densityThreshold, bridgeThreshold) {
|
|
|
1392
1392
|
else return degree;
|
|
1393
1393
|
}
|
|
1394
1394
|
/**
|
|
1395
|
-
* Run FLUX
|
|
1395
|
+
* Run FLUX exploration algorithm.
|
|
1396
1396
|
*
|
|
1397
|
-
* Adaptively switches between
|
|
1397
|
+
* Adaptively switches between exploration strategies based on
|
|
1398
1398
|
* local graph structure. Useful for heterogeneous graphs
|
|
1399
1399
|
* with varying density.
|
|
1400
1400
|
*
|
|
1401
1401
|
* @param graph - Source graph
|
|
1402
|
-
* @param seeds - Seed nodes for
|
|
1402
|
+
* @param seeds - Seed nodes for exploration
|
|
1403
1403
|
* @param config - Expansion configuration
|
|
1404
1404
|
* @returns Expansion result with discovered paths
|
|
1405
1405
|
*/
|
|
@@ -1412,7 +1412,7 @@ function flux(graph, seeds, config) {
|
|
|
1412
1412
|
});
|
|
1413
1413
|
}
|
|
1414
1414
|
/**
|
|
1415
|
-
* Run FLUX
|
|
1415
|
+
* Run FLUX exploration asynchronously.
|
|
1416
1416
|
*
|
|
1417
1417
|
* Note: the FLUX priority function accesses `context.graph` to compute
|
|
1418
1418
|
* local density and cross-frontier bridge scores. Full async equivalence
|
|
@@ -1420,9 +1420,9 @@ function flux(graph, seeds, config) {
|
|
|
1420
1420
|
* establishes the async API surface.
|
|
1421
1421
|
*
|
|
1422
1422
|
* @param graph - Async source graph
|
|
1423
|
-
* @param seeds - Seed nodes for
|
|
1423
|
+
* @param seeds - Seed nodes for exploration
|
|
1424
1424
|
* @param config - FLUX (MAZEConfig) configuration combined with async runner options
|
|
1425
|
-
* @returns Promise resolving to the
|
|
1425
|
+
* @returns Promise resolving to the exploration result
|
|
1426
1426
|
*/
|
|
1427
1427
|
async function fluxAsync(graph, seeds, config) {
|
|
1428
1428
|
const { densityThreshold = .5, bridgeThreshold = .3, ...restConfig } = config ?? {};
|
|
@@ -1433,7 +1433,7 @@ async function fluxAsync(graph, seeds, config) {
|
|
|
1433
1433
|
});
|
|
1434
1434
|
}
|
|
1435
1435
|
//#endregion
|
|
1436
|
-
//#region src/
|
|
1436
|
+
//#region src/exploration/standard-bfs.ts
|
|
1437
1437
|
/**
|
|
1438
1438
|
* BFS priority: discovery iteration order (FIFO).
|
|
1439
1439
|
*/
|
|
@@ -1441,10 +1441,10 @@ function bfsPriority(_nodeId, context) {
|
|
|
1441
1441
|
return context.iteration;
|
|
1442
1442
|
}
|
|
1443
1443
|
/**
|
|
1444
|
-
* Run standard BFS
|
|
1444
|
+
* Run standard BFS exploration (FIFO discovery order).
|
|
1445
1445
|
*
|
|
1446
1446
|
* @param graph - Source graph
|
|
1447
|
-
* @param seeds - Seed nodes for
|
|
1447
|
+
* @param seeds - Seed nodes for exploration
|
|
1448
1448
|
* @param config - Expansion configuration
|
|
1449
1449
|
* @returns Expansion result with discovered paths
|
|
1450
1450
|
*/
|
|
@@ -1455,12 +1455,12 @@ function standardBfs(graph, seeds, config) {
|
|
|
1455
1455
|
});
|
|
1456
1456
|
}
|
|
1457
1457
|
/**
|
|
1458
|
-
* Run standard BFS
|
|
1458
|
+
* Run standard BFS exploration asynchronously (FIFO discovery order).
|
|
1459
1459
|
*
|
|
1460
1460
|
* @param graph - Async source graph
|
|
1461
|
-
* @param seeds - Seed nodes for
|
|
1461
|
+
* @param seeds - Seed nodes for exploration
|
|
1462
1462
|
* @param config - Expansion and async runner configuration
|
|
1463
|
-
* @returns Promise resolving to the
|
|
1463
|
+
* @returns Promise resolving to the exploration result
|
|
1464
1464
|
*/
|
|
1465
1465
|
async function standardBfsAsync(graph, seeds, config) {
|
|
1466
1466
|
return baseAsync(graph, seeds, {
|
|
@@ -1469,7 +1469,7 @@ async function standardBfsAsync(graph, seeds, config) {
|
|
|
1469
1469
|
});
|
|
1470
1470
|
}
|
|
1471
1471
|
//#endregion
|
|
1472
|
-
//#region src/
|
|
1472
|
+
//#region src/exploration/frontier-balanced.ts
|
|
1473
1473
|
/**
|
|
1474
1474
|
* Frontier-balanced priority: frontier index dominates, then discovery iteration.
|
|
1475
1475
|
* Scales frontier index by 1e9 to ensure round-robin ordering across frontiers.
|
|
@@ -1478,10 +1478,10 @@ function balancedPriority(_nodeId, context) {
|
|
|
1478
1478
|
return context.frontierIndex * 1e9 + context.iteration;
|
|
1479
1479
|
}
|
|
1480
1480
|
/**
|
|
1481
|
-
* Run frontier-balanced
|
|
1481
|
+
* Run frontier-balanced exploration (round-robin across frontiers).
|
|
1482
1482
|
*
|
|
1483
1483
|
* @param graph - Source graph
|
|
1484
|
-
* @param seeds - Seed nodes for
|
|
1484
|
+
* @param seeds - Seed nodes for exploration
|
|
1485
1485
|
* @param config - Expansion configuration
|
|
1486
1486
|
* @returns Expansion result with discovered paths
|
|
1487
1487
|
*/
|
|
@@ -1492,12 +1492,12 @@ function frontierBalanced(graph, seeds, config) {
|
|
|
1492
1492
|
});
|
|
1493
1493
|
}
|
|
1494
1494
|
/**
|
|
1495
|
-
* Run frontier-balanced
|
|
1495
|
+
* Run frontier-balanced exploration asynchronously (round-robin across frontiers).
|
|
1496
1496
|
*
|
|
1497
1497
|
* @param graph - Async source graph
|
|
1498
|
-
* @param seeds - Seed nodes for
|
|
1498
|
+
* @param seeds - Seed nodes for exploration
|
|
1499
1499
|
* @param config - Expansion and async runner configuration
|
|
1500
|
-
* @returns Promise resolving to the
|
|
1500
|
+
* @returns Promise resolving to the exploration result
|
|
1501
1501
|
*/
|
|
1502
1502
|
async function frontierBalancedAsync(graph, seeds, config) {
|
|
1503
1503
|
return baseAsync(graph, seeds, {
|
|
@@ -1506,7 +1506,7 @@ async function frontierBalancedAsync(graph, seeds, config) {
|
|
|
1506
1506
|
});
|
|
1507
1507
|
}
|
|
1508
1508
|
//#endregion
|
|
1509
|
-
//#region src/
|
|
1509
|
+
//#region src/exploration/random-priority.ts
|
|
1510
1510
|
/**
|
|
1511
1511
|
* Deterministic seeded random number generator.
|
|
1512
1512
|
* Uses FNV-1a-like hash for input → [0, 1] output.
|
|
@@ -1530,10 +1530,10 @@ function makeRandomPriorityFn(seed) {
|
|
|
1530
1530
|
return (nodeId) => seededRandom(nodeId, seed);
|
|
1531
1531
|
}
|
|
1532
1532
|
/**
|
|
1533
|
-
* Run random-priority
|
|
1533
|
+
* Run random-priority exploration (null hypothesis baseline).
|
|
1534
1534
|
*
|
|
1535
1535
|
* @param graph - Source graph
|
|
1536
|
-
* @param seeds - Seed nodes for
|
|
1536
|
+
* @param seeds - Seed nodes for exploration
|
|
1537
1537
|
* @param config - Expansion configuration
|
|
1538
1538
|
* @returns Expansion result with discovered paths
|
|
1539
1539
|
*/
|
|
@@ -1545,12 +1545,12 @@ function randomPriority(graph, seeds, config) {
|
|
|
1545
1545
|
});
|
|
1546
1546
|
}
|
|
1547
1547
|
/**
|
|
1548
|
-
* Run random-priority
|
|
1548
|
+
* Run random-priority exploration asynchronously (null hypothesis baseline).
|
|
1549
1549
|
*
|
|
1550
1550
|
* @param graph - Async source graph
|
|
1551
|
-
* @param seeds - Seed nodes for
|
|
1551
|
+
* @param seeds - Seed nodes for exploration
|
|
1552
1552
|
* @param config - Expansion and async runner configuration
|
|
1553
|
-
* @returns Promise resolving to the
|
|
1553
|
+
* @returns Promise resolving to the exploration result
|
|
1554
1554
|
*/
|
|
1555
1555
|
async function randomPriorityAsync(graph, seeds, config) {
|
|
1556
1556
|
const { seed = 0 } = config ?? {};
|
|
@@ -1560,7 +1560,7 @@ async function randomPriorityAsync(graph, seeds, config) {
|
|
|
1560
1560
|
});
|
|
1561
1561
|
}
|
|
1562
1562
|
//#endregion
|
|
1563
|
-
//#region src/
|
|
1563
|
+
//#region src/exploration/dfs-priority.ts
|
|
1564
1564
|
/**
|
|
1565
1565
|
* DFS priority function: negative iteration produces LIFO ordering.
|
|
1566
1566
|
*
|
|
@@ -1571,14 +1571,14 @@ function dfsPriorityFn(_nodeId, context) {
|
|
|
1571
1571
|
return -context.iteration;
|
|
1572
1572
|
}
|
|
1573
1573
|
/**
|
|
1574
|
-
* Run DFS-priority
|
|
1574
|
+
* Run DFS-priority exploration (LIFO discovery order).
|
|
1575
1575
|
*
|
|
1576
1576
|
* Uses the BASE framework with a negative-iteration priority function,
|
|
1577
1577
|
* which causes the most recently discovered node to be expanded first —
|
|
1578
1578
|
* equivalent to depth-first search behaviour.
|
|
1579
1579
|
*
|
|
1580
1580
|
* @param graph - Source graph
|
|
1581
|
-
* @param seeds - Seed nodes for
|
|
1581
|
+
* @param seeds - Seed nodes for exploration
|
|
1582
1582
|
* @param config - Expansion configuration
|
|
1583
1583
|
* @returns Expansion result with discovered paths
|
|
1584
1584
|
*/
|
|
@@ -1589,12 +1589,12 @@ function dfsPriority(graph, seeds, config) {
|
|
|
1589
1589
|
});
|
|
1590
1590
|
}
|
|
1591
1591
|
/**
|
|
1592
|
-
* Run DFS-priority
|
|
1592
|
+
* Run DFS-priority exploration asynchronously (LIFO discovery order).
|
|
1593
1593
|
*
|
|
1594
1594
|
* @param graph - Async source graph
|
|
1595
|
-
* @param seeds - Seed nodes for
|
|
1595
|
+
* @param seeds - Seed nodes for exploration
|
|
1596
1596
|
* @param config - Expansion and async runner configuration
|
|
1597
|
-
* @returns Promise resolving to the
|
|
1597
|
+
* @returns Promise resolving to the exploration result
|
|
1598
1598
|
*/
|
|
1599
1599
|
async function dfsPriorityAsync(graph, seeds, config) {
|
|
1600
1600
|
return baseAsync(graph, seeds, {
|
|
@@ -1603,16 +1603,16 @@ async function dfsPriorityAsync(graph, seeds, config) {
|
|
|
1603
1603
|
});
|
|
1604
1604
|
}
|
|
1605
1605
|
//#endregion
|
|
1606
|
-
//#region src/
|
|
1606
|
+
//#region src/exploration/k-hop.ts
|
|
1607
1607
|
/**
|
|
1608
|
-
* Run k-hop
|
|
1608
|
+
* Run k-hop exploration (fixed-depth BFS).
|
|
1609
1609
|
*
|
|
1610
1610
|
* Explores all nodes reachable within exactly k hops of any seed using
|
|
1611
1611
|
* breadth-first search. Paths between seeds are detected when a node
|
|
1612
1612
|
* is reached by frontiers from two different seeds.
|
|
1613
1613
|
*
|
|
1614
1614
|
* @param graph - Source graph
|
|
1615
|
-
* @param seeds - Seed nodes for
|
|
1615
|
+
* @param seeds - Seed nodes for exploration
|
|
1616
1616
|
* @param config - K-hop configuration (k defaults to 2)
|
|
1617
1617
|
* @returns Expansion result with discovered paths
|
|
1618
1618
|
*/
|
|
@@ -1766,7 +1766,7 @@ function emptyResult$1(startTime) {
|
|
|
1766
1766
|
};
|
|
1767
1767
|
}
|
|
1768
1768
|
//#endregion
|
|
1769
|
-
//#region src/
|
|
1769
|
+
//#region src/exploration/random-walk.ts
|
|
1770
1770
|
/**
|
|
1771
1771
|
* Mulberry32 seeded PRNG — fast, compact, and high-quality for simulation.
|
|
1772
1772
|
*
|
|
@@ -1786,7 +1786,7 @@ function mulberry32(seed) {
|
|
|
1786
1786
|
};
|
|
1787
1787
|
}
|
|
1788
1788
|
/**
|
|
1789
|
-
* Run random-walk-with-restart
|
|
1789
|
+
* Run random-walk-with-restart exploration.
|
|
1790
1790
|
*
|
|
1791
1791
|
* For each seed, performs `walks` independent random walks of up to
|
|
1792
1792
|
* `walkLength` steps. At each step the walk either restarts (with
|
|
@@ -1796,10 +1796,10 @@ function mulberry32(seed) {
|
|
|
1796
1796
|
* Inter-seed paths are detected when a walk reaches a node that was
|
|
1797
1797
|
* previously reached by a walk originating from a different seed.
|
|
1798
1798
|
* The recorded path contains only the two seed endpoints rather than
|
|
1799
|
-
* the full walk trajectory, consistent with the
|
|
1799
|
+
* the full walk trajectory, consistent with the ExplorationPath contract.
|
|
1800
1800
|
*
|
|
1801
1801
|
* @param graph - Source graph
|
|
1802
|
-
* @param seeds - Seed nodes for
|
|
1802
|
+
* @param seeds - Seed nodes for exploration
|
|
1803
1803
|
* @param config - Random walk configuration
|
|
1804
1804
|
* @returns Expansion result with discovered paths
|
|
1805
1805
|
*/
|
|
@@ -1916,4 +1916,4 @@ function emptyResult(startTime) {
|
|
|
1916
1916
|
//#endregion
|
|
1917
1917
|
export { tide as A, edge as B, fuseWithBatchPriority as C, laceAsync as D, lace as E, reachAsync as F, domeAsync as G, hae as H, sage as I, base as J, domeHighDegree as K, sageAsync as L, maze as M, mazeAsync as N, laceBatchPriority as O, reach as P, pipe as R, fuseBatchPriority as S, warpAsync as T, haeAsync as U, edgeAsync as V, dome as W, baseAsync as Y, siftBatchPriority as _, dfsPriorityFn as a, fuse as b, frontierBalanced as c, standardBfsAsync as d, flux as f, siftAsync as g, sift as h, dfsPriorityAsync as i, tideAsync as j, laceWithBatchPriority as k, frontierBalancedAsync as l, createSiftBatchPriority as m, kHop as n, randomPriority as o, fluxAsync as p, domeHighDegreeAsync as q, dfsPriority as r, randomPriorityAsync as s, randomWalk as t, standardBfs as u, siftWithBatchPriority as v, warp as w, fuseAsync as x, createFuseBatchPriority as y, pipeAsync as z };
|
|
1918
1918
|
|
|
1919
|
-
//# sourceMappingURL=
|
|
1919
|
+
//# sourceMappingURL=exploration-DKjRNxS5.js.map
|