The AHA Model  Revision: 12809
Reference implementation 04 (HEDG02_04)
the_genome::chromosome Type Reference

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...

Collaboration diagram for the_genome::chromosome:

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...
 

Detailed Description

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.

Member Function/Subroutine Documentation

◆ init_chromosome()

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.

◆ create_chromosome()

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.

◆ recalc_rank_id()

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.

◆ mutate_swap()

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.

◆ mutate_shift()

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.

◆ sort_rank_id()

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.

Member Data Documentation

◆ chromosome_label

character(len=label_length) the_genome::chromosome::chromosome_label

chromosome label

Definition at line 112 of file m_genome.f90.

◆ clength

integer the_genome::chromosome::clength

chromosome length, i.e. N of alleles here

Definition at line 114 of file m_genome.f90.

◆ allele

type(gene), dimension(:), allocatable the_genome::chromosome::allele

array of alleles of the size clength

Definition at line 116 of file m_genome.f90.


The documentation for this type was generated from the following file: