Skip to main content

solverforge_solver/phase/partitioned/
mod.rs

1//! Partitioned search phase for parallel solving.
2//!
3//! Partitioned search splits a large problem into independent sub-problems
4//! (partitions) that can be solved in parallel, then merges the results.
5//!
6//! # Usage
7//!
8//! 1. Define a partitioner that knows how to split and merge your solution type
9//! 2. Create a partitioned search phase with child phases
10//! 3. The phase will partition the solution, solve each partition, and merge
11//!
12//! # Example
13//!
14//! ```
15//! use solverforge_solver::phase::partitioned::{PartitionedSearchConfig, ThreadCount};
16//!
17//! let config = PartitionedSearchConfig {
18//!     thread_count: ThreadCount::Specific(4),
19//!     log_progress: true,
20//! };
21//! ```
22
23mod child_phases;
24mod config;
25mod partitioner;
26mod phase;
27
28pub use child_phases::ChildPhases;
29pub use config::PartitionedSearchConfig;
30pub use partitioner::{FunctionalPartitioner, SolutionPartitioner, ThreadCount};
31pub use phase::PartitionedSearchPhase;