net.sourceforge.cilib.entity.operators.crossover
Class DifferentialEvolutionBinomialCrossover

java.lang.Object
  extended by net.sourceforge.cilib.entity.operators.crossover.CrossoverStrategy
      extended by net.sourceforge.cilib.entity.operators.crossover.DifferentialEvolutionBinomialCrossover
All Implemented Interfaces:
Serializable, Operator, Cloneable

public class DifferentialEvolutionBinomialCrossover
extends CrossoverStrategy

Binomial crossover operator.

See Also:
Serialized Form

Constructor Summary
DifferentialEvolutionBinomialCrossover()
           
 
Method Summary
 List<Entity> crossover(List<Entity> parentCollection)
           Perform the cross-over based on the binomial method for recombination.
 DifferentialEvolutionBinomialCrossover getClone()
          Create a cloned copy of the current object and return it.
 void performOperation(TopologyHolder holder)
          Perform the operator operation given the current TopologyHolder.
 
Methods inherited from class net.sourceforge.cilib.entity.operators.crossover.CrossoverStrategy
getCrossoverProbability, getRandomNumber, getSelectionStrategy, setCrossoverProbability, setRandomNumber, setSelectionStrategy
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DifferentialEvolutionBinomialCrossover

public DifferentialEvolutionBinomialCrossover()
Method Detail

getClone

public DifferentialEvolutionBinomialCrossover getClone()
Create a cloned copy of the current object and return it. In general the created copy will be a deep copy of the provided instance. As a result this operation an be quite expensive if used incorrectly.

Specified by:
getClone in interface Operator
Specified by:
getClone in interface Cloneable
Specified by:
getClone in class CrossoverStrategy
Returns:
An exact clone of the current object instance.
See Also:
Object.clone()

crossover

public List<Entity> crossover(List<Entity> parentCollection)

Perform the cross-over based on the binomial method for recombination. The given parentCollection should only contain two Entity objects, as the crossover operator is only defined for two Entitys.

It is VERY important that the order in which the parents are presented is consistent. The first Entity within the collection MUST be the trialVector Entity, followed by the target parent Entity.

This method implements the following logic:

 for j = 1, ..., x_n:
   if ( (U(0,1) < P_c) || (j == i) )
     x'_{i,j}(t) = trialVector_{i,j}(t)
   else
     x'_{i,j}(t) = x_{i,j}(t)
 

Specified by:
crossover in class CrossoverStrategy
Parameters:
parentCollection - the collection of parent Entity objects.
Returns:
A list consisting of the offspring. This operator only returns a single offspring Entity.
Throws:
UnsupportedOperationException - if the number of parents does not equal the size value of 2.

performOperation

public void performOperation(TopologyHolder holder)
Perform the operator operation given the current TopologyHolder.

Parameters:
holder - The TopologyHolder representing the required Topology instances.


Copyright © 2009 CIRG. All Rights Reserved.