[ Home | Docs | News | Resources | Download]
GAUL Documentation: Built-in Chromosomes

Built-in chromosome types

Along with the character, bitstring and boolean chromosome types illustrated in the earlier sections of this tutorial, GAUL provides several chromosome types. This section of the tutorial lists these types along with their associated built-in GA operators.

GAUL typeC typeComments
integerint[] 
doubledouble[] 
boolean?C type depends upon platform.
bitstringchar[]Bitstring packed into chars.
charchar[] 
printablechar[]Only uses printable ASCII characters.

Integer chromosomes

The seed operators generate initial solutions with which to fill to population prior to evolution. These generally come in two flavours. "ga_seed_XXX_random()" fills the chromosomes randomly from a linear distribution. "ga_seed_XXX_zero()" fills the chromosomes with '0's.

	ga_seed_integer_random()
	ga_seed_integer_zero()

The mutation operators, unsurprisingly, perform mutations on a single entity. The naming of these functions is somewhat systematic. "singlepoint" refers to a single allele, "multipoint" to a random selection of alleles, and "allpoint" to every allele. "drift" indicates a small mutation, while "randomize" indicates random reseting. However, you should note that not every type of mutation is implemented for each chromosome type.

In the case of the "multipoint" mutations, by default, the probability of each individual allele being mutated is 0.2 (i.e. 20% will be mutated). This probability may be altered on a per population basis via the function "ga_population_set_allele_mutation_prob()" function. This function takes two arguments, the first being a population and the second being the new probability for that population. This function is demonstrated in the the royalroad_mutation_prob_demo.c demonstration program.

	ga_mutate_integer_singlepoint_drift()
	ga_mutate_integer_singlepoint_randomize()
	ga_mutate_integer_multipoint()
	ga_mutate_integer_allpoint()

No points for guessing what the crossover operators do. Again, a somewhat systematic naming convention is used. "singlepoint" refers to a standard single point crossover and "doublepoint" refers to a standard two-point crossover. In those cases, crossover occurs seperately for each chromosome if multiple chromosomes are being used. "mixing" indicates that children will be formed from a random selection of their parents intact chromsomes, and "allele_mixing" indicates that childrens chromosomes will be formed from a random selection of their parents individual alleles.

	ga_crossover_integer_singlepoints()
	ga_crossover_integer_doublepoints()
	ga_crossover_integer_mixing()
	ga_crossover_integer_allele_mixing()

Double chromosomes

	ga_seed_double_random()
	ga_seed_double_zero()

	ga_mutate_double_singlepoint_randomize()
	ga_mutate_double_singlepoint_drift()
	ga_mutate_double_multipoint()
	ga_mutate_double_allpoint()

	ga_crossover_double_singlepoints()
	ga_crossover_double_doublepoints()
	ga_crossover_double_mixing()
	ga_crossover_double_allele_mixing()

Boolean chromosomes

	ga_seed_boolean_random()
	ga_seed_boolean_zero()

	ga_mutate_boolean_singlepoint()
	ga_mutate_boolean_multipoint()

	ga_crossover_boolean_singlepoints()
	ga_crossover_boolean_booleanpoints()
	ga_crossover_boolean_mixing()
	ga_crossover_boolean_allele_mixing()

Bitstring chromosomes

	ga_seed_bitstring_random()

	ga_mutate_bitstring_singlepoint()
	ga_mutate_bitstring_multipoint()

	ga_crossover_bitstring_singlepoints()
	ga_crossover_bitstring_doublepoints()
	ga_crossover_bitstring_mixing()
	ga_crossover_bitstring_allele_mixing()

Character chromosomes

	ga_seed_char_random()

	ga_mutate_char_singlepoint_drift()
	ga_mutate_char_singlepoint_randomize()
	ga_mutate_char_multipoint()
	ga_mutate_char_allpoint()

	ga_crossover_char_singlepoints()
	ga_crossover_char_doublepoints()
	ga_crossover_char_mixing()
	ga_crossover_char_allele_mixing()

Printable chromosomes

	ga_seed_printable_random()

	ga_mutate_printable_singlepoint_drift()
	ga_mutate_printable_singlepoint_randomize()
	ga_mutate_printable_multipoint()
	ga_mutate_printable_allpoint()

	ga_crossover_char_singlepoints()
	ga_crossover_char_doublepoints()
	ga_crossover_char_mixing()
	ga_crossover_char_allele_mixing()

You will notice that the character chromosome crossover operators are reused for the printable chromosome type.

[ BACK TO TOP | NEXT SECTION OF TUTORIAL ]

[ Home | Docs | News | Resources | Download]
Hosted by:
SourceForge Logo
GAUL Button Valid HTML 4.01!

© 2003-2005, "Stewart Adcock" <stewart@linux-domain.com> All rights reserved.
All trademarks on this page are probably owned by their respective companies. You can insert you own favourite disclaimer here.