Struct vrp_core::solver::Solver [−][src]
Expand description
A Vehicle Routing Problem Solver based on evolutionary algorithm.
Fields
problem: Arc<Problem>A VRP problem definition.
config: EvolutionConfigAn evolution configuration.
Implementations
Solves a Vehicle Routing Problem and returns a (solution, its cost) pair in case of success or error description, if solution cannot be found.
Examples
The most simple way to run solver is to use Builder
which has preconfigured settings:
use vrp_core::solver::Builder;
use vrp_core::models::Problem;
use vrp_core::utils::Environment;
// create your VRP problem
let problem: Arc<Problem> = create_example_problem();
let environment = Arc::new(Environment::default());
// build solver using builder with default settings
let solver = Builder::new(problem, environment).build()?;
// run solver and get the best known solution within its cost.
let (solution, cost, _) = solver.solve()?;
assert_eq!(cost, 42.);
assert_eq!(solution.routes.len(), 1);
assert_eq!(solution.unassigned.len(), 0);