Class GeneticAlgorithm

java.lang.Object
org.apache.commons.math3.genetics.GeneticAlgorithm

public class GeneticAlgorithm extends Object
Implementation of a genetic algorithm. All factors that govern the operation of the algorithm can be configured for a specific problem.
Since:
2.0
  • Field Details

    • randomGenerator

      private static RandomGenerator randomGenerator
      Static random number generator shared by GA implementation classes. Set the randomGenerator seed to get reproducible results. Use setRandomGenerator(RandomGenerator) to supply an alternative to the default JDK-provided PRNG.
    • crossoverPolicy

      private final CrossoverPolicy crossoverPolicy
      the crossover policy used by the algorithm.
    • crossoverRate

      private final double crossoverRate
      the rate of crossover for the algorithm.
    • mutationPolicy

      private final MutationPolicy mutationPolicy
      the mutation policy used by the algorithm.
    • mutationRate

      private final double mutationRate
      the rate of mutation for the algorithm.
    • selectionPolicy

      private final SelectionPolicy selectionPolicy
      the selection policy used by the algorithm.
    • generationsEvolved

      private int generationsEvolved
      the number of generations evolved to reach StoppingCondition in the last run.
  • Constructor Details

  • Method Details

    • setRandomGenerator

      public static void setRandomGenerator(RandomGenerator random)
      Set the (static) random generator.
      Parameters:
      random - random generator
    • getRandomGenerator

      public static RandomGenerator getRandomGenerator()
      Returns the (static) random generator.
      Returns:
      the static random generator shared by GA implementation classes
    • evolve

      public Population evolve(Population initial, StoppingCondition condition)
      Evolve the given population. Evolution stops when the stopping condition is satisfied. Updates the generationsEvolved property with the number of generations evolved before the StoppingCondition is satisfied.
      Parameters:
      initial - the initial, seed population.
      condition - the stopping condition used to stop evolution.
      Returns:
      the population that satisfies the stopping condition.
    • nextGeneration

      public Population nextGeneration(Population current)
      Evolve the given population into the next generation.

      1. Get nextGeneration population to fill from current generation, using its nextGeneration method
      2. Loop until new generation is filled:
      3. Return nextGeneration
      Parameters:
      current - the current population.
      Returns:
      the population for the next generation.
    • getCrossoverPolicy

      public CrossoverPolicy getCrossoverPolicy()
      Returns the crossover policy.
      Returns:
      crossover policy
    • getCrossoverRate

      public double getCrossoverRate()
      Returns the crossover rate.
      Returns:
      crossover rate
    • getMutationPolicy

      public MutationPolicy getMutationPolicy()
      Returns the mutation policy.
      Returns:
      mutation policy
    • getMutationRate

      public double getMutationRate()
      Returns the mutation rate.
      Returns:
      mutation rate
    • getSelectionPolicy

      public SelectionPolicy getSelectionPolicy()
      Returns the selection policy.
      Returns:
      selection policy
    • getGenerationsEvolved

      public int getGenerationsEvolved()
      Returns the number of generations evolved to reach StoppingCondition in the last run.
      Returns:
      number of generations evolved
      Since:
      2.1