org.encog.ml.prg.opp
Class SubtreeCrossover
java.lang.Object
org.encog.ml.prg.opp.SubtreeCrossover
- All Implemented Interfaces:
- EvolutionaryOperator
public class SubtreeCrossover
- extends Object
- implements EvolutionaryOperator
Perform a type-safe subtree crossover. The crossover points will be chosen
randomly but must be type-safe. The first parent will be cloned to produce
the child. The tree formed from the crossover point of the second child will
be copied and grafted into the parent's clone and its crossover point.
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
SubtreeCrossover
public SubtreeCrossover()
init
public void init(EvolutionaryAlgorithm theOwner)
- Called to setup the evolutionary operator.
- Specified by:
init
in interface EvolutionaryOperator
- Parameters:
theOwner
- The evolutionary algorithm used with this operator.
offspringProduced
public int offspringProduced()
- Specified by:
offspringProduced
in interface EvolutionaryOperator
- Returns:
- Returns the number of offspring produced. In this case, one.
parentsNeeded
public int parentsNeeded()
- Specified by:
parentsNeeded
in interface EvolutionaryOperator
- Returns:
- Returns the number of parents needed. In this case, two.
performOperation
public void performOperation(Random rnd,
Genome[] parents,
int parentIndex,
Genome[] offspring,
int offspringIndex)
- Perform the evolutionary operation.
- Specified by:
performOperation
in interface EvolutionaryOperator
- Parameters:
rnd
- A random number generator.parents
- The parents.parentIndex
- The index into the parents array.offspring
- The offspring.offspringIndex
- An index into the offspring array.
Copyright © 2014. All Rights Reserved.