The AHA Model
Revision: 12809
Reference implementation 04 (HEDG02_04)
|
This type describes the chromosome object. Chromosome consists of an array of alleles and a descriptive string label. See "the genome structure" for as general description and "chromosome" for details. More...
Public Member Functions | |
procedure, public | init_chromosome => chromosome_init_allocate_random |
This subroutine initialises the chromosome with, and allocates, random alleles, sets one of them randomly dominant and optionally defines the chromosome label. See the_genome::chromosome_init_allocate_random() More... | |
procedure, public | create_chromosome => chromosome_create_allocate_zero |
Init a new chromosome, zero, non-random. See the_genome::chromosome_create_allocate_zero() More... | |
procedure, public | recalc_rank_id => chromosome_recalculate_rank_ids |
This subroutine recalculates rank_id indices for consecutive gene objects within the chromosome. This may be necessary after reordering by random relocation mutation. See the_genome::chromosome_recalculate_rank_ids() More... | |
procedure, public | mutate_swap => chromosome_mutate_relocate_swap_random |
mutate within the same chromosome, relocate a gene (unit of alleles) to a different random position within the same chromosome, the misplaced gene moves to the relocated gene position, so they are just swap. See the_genome::chromosome_mutate_relocate_swap_random() More... | |
procedure, public | mutate_shift => chromosome_mutate_relocate_shift_random |
Mutate within the same chromosome, relocate a gene (unit of alleles) to a different random position within the same chromosome, shifting all other genes within the chromosome down one position. This works as follows: first, we randomly determine the gene to relocate, assign it a new random rank_id. Then re-sort the chromosome according to the new ranks with qsort with the qs_partition_rank_id backend. See the_genome::chromosome_mutate_relocate_shift_random() More... | |
procedure, public | sort_rank_id => chromosome_sort_rank_id |
Sort GENE objects within the CHROMOSOME by their rank_id The two subroutines below are a variant of the recursive quick-sort algorithm adapted for sorting integer components of the the CHROMOSOME object. See the_genome::chromosome_sort_rank_id() More... | |
Public Attributes | |
character(len=label_length) | chromosome_label |
chromosome label More... | |
integer | clength |
chromosome length, i.e. N of alleles here More... | |
type(gene), dimension(:), allocatable | allele |
array of alleles of the size clength More... | |
This type describes the chromosome object. Chromosome consists of an array of alleles and a descriptive string label. See "the genome structure" for as general description and "chromosome" for details.
Definition at line 110 of file m_genome.f90.
procedure, public the_genome::chromosome::init_chromosome |
This subroutine initialises the chromosome with, and allocates, random alleles, sets one of them randomly dominant and optionally defines the chromosome label. See the_genome::chromosome_init_allocate_random()
Definition at line 122 of file m_genome.f90.
procedure, public the_genome::chromosome::create_chromosome |
Init a new chromosome, zero, non-random. See the_genome::chromosome_create_allocate_zero()
Definition at line 125 of file m_genome.f90.
procedure, public the_genome::chromosome::recalc_rank_id |
This subroutine recalculates rank_id indices for consecutive gene objects within the chromosome. This may be necessary after reordering by random relocation mutation. See the_genome::chromosome_recalculate_rank_ids()
Definition at line 130 of file m_genome.f90.
procedure, public the_genome::chromosome::mutate_swap |
mutate within the same chromosome, relocate a gene (unit of alleles) to a different random position within the same chromosome, the misplaced gene moves to the relocated gene position, so they are just swap. See the_genome::chromosome_mutate_relocate_swap_random()
Definition at line 135 of file m_genome.f90.
procedure, public the_genome::chromosome::mutate_shift |
Mutate within the same chromosome, relocate a gene (unit of alleles) to a different random position within the same chromosome, shifting all other genes within the chromosome down one position. This works as follows: first, we randomly determine the gene to relocate, assign it a new random rank_id. Then re-sort the chromosome according to the new ranks with qsort
with the qs_partition_rank_id
backend. See the_genome::chromosome_mutate_relocate_shift_random()
Definition at line 143 of file m_genome.f90.
procedure, public the_genome::chromosome::sort_rank_id |
Sort GENE objects within the CHROMOSOME by their rank_id The two subroutines below are a variant of the recursive quick-sort algorithm adapted for sorting integer components of the the CHROMOSOME
object. See the_genome::chromosome_sort_rank_id()
Definition at line 149 of file m_genome.f90.
character(len=label_length) the_genome::chromosome::chromosome_label |
chromosome label
Definition at line 112 of file m_genome.f90.
integer the_genome::chromosome::clength |
chromosome length, i.e. N of alleles here
Definition at line 114 of file m_genome.f90.
type(gene), dimension(:), allocatable the_genome::chromosome::allele |
array of alleles of the size clength
Definition at line 116 of file m_genome.f90.