/** * @file src/tableau/incremental-branch-and-cut.ts * @description Optimized branch-and-cut with incremental state management * * Key optimization: Instead of always restoring to root and reapplying all cuts, * this implementation uses checkpoints to restore to parent state and apply * only the new cut. For depth-first traversal, this reduces cut applications * from O(depth) to O(1) per node. * * Memory trade-off: Stores one checkpoint per active path in the B&B tree. * For depth D, this is O(D) checkpoints vs O(1) for the basic implementation. */ import type Tableau from "./tableau"; import type { BranchCut } from "./types"; export interface IncrementalBranchAndCutService { applyCuts(tableau: Tableau, branchingCuts: BranchCut[]): void; branchAndCut(tableau: Tableau): void; } export interface IncrementalBranchAndCutOptions { nodeSelection?: "best-first" | "depth-first" | "hybrid"; branching?: "most-fractional" | "pseudocost" | "strong"; maxCheckpoints?: number; } export declare function createIncrementalBranchAndCutService(options?: IncrementalBranchAndCutOptions): IncrementalBranchAndCutService;