public final class GeneticPipeline<T extends java.io.Serializable,S extends Solution<T>> extends Pipeline<S,GeneticPipeline<T,S>>
Modifier and Type | Field and Description |
---|---|
private NormalizedDoubleRandomGenerator |
rand |
private io.vavr.collection.Stream<java.lang.Double> |
randomDoubles |
pipelineFactory, population
Modifier | Constructor and Description |
---|---|
private |
GeneticPipeline(io.vavr.collection.List<S> population) |
private |
GeneticPipeline(io.vavr.collection.List<S> population,
NormalizedDoubleRandomGenerator rand) |
Modifier and Type | Method and Description |
---|---|
GeneticPipeline<T,S> |
evaluate(Evaluator<S> evaluator)
Evaluate the population.
|
GeneticPipeline<T,S> |
individualMutation(Mutation<S> mutation,
double chanceToMutate)
Individually mutate each solution with the given chance to mutate.
|
static <I extends java.io.Serializable,V extends Solution<I>> |
on(io.vavr.collection.List<V> population)
Create a new pipeline for the given population.
|
GeneticPipeline<T,S> |
pairedRecombine(Recombination<S> recombination,
double chanceToRecombine)
Recombine the population using the given operator.
|
GeneticPipeline<T,S> |
preselect(Preselection<S> preselection)
Preselect the population using the given operator.
|
GeneticPipeline<T,S> |
withRandomGenerator(NormalizedDoubleRandomGenerator rand)
Changes the random number generator for the current pipeline.
|
private final NormalizedDoubleRandomGenerator rand
private final io.vavr.collection.Stream<java.lang.Double> randomDoubles
private GeneticPipeline(io.vavr.collection.List<S> population, NormalizedDoubleRandomGenerator rand)
private GeneticPipeline(io.vavr.collection.List<S> population)
public static <I extends java.io.Serializable,V extends Solution<I>> GeneticPipeline<I,V> on(io.vavr.collection.List<V> population)
Create a new pipeline for the given population.
population
- population of EMAS agents.public GeneticPipeline<T,S> withRandomGenerator(NormalizedDoubleRandomGenerator rand)
Changes the random number generator for the current pipeline.
rand
- a new double random generator to use.public GeneticPipeline<T,S> preselect(Preselection<S> preselection)
Preselect the population using the given operator.
preselection
- preselection operator.public GeneticPipeline<T,S> pairedRecombine(Recombination<S> recombination, double chanceToRecombine)
Recombine the population using the given operator. Recombination is done on two solutions located one after another on the list.
recombination
- recombination operator.chanceToRecombine
- probability of two solutions to recombine.public GeneticPipeline<T,S> individualMutation(Mutation<S> mutation, double chanceToMutate)
Individually mutate each solution with the given chance to mutate.
mutation
- mutation operator.chanceToMutate
- probability that the solution will be mutated. Should be within [0,1] range.public GeneticPipeline<T,S> evaluate(Evaluator<S> evaluator)
Evaluate the population.
evaluator
- evaluation operator.