public class GeneticAlgorithm extends Object
Constructor and Description |
---|
GeneticAlgorithm(CrossoverPolicy crossoverPolicyIn,
double crossoverRateIn,
MutationPolicy mutationPolicyIn,
double mutationRateIn,
SelectionPolicy selectionPolicyIn)
Create a new genetic algorithm.
|
Modifier and Type | Method and Description |
---|---|
Population |
evolve(Population initial,
StoppingCondition condition)
Evolve the given population.
|
CrossoverPolicy |
getCrossoverPolicy()
Returns the crossover policy.
|
double |
getCrossoverRate()
Returns the crossover rate.
|
int |
getGenerationsEvolved()
Returns the number of generations evolved to reach
StoppingCondition in the last run. |
MutationPolicy |
getMutationPolicy()
Returns the mutation policy.
|
double |
getMutationRate()
Returns the mutation rate.
|
static RandomGenerator |
getRandomGenerator()
Returns the (static) random generator.
|
SelectionPolicy |
getSelectionPolicy()
Returns the selection policy.
|
Population |
nextGeneration(Population current)
Evolve the given population into the next generation.
|
static void |
setRandomGenerator(RandomGenerator random)
Set the (static) random generator.
|
public GeneticAlgorithm(CrossoverPolicy crossoverPolicyIn, double crossoverRateIn, MutationPolicy mutationPolicyIn, double mutationRateIn, SelectionPolicy selectionPolicyIn)
crossoverPolicyIn
- The CrossoverPolicy
crossoverRateIn
- The crossover rate as a percentage (0-1 inclusive)mutationPolicyIn
- The MutationPolicy
mutationRateIn
- The mutation rate as a percentage (0-1 inclusive)selectionPolicyIn
- The SelectionPolicy
OutOfRangeException
- if the crossover or mutation rate is outside the [0, 1] rangepublic static void setRandomGenerator(RandomGenerator random)
random
- random generatorpublic static RandomGenerator getRandomGenerator()
public Population evolve(Population initial, StoppingCondition condition)
generationsEvolved
property with the number of
generations evolved before the StoppingCondition
is satisfied.initial
- the initial, seed population.condition
- the stopping condition used to stop evolution.public Population nextGeneration(Population current)
current
generation, using its
nextGeneration methodcurrent
getCrossoverRate()
, apply configured CrossoverPolicy
to parentsgetMutationRate()
, apply configured MutationPolicy
to each of the
offspringcurrent
- the current population.public CrossoverPolicy getCrossoverPolicy()
public double getCrossoverRate()
public MutationPolicy getMutationPolicy()
public double getMutationRate()
public SelectionPolicy getSelectionPolicy()
public int getGenerationsEvolved()
StoppingCondition
in the last run.Copyright © 2020 CNES. All rights reserved.