feat: Add BlendCrossover for reals
feat: add ArithmeticCrossover for reals
fix: make sure both parents are used for ovector one point
feat: add convenient function for stochastic ranking evaluation
refactor: add possibility to use different logic for obtaining best candidate
fix(eoa_lib): extract random distribution parameter out of perturbation
feat: add multi objective; NSGA
feat: add stochastic ranking
feat: add equal to BetterThan operator
feat: add multiple weights to constrained functions
feat: add number of constraints as a generic
feat: add possibility to map EvolutionResult evaluations
chore: remove Copy from requirement of TournamentSelection
refactor(lib): Allow fitting whole population at once
The fitness function gets fit_population function. The default
implementation is going over fit() one by one, but it can be
reimplemented by specific types.
feat(lib): constraints along with evolutionary strategies
feat(lib): allow modifying fitness function in evolution_algorithm
chore: move population structs to separate module
feat: split params out of PerturbationOperator to allow for non-'static PerturbationOperator
This means PerturbationOperators can now hold non-'static references.
Right away, utilize this in the Random2OptPerturbation for the TSPInstance.
feat: add a lot of algorithm showcases