Trait vrp_core::construction::enablers::RouteIntervals
source · pub trait RouteIntervals {
// Required methods
fn is_marker_job(&self, job: &Job) -> bool;
fn is_marker_assignable(&self, route: &Route, job: &Job) -> bool;
fn is_new_interval_needed(&self, route_ctx: &RouteContext) -> bool;
fn get_marker_intervals<'a>(
&self,
route_ctx: &'a RouteContext
) -> Option<&'a Vec<(usize, usize)>>;
fn get_interval_key(&self) -> Option<StateKey>;
fn update_solution_intervals(&self, solution_ctx: &mut SolutionContext);
}
Expand description
This trait defines a logic to split route into logical intervals by marker jobs.
Required Methods§
sourcefn is_marker_job(&self, job: &Job) -> bool
fn is_marker_job(&self, job: &Job) -> bool
Returns true if job is considered as a route interval marker.
sourcefn is_marker_assignable(&self, route: &Route, job: &Job) -> bool
fn is_marker_assignable(&self, route: &Route, job: &Job) -> bool
Returns true if given job is a marker job and can be used with given route.
sourcefn is_new_interval_needed(&self, route_ctx: &RouteContext) -> bool
fn is_new_interval_needed(&self, route_ctx: &RouteContext) -> bool
Checks whether vehicle can do a new route interval.
sourcefn get_marker_intervals<'a>(
&self,
route_ctx: &'a RouteContext
) -> Option<&'a Vec<(usize, usize)>>
fn get_marker_intervals<'a>( &self, route_ctx: &'a RouteContext ) -> Option<&'a Vec<(usize, usize)>>
Gets route intervals split by marker jobs.
sourcefn get_interval_key(&self) -> Option<StateKey>
fn get_interval_key(&self) -> Option<StateKey>
Gets interval state key if present.
sourcefn update_solution_intervals(&self, solution_ctx: &mut SolutionContext)
fn update_solution_intervals(&self, solution_ctx: &mut SolutionContext)
Update route intervals on solution level.