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

pub trait ConstraintModule {
    fn accept_insertion(
        &self,
        solution_ctx: &mut SolutionContext,
        route_index: usize,
        job: &Job
    );
fn accept_route_state(&self, ctx: &mut RouteContext);
fn accept_solution_state(&self, ctx: &mut SolutionContext);
fn state_keys(&self) -> Iter<'_, i32>;
fn get_constraints(&self) -> Iter<'_, ConstraintVariant>; }
Expand description

Represents a constraint module which can be added to constraint pipeline.

Required methods

fn accept_insertion(
    &self,
    solution_ctx: &mut SolutionContext,
    route_index: usize,
    job: &Job
)
[src]

Expand description

Accept insertion of specific job into the route. Called once job has been inserted into solution represented via solution_ctx. Target route is defined by route_index which refers to routes collection in solution context. Inserted job is job. This method should call accept_route_state internally.

fn accept_route_state(&self, ctx: &mut RouteContext)[src]

Expand description

Accept route and updates its state to allow more efficient constraint checks.

fn accept_solution_state(&self, ctx: &mut SolutionContext)[src]

Expand description

Accepts insertion solution context allowing to update job insertion data. This method called twice: before insertion of all jobs starts and when it ends. Please note, that it is important to update only stale routes as this allows to avoid updating non changed route states.

fn state_keys(&self) -> Iter<'_, i32>[src]

Expand description

Returns unique constraint state keys. Used to avoid state key interference.

fn get_constraints(&self) -> Iter<'_, ConstraintVariant>[src]

Expand description

Returns list of constraints to be used.

Loading content...

Implementors

impl ConstraintModule for AreaModule[src]

fn accept_insertion(
    &self,
    _solution_ctx: &mut SolutionContext,
    _route_index: usize,
    _job: &Job
)
[src]

fn accept_route_state(&self, _ctx: &mut RouteContext)[src]

fn accept_solution_state(&self, _ctx: &mut SolutionContext)[src]

fn state_keys(&self) -> Iter<'_, i32>[src]

fn get_constraints(&self) -> Iter<'_, ConstraintVariant>[src]

impl ConstraintModule for ConditionalJobModule[src]

fn accept_insertion(
    &self,
    solution_ctx: &mut SolutionContext,
    route_index: usize,
    _job: &Job
)
[src]

fn accept_route_state(&self, _ctx: &mut RouteContext)[src]

fn accept_solution_state(&self, solution_ctx: &mut SolutionContext)[src]

fn state_keys(&self) -> Iter<'_, i32>[src]

fn get_constraints(&self) -> Iter<'_, ConstraintVariant>[src]

impl ConstraintModule for FleetUsageConstraintModule[src]

fn accept_insertion(
    &self,
    _solution_ctx: &mut SolutionContext,
    _route_index: usize,
    _job: &Job
)
[src]

fn accept_route_state(&self, _ctx: &mut RouteContext)[src]

fn accept_solution_state(&self, _ctx: &mut SolutionContext)[src]

fn state_keys(&self) -> Iter<'_, i32>[src]

fn get_constraints(&self) -> Iter<'_, ConstraintVariant>[src]

impl ConstraintModule for StrictLockingModule[src]

fn accept_insertion(
    &self,
    _solution_ctx: &mut SolutionContext,
    _route_index: usize,
    _job: &Job
)
[src]

fn accept_route_state(&self, _ctx: &mut RouteContext)[src]

fn accept_solution_state(&self, _ctx: &mut SolutionContext)[src]

fn state_keys(&self) -> Iter<'_, i32>[src]

fn get_constraints(&self) -> Iter<'_, ConstraintVariant>[src]

impl ConstraintModule for TourSizeModule[src]

impl ConstraintModule for TransportConstraintModule[src]

fn accept_insertion(
    &self,
    solution_ctx: &mut SolutionContext,
    route_index: usize,
    _job: &Job
)
[src]

fn accept_route_state(&self, ctx: &mut RouteContext)[src]

fn accept_solution_state(&self, ctx: &mut SolutionContext)[src]

fn state_keys(&self) -> Iter<'_, i32>[src]

fn get_constraints(&self) -> Iter<'_, ConstraintVariant>[src]

impl<T: Load + Add<Output = T> + Sub<Output = T> + 'static> ConstraintModule for CapacityConstraintModule<T>[src]

fn accept_insertion(
    &self,
    solution_ctx: &mut SolutionContext,
    route_index: usize,
    job: &Job
)
[src]

fn accept_route_state(&self, ctx: &mut RouteContext)[src]

fn accept_solution_state(&self, ctx: &mut SolutionContext)[src]

fn state_keys(&self) -> Iter<'_, i32>[src]

fn get_constraints(&self) -> Iter<'_, ConstraintVariant>[src]

Loading content...