Class Design

class dependencies diagram

Class design information is formatted as -

method: arguments > result:

Object creators are referred to as ctor methods. A backslash before an argument indicates the value is passed by value rather than by reference. Argument enclosed in squared brackets symbolise an array of elements rather than a single value. An underlined method indicates that the child classes may override this method and an underlined reference argument means the value of the object may change.

Model Class

class Model:
ctor: Creator, \size > Model
ctor: Creator, \size, Random > Model
ctor: Istream > Model
print : Model, Ostream
run : Model, Evaluation, Fitness, Selector, Creator, Ending
run : Model, Evaluation, Fitness, Selector, Creator, Ending, History
population : Model > Population

class Generational_Model:
print: Model, Ostream
run: Generational_Model, Evaluation, Fitness, Selector, Creator, Ending
run: Generational_Model, Evaluation, Fitness, Selector, Creator, Ending, History
population: Generational_Model > Population

class GenerationalElitism_Model:
print: Model, Ostream
run: GenerationalElitism_Model, Evaluation, Fitness, Selector, Creator, Ending
run: GenerationalElitism_Model, Evaluation, Fitness, Selector, Creator, Ending, History
population: GenerationalElitism_Model > Population

class GenerationalTournament_Model:
print: Model, Ostream
run: GenerationalTournament_Model, Evaluation, Fitness, Selector, Creator, Ending, \tournament_size
run: GenerationalTournament_Model, Evaluation, Fitness, Selector, Creator, Ending, History, \tournament_size
population: GenerationalTournament_Model > Population

class SteadyState_Model:
print: Model, Ostream
run: SteadyState_Model, Evaluation, Fitness, Selector, Creator, Ending, \brood_size
run: SteadyState_Model, Evaluation, Fitness, Selector, Creator, Ending, History, \brood_size
population: SteadyState_Model > Population

class SteadyStateNoDuplicates_Model:
print: Model, Ostream
run: SteadyStateNoDuplicates_Model, Evaluation, Fitness, Selector, Creator, Ending, \brood_size
run: SteadyStateNoDuplicates_Model, Evaluation, Fitness, Selector, Creator, Ending, History, \brood_size
population: SteadyStateNoDuplicates_Model > Population

class SteadyStatePreselection_Model:
print: Model, Ostream
run: SteadyStatePreselection_Model, Evaluation, Fitness, Selector, Creator, Ending, \brood_size
run: SteadyStatePreselection_Model, Evaluation, Fitness, Selector, Creator, Ending, History, \brood_size
population: SteadyStatePreselection_Model > Population

Ending Class

class Ending:
ctor: > Ending
print: Ending, Ostream
end: Ending > \end

class And_Ending:
ctor: Ending, Ending > And_Ending
print: And_Ending, Ostream
end: And_Ending > \end

class Or_Ending:
ctor: Ending, Ending > Or_Ending
print: Or_Ending, Ostream
end: Or_Ending > \end

class Count_Ending:
ctor: \count, \decrement > Count_Ending
print: Count_Ending, Ostream
end: Count_Ending > \end

class Time_Ending:
ctor: \duration > Time_Ending
print: Time_Ending, Ostream
end: Time_Ending > \end

class Evaluation_Ending:
ctor: Model, Evaluation > Evaluation_Ending
print: Evaluation_Ending, Ostream
end: Evaluation_Ending > \end

class Convergence_Ending:
ctor: Model, Evaluation, \improvement, \period > Convergence_Ending
print: Convergence_Ending, Ostream
end: Convergence_Ending > \end

Representation Class

class Representation:
ctor: Istream > Representation
print: Representation, Ostream

class Bit_Representation:
ctor: Bit > Bit_Representation
ctor: Istream > Bit_Representation
print: Bit_Representation, Ostream
get: Bit_Representation > Bit
set: Bit_Representation, Bit

class Number_Representation:
ctor: Number > Number_Representation
ctor: Istream > Number_Representation
print: Number_Representation, Ostream
get: Number_Representation > Number
set: Number_Representation, Number

class Vector_Representation:
ctor: [Representation] > Vector_Representation
ctor: Istream > Vector_Representation
print: Vector_Representation, Ostream
get: Vector_Representation, \index > Representation
set: Vector_Representation, \index, Representation
length: Vector_Representation > \length

class Tagged_Vector_Representation:
ctor: [Representation] > Tagged_Vector_Representation
ctor: Istream > Tagged_Vector_Representation
print: Tagged_Vector_Representation, Ostream
get: Tagged_Vector_Representation, \index > Representation
set: Tagged_Vector_Representation, \index, Representation
tagged_get: Tagged_Vector_Representation, \index > Representation
tagged_set: Tagged_Vector_Representation, \index, Representation
length: Tagged_Vector_Representation > \length

class Matrix_Representation:
ctor: [[Representation]] > Matrix_Representation
ctor: Istream > Matrix_Representation
print: Matrix_Representation, Ostream
get: Matrix_Representation, \x, \y > Representation
set: Matrix_Representation, \x, \y, Representation
width: Matrix_Representation > \width
height: Matrix_Representation > \height

class Ordered_Representation:
ctor: [Representation] > Ordered_Representation
ctor: Istream > Ordered_Representation
print: Ordered_Representation, Ostream
get: Ordered_Representation, \index > Representation
set: Ordered_Representation, \index, Representation
length: Ordered_Representation > \length

Individual Class

class Individual:
ctor: Representation > Individual
ctor: Istream > Individual
print: Individual, Ostream
representation: Individual > Representation
evaluation: Individual, \evaluation
evaluation: > \evaluation

Evaluation Class

class Evaluation:
ctor: > Evaluation
ctor: Istream > Evaluation
print: Evaluation, Ostream
evaluate: Evaluation, Representation > \evaluation

class Function_Evaluation:
ctor: \function, Evaluation > Function_Evaluation
ctor: Istream > Function_Evaluation
print: Function_Evaluation, Ostream
evaluate: Function_Evaluation, Representation > \evaluation

class Binary_Bit_Vector_Evaluation:
ctor: > Binary_Bit_Vector_Evaluation
ctor: Istream, Binary_Bit_Vector_Evaluation
print: Binary_Bit_Vector_Evaluation, Ostream
evaluate: Binary_Bit_Vector_Evaluation, Bit_Vector_Representation > \evaluation

class Gray_Bit_Vector_Evaluation:
ctor: > Gray_Bit_Vector_Evaluation
ctor: Istream, Gray_Bit_Vector_Evaluation
print: Gray_Bit_Vector_Evaluation, Ostream
evaluate: Gray_Bit_Vector_Evaluation, Bit_Vector_Representation > \evaluation

Population Class

class Population:
ctor: > Population
ctor: [Individual] > Population
ctor: Istream > Population
print: Population, Ostream
add: Population, Individual
sub: Population, Individual
length: Population > \length
iterator: Population > PopulationIterator

class PopulationIterator:
ctor: Population > PopulationIterator
ctor: Istream > PopulationIterator
print: PopulationIterator, Ostream
next: PopulationIterator > \more, Individual, \fitness

Fitness Class

class Fitness:
ctor: > Fitness
ctor: Istream > Fitness
print: Fitness, Ostream
attach: Fitness, Population
fitness: Fitness, Individual > \fitness
length: Fitness > \size
iterator: Fitness > FitnessIterator

class FitnessIterator:
ctor: Fitness > FitnessIterator
ctor: Istream > FitnessIterator
print: FitnessIterator, Ostream
next: FitnessIterator > \more, Individual, \fitness

class Unity_Fitness:
ctor: > Unity_Fitness
ctor: Istream > Unity_Fitness
print: Unity_Fitness, Ostream
attach: Unity_Fitness, Population
fitness: Unity_Fitness, Individual > \fitness
length: Unity_Fitness > \size
iterator: Unity_Fitness > Unity_FitnessIterator

class Unity_FitnessIterator:
ctor: Unity_Fitness > Unity_FitnessIterator
ctor: Istream > Unity_FitnessIterator
print: Unity_FitnessIterator, Ostream
next: Unity_FitnessIterator > \more, Individual, \fitness

class Window_Fitness:
ctor: > Window_Fitness
ctor: Istream > Window_Fitness
print: Window_Fitness, Ostream
attach: Window_Fitness, Population, \guard
fitness: Window_Fitness, Individual > \fitness
length: Window_Fitness > \size
iterator: Window_Fitness > Window_FitnessIterator

class Window_FitnessIterator:
ctor: Window_Fitness > Window_FitnessIterator
ctor: Istream > Window_FitnessIterator
print: Window_FitnessIterator, Ostream
next: Window_FitnessIterator > \more, Individual, \fitness

class LinearNormalisation_Fitness:
ctor: > LinearNormalisation_Fitness
ctor: Istream > LinearNormalisation_Fitness
print: LinearNormalisation_Fitness, Ostream
attach: LinearNormalisation_Fitness, Population, \maximum, \decrement
fitness: LinearNormalisation_Fitness, Individual > \fitness
length: LinearNormalisation_Fitness > \size
iterator: LinearNormalisation_Fitness > LinearNormalisation_FitnessIterator

class LinearNormalisation_FitnessIterator:
ctor: LinearNormalisation_Fitness > LinearNormalisation_FitnessIterator
ctor: Istream > LinearNormalisation_FitnessIterator
print: LinearNormalisation_FitnessIterator, Ostream
next: LinearNormalisation_FitnessIterator > \more, Individual, \fitness

class LinearScaling_Fitness:
ctor: > LinearNormalisation_Fitness
ctor: Istream > LinearScaling_Fitness
print: LinearScaling_Fitness, Ostream
attach: LinearScaling_Fitness, Population, \a, \b
fitness: LinearScaling_Fitness, Individual > \fitness
length: LinearScaling_Fitness > \size
iterator: LinearScaling_Fitness > LinearScaling_FitnessIterator

class LinearScaling_FitnessIterator:
ctor: LinearScaling_Fitness > LinearScaling_FitnessIterator
ctor: Istream > LinearScaling_FitnessIterator
print: LinearScaling_FitnessIterator, Ostream
next: LinearScaling_FitnessIterator > \more, Individual, \fitness

class SigmaTruncation_Fitness:
ctor: > SigmaTruncation_Fitness
ctor: Istream > SigmaTruncation_Fitness
print: SigmaTruncation_Fitness, Ostream
attach: SigmaTruncation_Fitness, Population, \c
fitness: SigmaTruncation_Fitness, Individual > \fitness
length: SigmaTruncation_Fitness > \size
iterator: SigmaTruncation_Fitness > SigmaTruncation_FitnessIterator

class SigmaTruncation_FitnessIterator:
ctor: SigmaTruncation_Fitness > SigmaTruncation_FitnessIterator
ctor: Istream > SigmaTruncation_FitnessIterator
print: SigmaTruncation_FitnessIterator, Ostream
next: SigmaTruncation_FitnessIterator > \more, Individual, \fitness

class PowerLawScaling_Fitness:
ctor: > PowerLawScaling_Fitness
ctor: Istream > PowerLawScaling_Fitness
print: PowerLawScaling_Fitness, Ostream
attach: PowerLawScaling_Fitness, Population, \k
fitness: PowerLawScaling_Fitness, Individual > \fitness
length: PowerLawScaling_Fitness > \size
iterator: PowerLawScaling_Fitness > PowerLawScaling_FitnessIterator

class PowerLawScaling_FitnessIterator:
ctor: PowerLawScaling_Fitness > PowerLawScaling_FitnessIterator
ctor: Istream > PowerLawScaling_FitnessIterator
print: PowerLawScaling_FitnessIterator, Ostream
next: PowerLawScaling_FitnessIterator > \more, Individual, \fitness

Selector Class

class Selector:
ctor: > Selector
ctor: Istream > Selector
print: Selector, Ostream
attach: Selector, Fitness
select: Selector > Individual
unselect: Selector, Individual

class Best_Selector:
ctor: > Best_Selector
ctor: Istream > Best_Selector
print: Best_Selector, Ostream
attach: Best_Selector, Fitness
select: Best_Selector > Individual
unselect: Best_Selector, Individual

class Worst_Selector:
ctor: > Worst_Selector
ctor: Istream > Best_Selector
print: Worst_Selector, Ostream
attach: Worst_Selector, Fitness
select: Worst_Selector > Individual
unselect: Worst_Selector, Individual

class Random_Selector:
ctor: Random > Random_Selector
ctor: Istream > Random_Selector
print: Random_Selector, Ostream
attach: Random_Selector, Fitness
select: Random_Selector > Individual
unselect: Random_Selector, Individual

class RouletteWheel_Selector:
ctor: Random > RouletteWheel_Selector
ctor: Istream > RouletteWheel_Selector
print: RouletteWheel_Selector, Ostream
attach: RouletteWheel_Selector, Fitness
select: RouletteWheel_Selector > Individual
unselect: RouletteWheel_Selector, Individual

class AntiRouletteWheel_Selector:
ctor: Random > AntiRouletteWheel_Selector
ctor: Istream > AntiRouletteWheel_Selector
print: RouletteWheel_Selector, Ostream
attach: AntiRouletteWheel_Selector, Fitness
select: AntiRouletteWheel_Selector > Individual
unselect: AntiRouletteWheel_Selector, Individual

class Stochastic_Selector:
ctor: Random > Stochastic_Selector
ctor: Istream > Stochastic_Selector
print: Stochastic_Selector, Ostream
attach: Stochastic_Selector, Fitness, \cycle
select: Stochastic_Selector > Individual
unselect: Stochastic_Selector, Individual

class ExpectedValue_Selector:
ctor: Random > ExpectedValue_Selector
ctor: Istream > ExpectedValue_Selector
print: ExpectedValue_Selector, Ostream
attach: ExpectedValue_Selector, Fitness, \cycle
select: ExpectedValue_Selector > Individual
unselect: ExpectedValue_Selector, Individual

class Similarity_Selector:
ctor: Random > Similarity_Selector
ctor: Istream > Similarity_Selector
print: Similarity_Selector, Ostream
attach: Similarity_Selector, Fitness, Individual
select: Similarity_Selector > Individual
unselect: Similarity_Selector, Individual

Creator Class

class Creator:
ctor: > Creator
create: Creator, Population, \size
create: Creator, History, Population, \size
selector: Creator, Selector > \required
private Creator:
parents: Creator > \number
breed: Creator, [Representation], Population > \succeed

class And_Creator:
ctor: Creator, Creator > And_Creator
create: And_Creator, Population, \size
create: And_Creator, History, Population, \size
selector: And_Creator, Selector > \required
private And_Creator:
parents: And_Creator > \number
breed: And_Creator, [Representation], Population > \succeed

class Or_Creator:
ctor: Creator, \probability, Creator, \probability > Or_Creator
create: Or_Creator, Population, \size
create: Or_Creator, History, Population, \size
selector: Or_Creator, Selector > \required
private Or_Creator:
parents: Or_Creator > \number
breed: Or_Creator, [Representation], Population > \succeed

class Xor_Creator:
ctor: Creator, \weight, Creator, \weight > Xor_Creator
create: Xor_Creator, Population, \size
create: Xor_Creator, History, Population, \size
selector: Xor_Creator, Selector > \required
private Xor_Creator:
parents: Xor_Creator > \number
breed: Xor_Creator, [Representation], Population > \succeed

class Initialise:
ctor: > Initialise
create: Initialise, Population, \size
create: Initialise, History, Population, \size
private Initialise:
parents: Initialise > \number
breed: Initialise, [Representation], Population > \succeed

class Random_Initialise:
ctor: Random > Random_Initialise
create: Random_Initialise, Population, \size
create: Random_Initialise, History, Population, \size

class Bit_Random_Initialise:
ctor: Random > Bit_Random_Initialise
create: Bit_Random_Initialise, Population, \size
create: Bit_Random_Initialise, History, Population, \size

class Number_Random_Initialise:
ctor: Random, \lower, \upper > Number_Random_Initialise
create: Number_Random_Initialise, Population, \size
create: Number_Random_Initialise, History, Population, \size

class Vector_Random_Initialise:
ctor: Random, Initialise > Vector_Random_Initialise
create: Vector_Random_Initialise, Population, \size
create: Vector_Random_Initialise, History, Population, \size

class Tagged_Vector_Random_Initialise:
ctor: Random, Initialise > Tagged_Vector_Random_Initialise
create: Tagged_Vector_Random_Initialise, Population, \size
create: Tagged_Vector_Random_Initialise, History, Population, \size

class Matrix_Random_Initialise:
ctor: Random, Initialise > Vector_Random_Initialise
create: Matrix_Random_Initialise, Population, \size
create: Matrix_Random_Initialise, History, Population, \size

class Ordered_Random_Initialise:
ctor: Random, Initialise > Ordered_Random_Initialise
create: Ordered_Random_Initialise, Population, \size
create: Ordered_Random_Initialise, History, Population, \size

class Search_Initialise:
ctor: Creator, \n > Search_Initialise
create: Search_Initialise, Population, \size
create: Search_Initialise, History, Population, \size
private Search_Initialise:
parents: Search_Initialise > \number
breed: Search_Initialise, [Representation], Population > \succeed

class Distributed_Initialise:
ctor: Random > Search_Initialise
create: Distributed_Initialise, Population, \size
create: Distributed_Initialise, History, Population, \size

class Heuristic_Initialise:
ctor: Random > Heuristic_Initialise
create: Heuristic_Initialise, Population, \size
create: Heuristic_Initialise, History, Population, \size

class Reproduction:
ctor: > Reproduction
create: Reproduction, Population, \size
create: Reproduction, History, Population, \size
selector: Reproduction, Selector > \required

class Clone_Reproduction:
ctor: > Clone_Reproduction
create: Clone_Reproduction, Population, \size
create: Clone_Reproduction, History, Population, \size
private Clone_Reproduction:
parents: Clone_Reproduction > \number
breed: Clone_Reproduction, [Representation], Population > \succeed

class Inversion_Reproduction:
ctor: Random, \portion > Inversion_Reproduction
private Inversion_Reproduction:
parents: Inversion_Reproduction > \number

class Biased_Inversion_Reproduction:
ctor: Random, \portion > Biased_Inversion_Reproduction
create: Biased_Inversion_Reproduction, Population, \size
create: Biased_Inversion_Reproduction, History, Population, \size
private Inversion_Reproduction:
breed: Biased_Inversion_Reproduction, [Representation], Population > \succeed

class Unbiased_Inversion_Reproduction:
ctor: Random, \portion > Unbiased_Inversion_Reproduction
create: Unbiased_Inversion_Reproduction, Population, \size
create: Unbiased_Inversion_Reproduction, History, Population, \size
private Inversion_Reproduction:
breed: Unbiased_Inversion_Reproduction, [Representation], Population > \succeed

class Mutation_Reproduction:
ctor: Random > Mutation_Reproduction
private Mutation_Reproduction:
parents: Mutation_Reproduction > \number

class Bit_Mutation_Reproduction:
ctor: Random > Bit_Mutation_Reproduction
create: Bit_Mutation_Reproduction, Population, \size
create: Bit_Mutation_Reproduction, History, Population, \size
private Bit_Mutation_Reproduction:
breed: Bit_Mutation_Reproduction, [Bit_Representation], Population > \succeed

class Number_Mutation_Reproduction:
ctor: Random > Number_Mutation_Reproduction

class Random_Number_Mutation_Reproduction:
ctor: Random, \lower, \upper > Random_Number_Mutation_Reproduction
create: Random_Number_Mutation_Reproduction, Population, \size
create: Random_Number_Mutation_Reproduction, History, Population, \size
private Random_Number_Mutation_Reproduction:
breed: Random_Number_Mutation_Reproduction, [Number_Representation], Population > \succeed

class Creep_Number_Mutation_Reproduction:
ctor: Random, \lower, \upper, \creep > Creep_Number_Mutation_Reproduction
create: Creep_Number_Mutation_Reproduction, Population, \size
create: Creep_Number_Mutation_Reproduction, History, Population, \size
private Creep_Number_Mutation_Reproduction:
breed: Creep_Number_Mutation_Reproduction, [Number_Representation], Population > \succeed

class Vector_Mutation_Reproduction:
ctor: Random > Vector_Mutation_Reproduction

class Single_Vector_Mutation_Reproduction:
ctor: Random, Mutation_Reproduction > Single_Vector_Mutation_Reproduction
create: Single_Vector_Mutation_Reproduction, Population, \size
create: Single_Vector_Mutation_Reproduction, History, Population, \size
private Single_Vector_Mutation_Reproduction:
breed: Single_Vector_Mutation_Reproduction, [Vector_Representation], Population > \succeed

class Deletion_Vector_Mutation_Reproduction:
ctor: Random > Deletion_Vector_Mutation_Reproduction
create: Deletion_Vector_Mutation_Reproduction, Population, \size
create: Deletion_Vector_Mutation_Reproduction, History, Population, \size
private Deletion_Vector_Mutation_Reproduction:
breed: Deletion_Vector_Mutation_Reproduction, [Vector_Representation], Population > \succeed

class Addition_Vector_Mutation_Reproduction:
ctor: Random > Addition_Vector_Mutation_Reproduction
create: Addition_Vector_Mutation_Reproduction, Population, \size
create: Addition_Vector_Mutation_Reproduction, History, Population, \size

class Duplication_Addition_Vector_Mutation_Reproduction:
ctor: Random > Duplication_Addition_Vector_Mutation_Reproduction
create: Duplication_Addition_Vector_Mutation_Reproduction, Population, \size
create: Duplication_Addition_Vector_Mutation_Reproduction, History, Population, \size
private Duplication_Addition_Vector_Mutation_Reproduction:
breed: Duplication_Addition_Vector_Mutation_Reproduction, [Vector_Representation], Population > \succeed

class Initialised_Addition_Vector_Mutation_Reproduction:
ctor: Random, Initialise > Initialised_Addition_Vector_Mutation_Reproduction
create: Initialised_Addition_Vector_Mutation_Reproduction, Population, \size
create: Initialised_Addition_Vector_Mutation_Reproduction, History, Population, \size
private Initialised_Addition_Vector_Mutation_Reproduction:
breed: Initialised_Addition_Vector_Mutation_Reproduction, [Vector_Representation], Population > \succeed

class Related_Addition_Vector_Mutation_Reproduction:
ctor: Random > Related_Addition_Vector_Mutation_Reproduction
create: Related_Addition_Vector_Mutation_Reproduction, Population, \size
create: Related_Addition_Vector_Mutation_Reproduction, History, Population, \size
private Related_Addition_Vector_Mutation_Reproduction:
breed: Related_Addition_Vector_Mutation_Reproduction, [Vector_Representation], Population > \succeed

class Cut_Vector_Mutation_Reproduction:
ctor: Random > Cut_Vector_Mutation_Reproduction
create: Cut_Mutation_Reproduction, Population, \size
create: Cut_Mutation_Reproduction, History, Population, \size
private Cut_Vector_Mutation_Reproduction:
breed: Cut_Vector_Mutation_Reproduction, [Vector_Representation], Population > \succeed

class Ordered_Mutation_Reproduction:
ctor: Random > Ordered_Mutation_Reproduction

class OrderBased_Ordered_Mutation_Reproduction:
ctor: Random > OrderBased_Ordered_Mutation_Reproduction
create: OrderBased_Ordered_Mutation_Reproduction, Population, \size
create: OrderBased_Ordered_Mutation_Reproduction, History, Population, \size
private OrderBased_Ordered_Mutation_Reproduction:
breed: OrderBased_Ordered_Mutation_Reproduction, [Ordered_Representation], Population > \succeed

class PositionBased_Ordered_Mutation_Reproduction:
ctor: Random > PositionBased_Ordered_Mutation_Reproduction
create: PositionBased_Ordered_Mutation_Reproduction, Population, \size
create: PositionBased_Ordered_Mutation_Reproduction, History, Population, \size
private PositionBased_Ordered_Mutation_Reproduction:
breed: PositionBased_Ordered_Mutation_Reproduction, [Ordered_Representation], Population > \succeed

class ScrambleSublist_Ordered_Mutation_Reproduction:
ctor: Random > ScrambleSublist_Ordered_Mutation_Reproduction
create: ScrambleSublist_Ordered_Mutation_Reproduction, Population, \size
create: ScrambleSublist_Ordered_Mutation_Reproduction, History, Population, \size
private ScrambleSublist_Ordered_Mutation_Reproduction:
breed: ScrambleSublist_Ordered_Mutation_Reproduction, [Ordered_Representation], Population > \succeed

class RandomHillClimb_Mutation_Reproduction:
ctor: Random, Mutation > RandomHillClimb_Mutation_Reproduction
create: RandomHillClimb_Mutation_Reproduction, Population, \size
create: RandomHillClimb_Mutation_Reproduction, History, Population, \size
private RandomHillClimb_Mutation_Reproduction:
breed: RandomHillClimb_Mutation_Reproduction, [Representation], Population > \succeed

class Crossover_Reproduction:
ctor: Random > Crossover_Reproduction
create: Crossover_Reproduction, Population, \size
create: Crossover_Reproduction, History, Population, \size
private Crossover_Reproduction:
parents: Crossover_Reproduction > \number

class Number_Crossover_Reproduction:
ctor: Random > Number_Crossover_Reproduction

class Average_Number_Crossover_Reproduction:
ctor: Random > Average_Number_Crossover_Reproduction
create: Average_Number_Crossover_Reproduction, Population, \size
create: Average_Number_Crossover_Reproduction, History, Population, \size
private Average_Number_Crossover_Reproduction:
breed: Average_Number_Crossover_Reproduction, [Number_Representation], Population > \succeed

class Vector_Crossover_Reproduction:
ctor: Random > Vector_Crossover_Reproduction

class OnePoint_Vector_Crossover_Reproduction:
ctor: Random > OnePoint_Vector_Crossover_Reproduction
create: OnePoint_Vector_Crossover_Reproduction, Population, \size
create: OnePoint_Vector_Crossover_Reproduction, History, Population, \size
private OnePoint_Vector_Crossover_Reproduction:
breed: OnePoint_Vector_Crossover_Reproduction, [Vector_Representation], Population > \succeed

class MultiPoint_Vector_Crossover_Reproduction:
ctor: Random, \n > MultiPoint_Vector_Crossover_Reproduction
create: MultiPoint_Vector_Crossover_Reproduction, Population, \size
create: MultiPoint_Vector_Crossover_Reproduction, History, Population, \size
private MultiPoint_Vector_Crossover_Reproduction:
breed: MultiPoint_Vector_Crossover_Reproduction, [Vector_Representation], Population > \succeed

class Segmented_Vector_Crossover_Reproduction:
ctor: Random, \probability > Segmented_Vector_Crossover_Reproduction
create: Segmented_Vector_Crossover_Reproduction, Population, \size
create: Segmented_Vector_Crossover_Reproduction, History, Population, \size
private Segmented_Vector_Crossover_Reproduction:
breed: Segmented_Vector_Crossover_Reproduction, [Vector_Representation], Population > \succeed

class Uniform_Vector_Crossover_Reproduction:
ctor: Random > Uniform_Vector_Crossover_Reproduction
create: Uniform_Vector_Crossover_Reproduction, Population, \size
create: Uniform_Vector_Crossover_Reproduction, History, Population, \size
private Uniform_Vector_Crossover_Reproduction:
breed: Uniform_Vector_Crossover_Reproduction, [Vector_Representation], Population > \succeed

class Shuffle_Vector_Crossover_Reproduction:
ctor: Random, Crossover > Shuffle_Vector_Crossover_Reproduction
create: Shuffle_Vector_Crossover_Reproduction, Population, \size
create: Shuffle_Vector_Crossover_Reproduction, History, Population, \size
private Shuffle_Vector_Crossover_Reproduction:
breed: Shuffle_Vector_Crossover_Reproduction, [Vector_Representation], Population > \succeed

class Traverse_Vector_Crossover_Reproduction:
ctor: Random, Crossover > Traverse_Vector_Crossover_Reproduction
create: Traverse_Vector_Crossover_Reproduction, Population, \size
create: Traverse_Vector_Crossover_Reproduction, History, Population, \size
private Traverse_Vector_Crossover_Reproduction:
breed: Traverse_Vector_Crossover_Reproduction, [Vector_Representation], Population > \succeed

class Splice_Vector_Crossover_Reproduction:
ctor: Random, Crossover > Splice_Vector_Crossover_Reproduction
create: Splice_Vector_Crossover_Reproduction, Population, \size
create: Splice_Vector_Crossover_Reproduction, History, Population, \size
private Splice_Vector_Crossover_Reproduction:
breed: Splice_Vector_Crossover_Reproduction, [Vector_Representation], Population > \succeed

class Ordered_Crossover_Reproduction:
ctor: Random > Ordered_Crossover_Reproduction

class PositionBased_Ordered_Crossover_Reproduction:
ctor: Random > PositionBased_Ordered_Crossover_Reproduction
create: PositionBased_Ordered_Crossover_Reproduction, Population, \size
create: PositionBased_Ordered_Crossover_Reproduction, History, Population, \size
private PositionBased_Ordered_Crossover_Reproduction:
breed: PositionBased_Ordered_Crossover_Reproduction, [Ordered_Representation], Population > \succeed

class OrderBased_Ordered_Crossover_Reproduction:
ctor: Random > OrderBased_Ordered_Crossover_Reproduction
create: OrderBased_Ordered_Crossover_Reproduction, Population, \size
create: OrderBased_Ordered_Crossover_Reproduction, History, Population, \size
private OrderBased_Ordered_Crossover_Reproduction:
breed: OrderBased_Ordered_Crossover_Reproduction, [Ordered_Representation], Population > \succeed

class Repair_Reproduction:
ctor: > Repair_Reproduction
create: Repair_Reproduction, Population, \size
create: Repair_Reproduction, History, Population, \size
private Crossover_Reproduction:
parents: Repair_Reproduction > \number

History Class

class History:
ctor: > History
ctor: Istream > History
print: History, Ostream
add: History, Individual, [Individual]
retrieve: History, Individual > [Individual]

Random Class

class Random:
ctor: > Random
ctor: \seed > Random
ctor: Istream > Random
print: Random, Ostream
value: Random > \boolean
value: Random, \range > \integer
value: Random, \lower, \upper > \integer
value: Random, \range, \precision > \real
value: Random, \lower, \upper, \precision > \real