Phase

Trait Phase 

Source
pub trait Phase<S: PlanningSolution>: Send + Debug {
    // Required methods
    fn solve(&mut self, solver_scope: &mut SolverScope<S>);
    fn phase_type_name(&self) -> &'static str;
}
Expand description

A phase of the solving process.

Phases are executed in sequence by the solver. Each phase has its own strategy for exploring or constructing solutions.

Required Methods§

Source

fn solve(&mut self, solver_scope: &mut SolverScope<S>)

Executes this phase.

The phase should modify the working solution in the solver scope and update the best solution when improvements are found.

Source

fn phase_type_name(&self) -> &'static str

Returns the name of this phase type.

Implementors§

Source§

impl<S, M> Phase<S> for ConstructionHeuristicPhase<S, M>
where S: PlanningSolution, M: Move<S>,

Source§

impl<S, M> Phase<S> for LocalSearchPhase<S, M>
where S: PlanningSolution, M: Move<S>,

Source§

impl<S, M> Phase<S> for VndPhase<S, M>
where S: PlanningSolution, M: Move<S>,

Source§

impl<S: PlanningSolution + 'static> Phase<S> for PartitionedSearchPhase<S>

Source§

impl<S: PlanningSolution> Phase<S> for ExhaustiveSearchPhase<S>