import { FrontierState } from '../../frontier-state.js'; import { OverlapDetectionStrategy } from './overlap-detection-strategy.js'; /** * Configuration for SphereIntersectionStrategy. */ export interface SphereIntersectionConfig { /** * Maximum distance from seed for overlap detection. * Default: Infinity (no limit) */ maxDistance?: number; } /** * Sphere Intersection Overlap Detection Strategy * * Detects overlap when a node falls within another frontier's search radius. * This strategy models each frontier as an N-dimensional sphere expanding * from its seed, where radius = maximum distance of any visited node. * * **Algorithm**: Track the distance from seed for each visited node. When * adding a node, check if its distance from the active frontier's seed is * within another frontier's current radius: * * ``` * overlap if: distance(targetId, seedA) <= radius_of_frontier_B * ``` * * **Complexity**: O(N) per node added where N = number of frontiers * * **Thesis Alignment**: This strategy models the geometric intuition of * "search regions meeting" in N-dimensional space, providing early * termination based on spatial proximity rather than physical node sharing. */ export declare class SphereIntersectionStrategy implements OverlapDetectionStrategy { /** Strategy identifier for naming SUT variants */ readonly id = "sphere-intersection"; /** Maximum distance for overlap detection */ private readonly maxDistance; /** * Create a SphereIntersection strategy. * * @param config - Strategy configuration */ constructor(config?: SphereIntersectionConfig); /** * Check if adding this node creates overlap with other frontiers. * * Checks if the node's distance from the active seed is within any * other frontier's current radius. * * @param targetId - Node being added to active frontier * @param activeFrontier - The frontier that is expanding * @param allFrontiers - All frontiers in the expansion * @param _nodeToFrontierIndex - O(1) map (unused, we use distance tracking) * @returns Array of frontier indices that overlap with active frontier */ detectOverlap(targetId: string, activeFrontier: FrontierState, allFrontiers: FrontierState[], _nodeToFrontierIndex: Map): number[]; /** * Calculate the current radius of a frontier. * * Radius = maximum distance of any visited node from the seed. * * @param nodeDistances - Map of node IDs to distances from seed * @returns Current frontier radius * @private */ private calculateFrontierRadius; } //# sourceMappingURL=sphere-intersection.strategy.d.ts.map