ABLE 2.0.0 07/02/2003 10:25:01

com.ibm.able.examples.genetic
Class TstGeneticFunction2a

java.lang.Object
  |
  +--com.ibm.able.beans.AbleGeneticObject
        |
        +--com.ibm.able.examples.genetic.TstGeneticFunction2a
All Implemented Interfaces:
java.io.Serializable

public class TstGeneticFunction2a
extends AbleGeneticObject

This class implements the F6 function described in the first chapter of The Handbook of Genetic Algorithms (Davis) Is used a hybrid (numeric) chromosome representation

See Also:
Serialized Form

Field Summary
static double factor
           
protected static long serialVersionUID
          Serialized version identifier in form YYYYMMDDVerRelModxx
 
Fields inherited from class com.ibm.able.beans.AbleGeneticObject
chromosome, chromosomeLength, chromosomeType, crossoverRate, evaluationAgent, fitness, fitnessComputed, member, mutationRate, normalizedFitness, searchAgent, vocabulary
 
Constructor Summary
TstGeneticFunction2a()
           
 
Method Summary
 java.lang.Object[] average(java.lang.Object[] parents)
          Given 2 parent chromosomes Average their values , creating 2 children chromosomes
 double computeFitness()
          just add up the number of ones in the chromosome
static java.lang.String Copyright()
          Determine the copyright of this class.
protected  double f6(double x, double y)
           
 double getFitness()
          return the fitness value for this member Note: use computeFitness() to do the computation
 java.util.Hashtable getOperatorFitness()
          Return a hashtable of operator names (keys) and fitness values (Doubles) fitness values must sum to 100 Note: this hashtable may be extended to using operator fitness objects vs fixed values so that we can adapt the operators selection during the search process
 java.lang.Object getRandomChromosome()
          generate a random chromosome for this genetic object
 double[] mutateChromosome(double[] chromosome)
          Mutate a single chromosome Note: this operator does a bitwise test against the mutationRate and then rolls the dice to select a delta to the current value
 java.lang.Object[] onePointCrossoverAndMutate(java.lang.Object[] parents)
          Given 2 parent chromosomes Do a single point crossover (or not), creating 2 children chromosomes And mutate bits at the specified rate
 void registerOperators(AbleAgent agent)
          Register any unique or overridden operators (user-defined functions) with the SearchAgent
 java.lang.String toString()
          return a string formatted for display default is the chromosome string and fitness if chromosome is not a string, then just fitness is returned Subclasses should override if necessary
 
Methods inherited from class com.ibm.able.beans.AbleGeneticObject
binaryToInteger, generateRandomChromosome, getBean, getChromosome, getChromosomeLength, getChromosomeType, getCrossoverRate, getMutationRate, getNormalizedFitness, getVocabulary, initBean, initEvaluationAgent, mutate, mutateChromosome, onePointCrossover, removeBean, setChromosome, setCrossoverRate, setEvaluationAgent, setMutationRate, setNormalizedFitness, twoPointCrossover, uniformCrossover
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

serialVersionUID

protected static final long serialVersionUID
Serialized version identifier in form YYYYMMDDVerRelModxx

factor

public static final double factor
Constructor Detail

TstGeneticFunction2a

public TstGeneticFunction2a()
Method Detail

getFitness

public double getFitness()
Description copied from class: AbleGeneticObject
return the fitness value for this member Note: use computeFitness() to do the computation
Overrides:
getFitness in class AbleGeneticObject

getRandomChromosome

public java.lang.Object getRandomChromosome()
generate a random chromosome for this genetic object
Overrides:
getRandomChromosome in class AbleGeneticObject

computeFitness

public double computeFitness()
just add up the number of ones in the chromosome
Overrides:
computeFitness in class AbleGeneticObject
Following copied from class: com.ibm.able.beans.AbleGeneticObject
Returns:
the fitness value for this population member

f6

protected double f6(double x,
                    double y)

mutateChromosome

public double[] mutateChromosome(double[] chromosome)
Mutate a single chromosome Note: this operator does a bitwise test against the mutationRate and then rolls the dice to select a delta to the current value
Parameters:
the - original chromosome array
Returns:
the (potentially) mutated chromosome array

onePointCrossoverAndMutate

public java.lang.Object[] onePointCrossoverAndMutate(java.lang.Object[] parents)
Given 2 parent chromosomes Do a single point crossover (or not), creating 2 children chromosomes And mutate bits at the specified rate
Overrides:
onePointCrossoverAndMutate in class AbleGeneticObject

average

public java.lang.Object[] average(java.lang.Object[] parents)
Given 2 parent chromosomes Average their values , creating 2 children chromosomes

getOperatorFitness

public java.util.Hashtable getOperatorFitness()
                                       throws AbleException
Return a hashtable of operator names (keys) and fitness values (Doubles) fitness values must sum to 100 Note: this hashtable may be extended to using operator fitness objects vs fixed values so that we can adapt the operators selection during the search process
Overrides:
getOperatorFitness in class AbleGeneticObject
Returns:
the hashtable with operator fitness values

registerOperators

public void registerOperators(AbleAgent agent)
Register any unique or overridden operators (user-defined functions) with the SearchAgent
Overrides:
registerOperators in class AbleGeneticObject
Parameters:
the - search agent

toString

public java.lang.String toString()
return a string formatted for display default is the chromosome string and fitness if chromosome is not a string, then just fitness is returned Subclasses should override if necessary
Overrides:
toString in class AbleGeneticObject
Returns:
a string formatted for display purposes

Copyright

public static java.lang.String Copyright()
Determine the copyright of this class.
Returns:
A String containing this class's copyright statement.


ABLE 2.0.0 07/02/2003 10:25:01

(C) Copyright IBM Corporation 1999, 2003