[−][src]Trait vrp_core::construction::constraints::ConstraintModule
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
)
&self,
solution_ctx: &mut SolutionContext,
route_index: usize,
job: &Job
)
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)
Accept route and updates its state to allow more efficient constraint checks.
fn accept_solution_state(&self, ctx: &mut SolutionContext)
Accepts insertion solution context allowing to update job insertion data. This method called twice: before insertion of all jobs starts and when it ends.
fn state_keys(&self) -> Iter<'_, i32>
Returns unique constraint state keys. Used to avoid state key interference.
fn get_constraints(&self) -> Iter<'_, ConstraintVariant>
Returns list of constraints to be used.
Implementors
impl ConstraintModule for AreaModule
[src]
fn accept_insertion(
&self,
_solution_ctx: &mut SolutionContext,
_route_index: usize,
_job: &Job
)
[src]
&self,
_solution_ctx: &mut SolutionContext,
_route_index: usize,
_job: &Job
)
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]
&self,
solution_ctx: &mut SolutionContext,
_route_index: usize,
_job: &Job
)
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 FleetUsageConstraintModule
[src]
fn accept_insertion(
&self,
_solution_ctx: &mut SolutionContext,
_route_index: usize,
_job: &Job
)
[src]
&self,
_solution_ctx: &mut SolutionContext,
_route_index: usize,
_job: &Job
)
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]
&self,
_solution_ctx: &mut SolutionContext,
_route_index: usize,
_job: &Job
)
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 TransportConstraintModule
[src]
fn accept_insertion(
&self,
solution_ctx: &mut SolutionContext,
route_index: usize,
_job: &Job
)
[src]
&self,
solution_ctx: &mut SolutionContext,
route_index: usize,
_job: &Job
)
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]
&self,
solution_ctx: &mut SolutionContext,
route_index: usize,
job: &Job
)