External Specification
The toolkit will be composed of a collection of components organised in a number of component hierarchies which
describe their relationships. The taxonomic hierarchy groups components with similar tasks together, for example apples
are under fruit. The functional hierarchy shows a components use of other components, for example apples are under
teeth. The containment hierarchy shows a components storage of other components, for example pips are under apples. All
components are also grouped as part of the core, auxiliary, or extended toolkit. Components are presented here
according to the taxonomic hierarchy with other hierarchies described in the text.
To create a genetic algorithm with this toolkit the programmer has to combine a number of predefined components with
a few that have been hand coded. A simple example of constructing a genetic algorithm using the toolkit follows with
component names emphasised. A description of each component can be found later in the specification.
Classic Genetic Algorithm
A genetic algorithm is required to optimise a simple function.
f(x) = x.sin(10¹.x) + 1.0
The problem is to find x from the range [-1, 2] which maximises the function f, ie to find x0, such that
f(x0) ³ f(x) for all x Î [-1, 2]
Two important decisions have to made about the genetic algorithm: how to represent potential solutions, and which
model will drive the genetic algorithm. The use of classic genetic algorithm techniques dictates our choices here. The
Generational Model will define the order of actions within our algorithm and solutions will be represented
using a Bit Vector. To store a solution to an accuracy of 6 decimal places will require 22 bits for each
vector.
To decide which solutions are better an Evaluation function must take the bit vector representation and
return a number
E = -1.0 + v.3/(222 - 1)
where v is the bit vector interpreted as a positional code integer, this can be done using Function Binary Bit
Vector Evaluation.
The initial Population of solutions will be created using Bit Vector Random Initialisation and
subsequent solutions will be bred using two Reproduction operators, Bit Random Single Vector Mutation
and One Point Vector Crossover. Operator distribution is 22% and 25% respectively with the remainder made up
using Clone.
The Toolkits
The core toolkit consists of those components required to implement the classic genetic algorithm "The
Blues" as shown in the report.
Generational Model, Count Ending, Bit Representation, Vector Representation, Individual, Population, Bit Random
Initialise, Vector Random Initialise, Evaluation, Unity Fitness, Roulette Wheel Selector, Clone Reproduction, Xor
Reproduction, Position-based Ordered Mutation Reproduction, Order-based Ordered Crossover Reproduction, Random
The auxiliary toolkit consists of those components which extend functionality for genetic algorithms such
as decision support.
History
The extended toolkit consists of all components suitable for other genetic algorithms.
Component Overview
The Model, or breeding technique, component controls the general activity of the genetic algorithm. A
genetic algorithm consists of a single Model and subsidiary components controlled by it.
The Ending component controls the length of time spent on the genetic algorithm.
The Representation component encodes a possible solutions. Choosing which Representation is important to
the design of the entire genetic algorithm.
The Individual component is a particular instance of a possible solution. Each Individual is associated
with a Representation and a unique identification which separates it from all other Individuals, even those with
identical Representations.
The Population component is a bag of Individuals or a bag of Populations. Operations include all standard
bag operations.
The Evaluation component converts a Representation to a numerical representation of how good a solution it
encodes.
The Fitness component converts and Individuals Evaluation into its fitness compared to the rest of the
Population.
The Selector component chooses an Individual from a Population, perhaps using information about that
Individual and the rest of the Population.
The Reproduction component creates N new Individuals for the destination Population from the source
Population.
The History component can store an association of Individuals, their parents and Reproduction components or
Initialisers, and the Random settings.
The Random component generates pseudo random numbers starting from either a given seed or the seed is taken
from the time.
Model Component
The Model, or breeding technique, component controls the general activity of the genetic algorithm. A genetic
algorithm consists of a single Model and subsidiary components controlled by it. Although the toolkit provides a range
of Model components it is impossible to provide the variety which may be required. Instead unusual Models can be hand
coded making use of subsidiary components from the toolkit.
Functional: Ending, Individual, Population, Initialise, Evaluation, Fitness, Selector, Reproduction, History,
Random
Containment: Ending, Population, Initialise, Evaluation, Fitness, Selector, Reproduction, History, Random
- Generational
- The first Population is Initialised then a new Population of the same size is created using the Reproduction
operator. The current Population is then replaced and the new Population used for further breeding.
- Generational Elitism
- Generational but the first Individual of the new Population is a clone of the best Individual of the previous
Population.
- Tournament
- Generational but new Individuals are together with current Individuals. N Individuals are selected and the best is
placed in the next generation. This is repeated until the next generation is full.
- Steady State
- The first Population is Initialised then N new Individuals are created using the Reproduction operator. These
replace N individuals selected from the old population.
- Steady State Without Duplicates
- Steady State but new Individuals must not have identical Representations to current Individuals.
- Preselection
- Steady State but Individuals only replace inferior parents.
Ending Component
The Ending component controls the length of time spent on the genetic algorithm.
Functional:
Containment: Ending
- And
- The Model continues until both given ending conditions are true.
- Or
- The Model continues until either of two ending conditions are true.
- Count
- The Model is allowed N cycles before halting.
- Time
- The Model is allowed N seconds before halting.
- Evaluation
- The Model continues until a given Evaluation is reached.
- Convergence
- The Model continues until the population converges and no further change in Evaluation is seen.
Representation Component
The Representation component encodes a possible solutions. Choosing which Representation is important to the design
of the entire genetic algorithm. Functional: Containment: Representation
- Bit
- A single bit, 0 or 1.
- Number
- A single number with value between upper and lower bounds.
- Vector
- A sequence of elements with identical Representations.
- Matrix
- A matrix of elements with identical Representations.
- Ordered
- A particular permutation of elements draw from a particular Representation.
- Tag
- A integer position paired with another Representation, can be used to make a tagged vector for use with the
Inversion operator.
Individual Component
The Individual component is a particular instance of a possible solution. Each Individual is associated with a
Representation and a unique identification which separates it from all other Individuals, even those with identical
Representations.
Functional: Representation
Containment: Representation
Population Component
The Population component is a bag of Individuals or a bag of Populations. Operations include all standard bag
operations.
Functional: Representation, Individual, Evaluation
Containment: Individual, Population
Initialise Component
The Initialise component is used to create a number of new Individuals for a given Population. The Initialiser must
be tailored to particular Representations.
Functional: Representation, Population, Evaluation, Selector, Reproduction, Random
Containment: Initialise, Reproduction
- Random
-
- Bit
- Assigned 0 or 1 with equal probability.
- Number
- Assigned a number between upper and lower boundary with equal probability.
- Vector
- Initialise each element separately.
- Matrix
- Initialise each element separately.
- Ordered
- Assign one of the possible permutation of elements with equal probability.
- Tag Vector
- Initialise each Tag separately and assign the correct integer position.
- Search
- Initialise N Individuals at a time and pick the one with the highest Evaluation. Selection between Individuals with
equal fitness will be made randomly.
- Distributed
- Generated Individuals are as different as possible from each other. This technique must be tailored for each
Representation.
- Heuristic
- Individuals with particular characteristics are generated using heuristics particular the problem. This technique
must be tailored to each Representation and each problem.
Evaluation Component
The Evaluation component converts a Representation to a numerical representation of how good a solution it encodes.
The evaluation is dependent on both the Representation and the problem. In most situations the Evaluation component
will be hand coded by the programmer.
Functional: Representation, Individual
Containment: Evaluation
- Vector
-
- Bit
-
- Binary
- Evaluation is equal to the positional code interpretation of the bit vector.
- Gray
- Evaluation is equal to the gray code interpretation of the bit vector.
- Function
- Apply a known function to the result of another Evaluation.
Fitness Component
The Fitness component converts and Individuals Evaluation into its fitness compared to the rest of the
Population.
Functional: Individual, Population Containment:
- Unity
- Fitness is equal to evaluation.
- Windowing
- Fitness is equal to the amount an Individual's Evaluation exceeds the minimum evaluation within the Population
minus some known guard value.
- Linear Normalisation
- Order Individuals by decreasing Evaluation. The best Individual is given a known fitness and thereafter the fitness
is decreased by a constant amount.
- Linear Scaling
- Fitness is equal to (a * evaluation + b) where a and b are normally selected so that the average fitness is mapped
to itself and the best fitness is increased by some desired multiple.
- Sigma Truncation
- Fitness is equal to (evaluation + average evaluation - c * s) where c is chosen from around 1 to 5 and s is the
Population's standard deviation. Negative fitness values are set to zero.
- Power Law Scaling
- Fitness is equal to (evaluation k) where k is a problem dependent value close to 1.
Selector Component
The Selector component chooses an Individual from a Population, perhaps using information about that Individual and
the rest of the Population.
Functional: Individual, Population, Fitness, Random
Containment:
- Best
- Individual with the highest fitness within the Population is selected. Selection between Individuals with equal
fitness will be made randomly.
- Worst
- Individual with the lowest fitness within the Population is selected. Selection between Individuals with equal
fitness will be made randomly.
- Random
- Each Individual has an equal probability of being selected.
- Roulette Wheel
- Each Individual has a probability of being selected proportional to its fitness divided by the average fitness of
the Population.
- Anti Roulette Wheel
- Each Individual has a probability of being selected inversely proportional to its fitness divided by the average
fitness of the Population.
- Stochastic
- The first Individual is chosen using a roulette wheel and the subsequent (N - 1) Individuals taken evenly from the
entire population, then the cycle repeats.
- Expected Value
- Associated with each Individual is a count equal to that Individual's fitness divided by the average fitness of the
Population. Whenever an Individual is selected to reproduce, using another Selector component, its count is decremented
by one. When a count falls below zero the Individual is no long available for further selection.
- Similarity
- The Individual selected is that closest to the given Individual. Selection between equally similar Individuals will
be made randomly. This technique must be tailored to each Representation and each problem.
Reproduction Component
The Reproduction component creates N new Individuals for the destination Population from the source Population.
Reproduction components must be tailored to a each Representation and each Problem.
Functional: Representation, Individual, Population, Selector, Random
Containment: Selector, Reproduction
- Clone
- Individual's Representation is an exact copy of the parent's Representation.
- Xor
- Individuals are created with either one Reproduction component or another but not both using the given probability
distribution.
- And
- Individuals are created with one Reproduction followed by another. The second Reproduction component may require
several Individuals to be generated by the first component.
- Or
- Individuals are created with either of two Reproduction components or both using the given probabilities. The
second Reproduction component may require several Individuals to be generated by the first component.
- Inversion
-
- Tag Vector
-
- Biased
- Individual's Representation is the same as the parent's Representation except that the order of a sequence of
elements between two random points has been reversed.
- Unbiased
- Individual's Representation is the same as the parent's Representation except that the order of a sequence of
element between a random point and a randomly selected end has been reversed.
- Mutation
-
- Bit
- Inverts value.
- Number
-
- Random
- Assign a number between upper and lower boundary with equal probability.
- Creep
- Modify the number by either adding or subtracting a know value.
- Vector
-
- Single
- Each element has an equal probability of being chosen and mutated.
- Deletion
- A randomly chosen element is deleted. Only suitable for variable length vectors.
- Addition
-
- Duplication
- A randomly chosen element is duplicated with the duplicate placed next to the original. Only suitable for variable
length vectors.
- Initialised
- A newly initialised element is inserted into the list. Only suitable for variable length vectors.
- Related
- A pair of adjacent elements is randomly chosen and a new element related to each is inserted between them. This
must be tailored to each Representation and each problem. Only suitable for variable length vectors.
- Tag Vector
-
- Cut
- Parent vector is cut at a random point. Only suitable for messy genetic algorithms.
- Single
- Each element has an equal probability of being chosen and the non-position value mutated.
- Ordered
-
- Order-based
- Two randomly selected elements are swapped.
- Position-based
- One randomly selected element is placed before another.
- Scramble Sublist
- Select a sublist of size N and randomly permute it.
- Random Hill Climb
- N new Representations are created using a Mutation component and the one with the best Evaluation is chosen.
Selection between Individuals with equal evaluation will be made randomly.
- Crossover
-
- Number
-
- Average
- Assign the average of two parent numbers.
- Vector
-
- One Point
- A crosspoint is selected at random and the tail of each parent is swapped with the other parent.
- Two Point
- Two crosspoints are selected at random and the elements between are swapped with the other parent. Initial and
final elements of the vector are considered adjacent.
- Multi Point
- N pairs of crosspoints are selected at random and the elements between are swapped with the other parent. Initial
and final elements of the vector are considered adjacent.
- Segmented
- Multi Point Crossover in which the number of segments can vary. For each element there is a probability that the
current segment will end and a new one begin.
- Uniform
- Each element is taken from either parent with equal probability.
- Shuffle
- Randomly permute both parent vectors, perform a Crossover, and reverse permute them.
- Traverse
- Apply given Crossover to each pair of elements in parent vectors.
- Tag Vector
-
- Splice
- Parent's representations are joined end to end. Only suitable for messy genetic algorithms.
- Ordered
-
- Position-based
- A set of positions is randomly selected and the positions of elements selected in one parent is imposed on the
corresponding elements in the other parent.
- Order-based
- A set of positions is randomly selected and the order of elements in the selected positions in one parent is
imposed on the corresponding elements in the other parent.
- Repair
- The parents representation is corrected so it no longer violates constraints made on the solution.
History Component
The History component can store an association of Individuals, their parents and Reproduction components or
Initialisers, and the Random settings.
Functional: Individual, Reproduction, Initialise, Random
Containment: Individual
Random Component
The Random component generates pseudo random numbers starting from either a given seed or the seed is taken from the
time.
Functional:
Containment:
|