Skip to main content

problemreductions/solvers/
mod.rs

1//! Solvers for computational problems.
2
3mod brute_force;
4pub mod customized;
5pub mod decision_search;
6
7#[cfg(feature = "ilp-solver")]
8pub mod ilp;
9
10pub use brute_force::BruteForce;
11pub use customized::CustomizedSolver;
12
13#[cfg(feature = "ilp-solver")]
14pub use ilp::ILPSolver;
15
16use crate::traits::Problem;
17
18/// Trait for problem solvers.
19pub trait Solver {
20    /// Solve a problem to its aggregate value.
21    fn solve<P>(&self, problem: &P) -> P::Value
22    where
23        P: Problem,
24        P::Value: crate::types::Aggregate;
25}