This crate implements the first deterministic exact fully-dynamic minimum cut algorithm with subpolynomial update time, based on arxiv:2512.13105 (December 2024).
┌─────────────────────────────────────────────────────────────────┐
│ MinCutWrapper │
│ ┌─────────────────────────────────────────────────────────────┐ │
│ │ O(log n) Bounded-Range Instances │ │
│ │ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ │ │
│ │ │ [1,1] │ │ [1,1] │ │ [2,2] │ ... │ [λ,1.2λ]│ │ │
│ │ └────┬────┘ └────┬────┘ └────┬────┘ └────┬────┘ │ │
│ │ │ │ │ │ │ │
│ │ ▼ ▼ ▼ ▼ │ │
│ │ ┌──────────────────────────────────────────────────────┐ │ │
│ │ │ ProperCutInstance Trait │ │ │
│ │ │ - apply_inserts(edges) │ │ │
│ │ │ - apply_deletes(edges) │ │ │
│ │ │ - query() -> ValueInRange | AboveRange │ │ │
│ │ └──────────────────────────────────────────────────────┘ │ │
│ └─────────────────────────────────────────────────────────────┘ │
│ │ │
│ ┌───────────────────────────┴───────────────────────────────┐ │
│ │ DynamicConnectivity │ │
│ │ (Union-Find with rebuild on delete) │ │
│ └───────────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────────┐
│ Supporting Components │
├─────────────────────────────────────────────────────────────────┤
│ LocalKCutOracle │ DeterministicLocalKCut │
│ - search(graph, query) │ - BFS exploration │
│ - deterministic │ - Early termination │
├───────────────────────────┼─────────────────────────────────────┤
│ ClusterHierarchy │ FragmentingAlgorithm │
│ - O(log n) levels │ - Connected components │
│ - Recursive decomposition│ - Merge/split handling │
├───────────────────────────┼─────────────────────────────────────┤
│ CutCertificate │ AuditLogger │
│ - Witness tracking │ - Provenance logging │
│ - JSON export │ - Thread-safe │
└───────────────────────────┴─────────────────────────────────────┘
- Manages O(log n) bounded-range instances
- Geometric ranges with factor 1.2
- Lazy instantiation
- Order invariant: inserts before deletes
- Abstract interface for cut maintenance
- Implementations: StubInstance, BoundedInstance
- BFS-based local minimum cut search
- Fully deterministic (no randomness)
- Configurable radius and budget
- Multi-level vertex clustering
- Fast boundary updates on edge changes
- Handles graph disconnection
- Tracks connected components
- Update arrives (insert/delete edge)
- Wrapper buffers the update with timestamp
- On query: a. Check connectivity (fast path for disconnected) b. Process instances in order c. Apply buffered updates (inserts then deletes) d. Query each instance e. Stop at first ValueInRange or end
- Return result with witness
- Range invariant: Instance never sees λ < λ_min during update
- Order invariant: Inserts applied before deletes
- Certificate invariant: Every answer can be verified
- Determinism invariant: Same sequence → same output
- Update: O(n^{o(1)}) amortized
- Query: O(log n) instances × O(n^{o(1)}) per instance
- Space: O(n + m) per instance