Expand description
A generalized CSP (Constraint Satisfaction Problem) solver.
Isomorphic to the Python CSP solver. Supports:
- Backtracking search with configurable pruning and variable ordering
- AC-3 (Maintaining Arc Consistency) propagation
- Forward checking
- AC-FC hybrid
- Conflict-directed backjumping
- Lattice domains for monotonic fixed-point propagation
Re-exports§
pub use builder::assignment::AssignmentBuilder;pub use builder::assignment::AssignmentError;pub use builder::assignment::AssignmentSolution;pub use builder::assignment::SENTINEL;pub use builder::assignment::assignment;pub use puzzles::sudoku;
Modules§
- adjacency
- Pre-built constraint dependency graph with flat arena storage.
- builder
- Fluent builders for common CSP / COP shapes.
- constraint
- Constraint trait, built-in implementations, and devirtualized dispatch.
- domain
- Domain trait and built-in implementations.
- ordering
- Variable ordering heuristics.
- puzzles
- Domain-specific puzzle modules.
- solver
- Solver dispatch: AC-3 propagation, forward checking, backtracking search.
- variable
- CSP variable with domain tracking and pruned-value undo log.
Structs§
- Csp
- The main CSP solver struct.
- Solve
Config - Solve configuration, isomorphic to Python’s CSP constructor arguments.
- Solve
Stats - Solver statistics.
- Unsatisfiable
- Error type for unsatisfiable constraints.
Enums§
- Optimization
Mode - Optimization mode for the solver.
- Propagation
Strategy - Propagation strategy for
propagate_with(). - Pruning
- Pruning strategy for backtracking search.