Package org.opt4j.optimizers.de
Class DifferentialEvolution
- java.lang.Object
-
- org.opt4j.optimizers.de.DifferentialEvolution
-
- All Implemented Interfaces:
org.opt4j.core.optimizer.IterativeOptimizer
public class DifferentialEvolution extends java.lang.Object implements org.opt4j.core.optimizer.IterativeOptimizer
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected static class
DifferentialEvolution.Triple
TheDifferentialEvolution.Triple
is a container for three individuals.
-
Field Summary
Fields Modifier and Type Field Description protected org.opt4j.operators.algebra.Algebra<org.opt4j.core.Genotype>
algebra
protected int
alpha
protected org.opt4j.operators.crossover.Crossover<org.opt4j.core.Genotype>
crossover
protected java.util.Random
random
protected double
scalingFactor
protected Selector
selector
-
Constructor Summary
Constructors Constructor Description DifferentialEvolution(org.opt4j.core.optimizer.Population population, org.opt4j.core.IndividualFactory individualFactory, org.opt4j.core.optimizer.IndividualCompleter completer, org.opt4j.operators.algebra.Algebra<org.opt4j.core.Genotype> algebra, Selector selector, org.opt4j.core.common.random.Rand random, org.opt4j.operators.crossover.Crossover<org.opt4j.core.Genotype> crossover, int alpha, double scalingFactor)
Constructs aDifferentialEvolution
.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected org.opt4j.core.Individual
createOffspring(org.opt4j.core.Individual parent, java.util.List<org.opt4j.core.Individual> individuals, org.opt4j.operators.algebra.Term term)
protected DifferentialEvolution.Triple
getTriple(org.opt4j.core.Individual parent, java.util.List<org.opt4j.core.Individual> individuals)
Returns three differentIndividual
s from theindividuals
list.void
initialize()
void
next()
-
-
-
Field Detail
-
scalingFactor
protected final double scalingFactor
-
alpha
protected final int alpha
-
algebra
protected final org.opt4j.operators.algebra.Algebra<org.opt4j.core.Genotype> algebra
-
crossover
protected final org.opt4j.operators.crossover.Crossover<org.opt4j.core.Genotype> crossover
-
selector
protected final Selector selector
-
random
protected final java.util.Random random
-
-
Constructor Detail
-
DifferentialEvolution
@Inject public DifferentialEvolution(org.opt4j.core.optimizer.Population population, org.opt4j.core.IndividualFactory individualFactory, org.opt4j.core.optimizer.IndividualCompleter completer, org.opt4j.operators.algebra.Algebra<org.opt4j.core.Genotype> algebra, Selector selector, org.opt4j.core.common.random.Rand random, org.opt4j.operators.crossover.Crossover<org.opt4j.core.Genotype> crossover, int alpha, double scalingFactor)
Constructs aDifferentialEvolution
.- Parameters:
population
- the populationindividualFactory
- the individual factorycompleter
- the completeralgebra
- the algebra operatorselector
- the selectorrandom
- the random number generatorcrossover
- the crossover operatoralpha
- the population sizescalingFactor
- the scaling factor F
-
-
Method Detail
-
initialize
public void initialize()
- Specified by:
initialize
in interfaceorg.opt4j.core.optimizer.IterativeOptimizer
-
next
public void next() throws org.opt4j.core.optimizer.TerminationException
- Specified by:
next
in interfaceorg.opt4j.core.optimizer.IterativeOptimizer
- Throws:
org.opt4j.core.optimizer.TerminationException
-
createOffspring
protected org.opt4j.core.Individual createOffspring(org.opt4j.core.Individual parent, java.util.List<org.opt4j.core.Individual> individuals, org.opt4j.operators.algebra.Term term)
-
getTriple
protected DifferentialEvolution.Triple getTriple(org.opt4j.core.Individual parent, java.util.List<org.opt4j.core.Individual> individuals)
Returns three differentIndividual
s from theindividuals
list. EachIndividual
is not equal to the parent.- Parameters:
parent
- the parent Individualindividuals
- the population- Returns:
- the three individuals as a Triple
-
-