Expand description
The cp_sat
crate provides an interface to Google CP
SAT.
§OR-Tools installation
For cp_sat
to work, you need to have a working OR-Tools
installation. By default, this crate will use the default C++
compiler, and add /opt/ortools
in the search path. If you want
to provide your OR-Tools installation directory, you can define
the ORTOOL_PREFIX
environment variable.
§Brief overview
The builder::CpModelBuilder provides an easy interface to construct your problem. You can then solve and access to the solver response easily. Here you can find the translation of the first tutorial in the official documentation of CP SAT:
use cp_sat::builder::CpModelBuilder;
use cp_sat::proto::CpSolverStatus;
fn main() {
let mut model = CpModelBuilder::default();
let x = model.new_int_var_with_name([(0, 2)], "x");
let y = model.new_int_var_with_name([(0, 2)], "y");
let z = model.new_int_var_with_name([(0, 2)], "z");
model.add_ne(x, y);
let response = model.solve();
println!(
"{}",
cp_sat::ffi::cp_solver_response_stats(&response, false)
);
if response.status() == CpSolverStatus::Optimal {
println!("x = {}", x.solution_value(&response));
println!("y = {}", y.solution_value(&response));
println!("z = {}", z.solution_value(&response));
}
}
Re-exports§
pub use prost;