[][src]Trait vrp_core::construction::constraints::MultiTrip

pub trait MultiTrip<T: Load + Add<Output = T> + Sub<Output = T> + 'static> {
    fn is_reload_job(&self, job: &Job) -> bool;
fn is_reload_single(&self, single: &Single) -> bool;
fn is_assignable(&self, route: &Route, job: &Job) -> bool;
fn is_reload_needed(&self, current: &T, max_capacity: &T) -> bool;
fn has_reloads(&self, route_ctx: &RouteContext) -> bool;
fn get_reload<'a>(&self, activity: &'a Activity) -> Option<&'a Arc<Single>>;
fn get_reloads<'a>(
        &'a self,
        route: &'a Route,
        jobs: &'a [Job]
    ) -> Box<dyn Iterator<Item = Job> + Send + Sync + 'a>; }

This trait defines multi-trip strategy.

Required methods

fn is_reload_job(&self, job: &Job) -> bool

Returns true if job is reload.

fn is_reload_single(&self, single: &Single) -> bool

Returns true if single job is reload.

fn is_assignable(&self, route: &Route, job: &Job) -> bool

Returns true if given job is reload and can be used with given route.

fn is_reload_needed(&self, current: &T, max_capacity: &T) -> bool

Returns true when current capacity is close max_capacity.

fn has_reloads(&self, route_ctx: &RouteContext) -> bool

Returns true if route context has reloads.

fn get_reload<'a>(&self, activity: &'a Activity) -> Option<&'a Arc<Single>>

Returns reload job from activity or None.

fn get_reloads<'a>(
    &'a self,
    route: &'a Route,
    jobs: &'a [Job]
) -> Box<dyn Iterator<Item = Job> + Send + Sync + 'a>

Gets all reloads for specific route from jobs collection.

Loading content...

Implementors

Loading content...