Types

These types define the fundamental building blocks of the genetic algorithm, including abstract types for key evolutionary operations (initialization, selection, crossover, and mutation) and concrete structures for representing chromosomes and populations. Custom operators must inherit from these abstract types to ensure compatibility and proper integration within the algorithm.