1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
//! Contains offspring selection algorithms.

use crate::construction::heuristics::InsertionContext;
use crate::solver::RefinementContext;

mod naive_selection;
pub use self::naive_selection::NaiveSelection;

/// A trait which specifies evolution selection behavior.
pub trait Selection {
    /// Selects parent from population based on refinement process state.
    fn select_parents(&self, refinement_ctx: &RefinementContext) -> Vec<InsertionContext>;
}