Struct vrp_core::solver::Solver [−][src]
Expand description
A Vehicle Routing Problem Solver based on evolutionary algorithm.
Fields
problem: Arc<Problem>Expand description
A VRP problem definition.
config: EvolutionConfigExpand description
An evolution configuration.
Implementations
impl Solver[src]
impl Solver[src]pub fn solve(self) -> Result<(Solution, Cost, Option<Metrics>), String>[src]
pub fn solve(self) -> Result<(Solution, Cost, Option<Metrics>), String>[src]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);
Auto Trait Implementations
impl !RefUnwindSafe for Solver
impl !Send for Solver
impl !Sync for Solver
impl Unpin for Solver
impl !UnwindSafe for Solver
Blanket Implementations
impl<T> BorrowMut<T> for T where
T: ?Sized, [src]
impl<T> BorrowMut<T> for T where
T: ?Sized, [src]pub fn borrow_mut(&mut self) -> &mut T[src]
pub fn borrow_mut(&mut self) -> &mut T[src]Mutably borrows from an owned value. Read more
impl<T> Pointable for T
impl<T> Pointable for Timpl<V, T> VZip<V> for T where
V: MultiLane<T>,
impl<V, T> VZip<V> for T where
V: MultiLane<T>,