es.udc.gii.common.eaf.algorithm.operator.reproduction.mutation.real_code
Class MichalewiczNonUniformMutation

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.real_code.MichalewiczNonUniformMutation
All Implemented Interfaces:
Operator, Configurable

public class MichalewiczNonUniformMutation
extends MutationOperator

If this operator is applied in a generation t and gmax is the maximum number of generations then

c'i=

ci+&delta(t,bi-ci) if &tau = 0

ci-&delta(t,ci-ai) if &tau = 1

with &tau being a random number which may have a value of zero or one, and:

&delta(t,y)=y(1-r(1-t/gmax)b)

Where r is a random number from the interval [0,1] and b is a parameter chosen by the user, which determines the degree of dependency on the number of iterations. This function gives a value in the range of [0,y] such that the probability of returning a number close to 0 increases as the algorithm advances. The size of the gene generation interval shall be lower with the passing of generations. This property causes this operator to make a uniform search in the initial space when t is small, and very locally at a later stage, favouring local tunning. To configure this operator the tag at the xml config file would be like:

 <Operator>
      <Class>es.udc.gii.common.eaf.algorithm.operator.reproduction.mutation.real_code.MichalewiczNonUniformMutation</Class>
      <Probability>value</Probability>
      <B>value</B>
 </Operator>
 
 
Where, Class is the mandatory tag which indicates the class to be used. The Probability tag is a double value that indicates the probability of a gene to be mutated. The tag B is a double value which represents the b parameter of the Michalewicz non uniform mutation operator. If these to last tags do not appear in the configuration file, their values are set to their default values.

Default values:

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

Field Summary
private  double b
           
private  StopTestPlugin plugin
           
 
Constructor Summary
MichalewiczNonUniformMutation()
          Creates a new instance of FloatNonUniformMutation
 
Method Summary
 void configure(org.apache.commons.configuration.Configuration conf)
          Configures the specific element that implements this method.
private  double delta(int t, double y, int gmax, double r)
           
protected  java.util.List<Individual> mutation(EvolutionaryAlgorithm algorithm, Individual individual)
           
 
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

b

private double b

plugin

private StopTestPlugin plugin
Constructor Detail

MichalewiczNonUniformMutation

public MichalewiczNonUniformMutation()
Creates a new instance of FloatNonUniformMutation

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 individual)
Specified by:
mutation in class MutationOperator

delta

private double delta(int t,
                     double y,
                     int gmax,
                     double r)