es.udc.gii.common.eaf.algorithm.operator.reproduction.mutation.de
Class DEMutationOperator

java.lang.Object
  extended by es.udc.gii.common.eaf.algorithm.operator.reproduction.ReproductionOperator
      extended by es.udc.gii.common.eaf.algorithm.operator.reproduction.mutation.MutationOperator
          extended by es.udc.gii.common.eaf.algorithm.operator.reproduction.mutation.de.DEMutationOperator
All Implemented Interfaces:
Operator, Configurable

public class DEMutationOperator
extends MutationOperator

For each target vector xi,G, i = 1,2,...,NP; a trial vector is generated. To generate this trial vector the algorithm follow two phases. First of all, a mutated individual is generated by applying a mutation strategy to each target vector. In order to increase the diversity of the population, a crossOver operator is appliad to this mutated vector generating the trial vector.

To decide if the trial vector should become a member of the population in the next generation, it is compared with the target vector. This behavior is implemented in a replace operator. As the DE Algorithm is an evolutionary strategy, the EvolutionaryStrategyReplaceOperator or a subclass of it should be use.

The mutation stategy and the crossOver scheme are implemented in DEMutationStrategy and CrossOverScheme classes respectively. To config this operator the xml code is:

 <Operator>
 <Class>es.udc.gii.common.eaf.algorithm.operator.reproduction.mutation.de.DEMutationOperator</Class>
 <MutationStrategy>
      <Class>value</Class>
      <F>value<F;>
      <diffVector>value<diffVector;>
      ...
 </MutationStr>
 <CrossOverScheme>
      <Class>value</Class>
      <CR>value<CR>
      ...
 </CrossOverScheme>
 </Operator>
 
 
where the tags MutationStrategy and CrossOverScheme represent the mutation strategy and the crossover scheme repectively. In these two tags, the tag Class is mandatory and it should be a subclass of the DEMutationStrategy class or the CrossOverScheme class. Each of them should be configured. If this parameters do not appear in the configuration file, they are set to their default values. Default values:

Since:
1.0
Author:
Grupo Integrado de IngenierĂ­a (www.gii.udc.es)

Field Summary
private  CrossOverScheme crossOverScheme
          In order to increase the divertity a CrossOver operator is introduced.
private  DEMutationStrategy mutationStrategy
          The strategy to choose the base vector.
 
Constructor Summary
DEMutationOperator()
          Creates a new instance of DEMutationOperator
 
Method Summary
 void configure(org.apache.commons.configuration.Configuration conf)
          Configures the specific element that implements this method.
 CrossOverScheme getCrossOverScheme()
           
 DEMutationStrategy getMutationStrategy()
           
protected  java.util.List<Individual> mutation(EvolutionaryAlgorithm algorithm, Individual target)
           
 
Methods inherited from class es.udc.gii.common.eaf.algorithm.operator.reproduction.mutation.MutationOperator
getProbability, operate, setProbability
 
Methods inherited from class es.udc.gii.common.eaf.algorithm.operator.reproduction.ReproductionOperator
checkBounds
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

crossOverScheme

private CrossOverScheme crossOverScheme
In order to increase the divertity a CrossOver operator is introduced. There are several CrossOver schemes. The default one is the Binaray Crossover scheme.


mutationStrategy

private DEMutationStrategy mutationStrategy
The strategy to choose the base vector.

Constructor Detail

DEMutationOperator

public DEMutationOperator()
Creates a new instance of DEMutationOperator

Method Detail

configure

public void configure(org.apache.commons.configuration.Configuration conf)
Description copied from interface: Configurable
Configures the specific element that implements this method.

Specified by:
configure in interface Configurable
Overrides:
configure in class MutationOperator
Parameters:
conf - a Configuration object.
See Also:
Configuration

mutation

protected java.util.List<Individual> mutation(EvolutionaryAlgorithm algorithm,
                                              Individual target)
Specified by:
mutation in class MutationOperator

getCrossOverScheme

public CrossOverScheme getCrossOverScheme()

getMutationStrategy

public DEMutationStrategy getMutationStrategy()