template<Evaluator E>
class ultra::recombination::base< E >
This class defines the program skeleton of a standard genetic programming crossover plus mutation operation. It's a template method design pattern: one or more of the algorithm steps can be overridden by subclasses to allow differing behaviours while ensuring that the overarching algorithm is still followed.
template<Evaluator E>
requires std::ranges::random_access_range<const R> && std::ranges::sized_range<const R> && std::same_as<std::ranges::range_value_t<const R>, scored_t>
template<class R>
requires std::ranges::random_access_range<const R> && std::ranges::sized_range<const R> && std::same_as<std::ranges::range_value_t<const R>, scored_t>
This is a quite standard crossover + mutation operator.
- Parameters
-
| [in] | parents | a vector of ordered parents |
- Returns
- the offspring (single child)