GeneticAlgorithm<T> constructor

GeneticAlgorithm<T>({
  1. required List<T> initPopulation(),
  2. required double fitness(
    1. T
    ),
  3. required T crossover(
    1. T,
    2. T,
    3. Random
    ),
  4. required T mutate(
    1. T,
    2. Random
    ),
  5. int populationSize = 100,
  6. double mutationRate = 0.01,
  7. int elitism = 1,
  8. int? seed,
})

Implementation

GeneticAlgorithm({
  required this.initPopulation,
  required this.fitness,
  required this.crossover,
  required this.mutate,
  this.populationSize = 100,
  this.mutationRate = 0.01,
  this.elitism = 1,
  int? seed,
}) : _rand = seed != null ? Random(seed) : Random() {
  if (populationSize <= 0) throw ArgumentError('populationSize > 0');
  if (mutationRate < 0 || mutationRate > 1) {
    throw ArgumentError('mutationRate in [0,1]');
  }
  if (elitism < 0 || elitism >= populationSize) {
    throw ArgumentError('invalid elitism');
  }
}