[ 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.
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: |
© 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. |