Moo library provides building blocks to build custom
genetic algorithms in Haskell. They can be used to
find solutions to optimization and search problems.
Variants supported out of the box: binary (using
bit-strings) and continuous (real-coded).
Potentially supported variants: permutation,
tree, hybrid encodings (require customizations).
Binary GAs: binary and Gray encoding; point mutation;
one-point, two-point, and uniform crossover.
Continuous GAs: Gaussian mutation; BLX-α, UNDX, and
SBX crossover.
Selection operators: roulette, tournament, and
stochastic universal sampling (SUS);
with optional niching, ranking, and scaling.
Replacement strategies: generational with elitism
and steady state.
Constrained optimization: random constrained
initialization, death penalty, constrained
selection without a penalty function.
Multi-objective optimization: NSGA-II
and constrained NSGA-II.