pub struct SolverConfig {Show 18 fields
pub timeout_ms: u64,
pub parallel: bool,
pub num_threads: usize,
pub proof: bool,
pub model: bool,
pub theory_mode: TheoryMode,
pub simplify: bool,
pub max_conflicts: u64,
pub max_decisions: u64,
pub restart_strategy: RestartStrategy,
pub enable_clause_minimization: bool,
pub enable_clause_subsumption: bool,
pub enable_variable_elimination: bool,
pub variable_elimination_limit: usize,
pub enable_blocked_clause_elimination: bool,
pub enable_symmetry_breaking: bool,
pub enable_inprocessing: bool,
pub inprocessing_interval: u64,
}Expand description
Solver configuration
Fields§
§timeout_ms: u64Timeout in milliseconds (0 = no timeout)
parallel: boolEnable parallel solving
num_threads: usizeNumber of threads for parallel solving
proof: boolEnable proof generation
model: boolEnable model generation
theory_mode: TheoryModeTheory checking mode
simplify: boolEnable preprocessing/simplification
max_conflicts: u64Maximum number of conflicts before giving up (0 = unlimited)
max_decisions: u64Maximum number of decisions before giving up (0 = unlimited)
restart_strategy: RestartStrategyRestart strategy for SAT solver
enable_clause_minimization: boolEnable clause minimization (recursive minimization of learned clauses)
enable_clause_subsumption: boolEnable learned clause subsumption
enable_variable_elimination: boolEnable variable elimination during preprocessing
variable_elimination_limit: usizeVariable elimination limit (max clauses to produce)
enable_blocked_clause_elimination: boolEnable blocked clause elimination during preprocessing
enable_symmetry_breaking: boolEnable symmetry breaking predicates
enable_inprocessing: boolEnable inprocessing (periodic preprocessing during search)
inprocessing_interval: u64Inprocessing interval (number of conflicts between inprocessing)
Implementations§
Source§impl SolverConfig
impl SolverConfig
Sourcepub fn fast() -> Self
pub fn fast() -> Self
Create a configuration optimized for speed (minimal preprocessing) Best for easy problems or when quick results are needed
Sourcepub fn balanced() -> Self
pub fn balanced() -> Self
Create a balanced configuration (default) Good balance between preprocessing and solving speed
Sourcepub fn thorough() -> Self
pub fn thorough() -> Self
Create a configuration optimized for hard problems Uses aggressive preprocessing and symmetry breaking
Sourcepub fn minimal() -> Self
pub fn minimal() -> Self
Create a minimal configuration (almost all features disabled) Useful for debugging or when you want full control
Sourcepub fn with_proof(self) -> Self
pub fn with_proof(self) -> Self
Enable proof generation
Sourcepub fn with_timeout(self, timeout_ms: u64) -> Self
pub fn with_timeout(self, timeout_ms: u64) -> Self
Set timeout in milliseconds
Sourcepub fn with_max_conflicts(self, max_conflicts: u64) -> Self
pub fn with_max_conflicts(self, max_conflicts: u64) -> Self
Set maximum number of conflicts
Sourcepub fn with_max_decisions(self, max_decisions: u64) -> Self
pub fn with_max_decisions(self, max_decisions: u64) -> Self
Set maximum number of decisions
Sourcepub fn with_parallel(self, num_threads: usize) -> Self
pub fn with_parallel(self, num_threads: usize) -> Self
Enable parallel solving
Sourcepub fn with_restart_strategy(self, strategy: RestartStrategy) -> Self
pub fn with_restart_strategy(self, strategy: RestartStrategy) -> Self
Set restart strategy
Sourcepub fn with_theory_mode(self, mode: TheoryMode) -> Self
pub fn with_theory_mode(self, mode: TheoryMode) -> Self
Set theory mode
Trait Implementations§
Source§impl Clone for SolverConfig
impl Clone for SolverConfig
Source§fn clone(&self) -> SolverConfig
fn clone(&self) -> SolverConfig
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for SolverConfig
impl Debug for SolverConfig
Auto Trait Implementations§
impl Freeze for SolverConfig
impl RefUnwindSafe for SolverConfig
impl Send for SolverConfig
impl Sync for SolverConfig
impl Unpin for SolverConfig
impl UnwindSafe for SolverConfig
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more