![]() |
The AHA Model
Revision: 17463
Reference implementation 04 (HEDG02_04)
|
Definition of the individual agent in the AHA Model. More...
Go to the source code of this file.
Data Types | |
| type | the_individual::individual_agent |
| This type describes parameters of the individual agent. More... | |
Modules | |
| module | the_individual |
| An umbrella module that collects all the components of the individual agent. | |
Functions/Subroutines | |
| subroutine, private | the_individual::individual_init_random (this, exclude_genome) |
| Generate a random agent from the genotype. More... | |
| subroutine | the_individual::individual_create_zero (this) |
| Generate a new empty agent. More... | |
| elemental subroutine | the_individual::individual_agent_set_dead (this) |
| Set the individual to be dead. Note that this function does not deallocate the individual agent object, this may be a separate destructor function. More... | |
| subroutine | the_individual::kill_destroy (this) |
| Finalisation procedure. Note that finalisation of objects may not yet be implemented in the compiler. Therefore this subroutine is not used so far, just a stub. More... | |
| elemental real(srp) function | the_individual::individual_get_risk_mortality_individual (this) |
| Get the individually-specific mortality risk for the agent. More... | |
| elemental subroutine | the_individual::individual_preevol_fitness_calc (this) |
| Calculate fitness for the pre-evolution phase of the genetic algorithm. Pre-evolution is based on selection for a simple criterion without explicit reproduction etc. The criterion for selection at this phase is set by the integer the_individual::individual_agent::fitness component. More... | |
| elemental integer function | fitness_birth_mass_ratio () |
| Fitness is calculated as the ratio of the birth mass to the current mass. This value is weighted by the multiplier (1000) to get a fairly large integer (so decimals are unimportant) and also weighted by the number of food items eaten and the number of offspring produced. More... | |
| elemental integer function | fitness_stomach_mass_ratio () |
| Fitness is calculated as the ratio of the body mass to the stomach content. More... | |
| elemental integer function | fitness_stomach_mass_abs () |
| Fitness is calculated as the absolute stomach content. More... | |
| elemental integer function | fitness_food_mass_sum () |
| Fitness is calculated as the cumulative mass of all food objects eaten. More... | |
| elemental integer function | fitness_mass_incr_ratio () |
| Fitness is calculated as the mass increment in units of birth mass. More... | |
| elemental integer function | fitness_mass_incr_abs () |
| Fitness is calculated as absolute mass increment from the birth mass. More... | |
| elemental integer function | fitness_reprod_factor () |
| Fitness as the reproductive factor. More... | |
| elemental integer function | fitness_energy_reprfact () |
| Fitness as a weighted combination of energy and reproductive factor. More... | |
| elemental integer function | fitness_energy_reprfact_mass () |
| Fitness as a weighted combination of mass increment, energy, and reproductive factor. More... | |
Variables | |
| character(len= *), parameter, private | the_individual::modname = "(THE_INDIVIDUAL)" |
| elemental integer function individual_preevol_fitness_calc::fitness_birth_mass_ratio |
Fitness is calculated as the ratio of the birth mass to the current mass. This value is weighted by the multiplier (1000) to get a fairly large integer (so decimals are unimportant) and also weighted by the number of food items eaten and the number of offspring produced.
INT_MULTIPLIER_FITNESS is a multiplier to set the appropriate scaling for the initial the_individual::individual_agent::fitness.
INT_WEIGHT_FEEDING is an integer weight given to the any non-zero successful feeding.
INT_WEIGHT_OFFSPRING is an integer weight given to the any non-zero successful reproductions
Initial fitness is the ratio of the birth mass to the current mass weighted by the INT_MULTIPLIER_FITNESS.
If the agent successfully caught and eaten any number of food items, its fitness is divided by the number of food items eaten weighted by the INT_WEIGHT_FEEDING parameter.
If the agent has successfully done any reproduction, its fitness is divided by the number of offspring weighted by INT_WEIGHT_OFFSPRING.
Definition at line 283 of file m_indiv.f90.
| elemental integer function individual_preevol_fitness_calc::fitness_stomach_mass_ratio |
Fitness is calculated as the ratio of the body mass to the stomach content.
INT_MULTIPLIER_FITNESS is a multiplier to set the appropriate scaling for the initial the_individual::individual_agent::fitness.
Definition at line 325 of file m_indiv.f90.
| elemental integer function individual_preevol_fitness_calc::fitness_stomach_mass_abs |
Fitness is calculated as the absolute stomach content.
INT_MULTIPLIER_FITNESS is a multiplier to set the appropriate scaling for the initial the_individual::individual_agent::fitness.
Definition at line 347 of file m_indiv.f90.
| elemental integer function individual_preevol_fitness_calc::fitness_food_mass_sum |
Fitness is calculated as the cumulative mass of all food objects eaten.
INT_MULTIPLIER_FITNESS is a multiplier to set the appropriate scaling for the initial the_individual::individual_agent::fitness.
Definition at line 369 of file m_indiv.f90.
| elemental integer function individual_preevol_fitness_calc::fitness_mass_incr_ratio |
Fitness is calculated as the mass increment in units of birth mass.
INT_MULTIPLIER_FITNESS is a multiplier to set the appropriate scaling for the initial the_individual::individual_agent::fitness.
Definition at line 391 of file m_indiv.f90.
| elemental integer function individual_preevol_fitness_calc::fitness_mass_incr_abs |
Fitness is calculated as absolute mass increment from the birth mass.
INT_MULTIPLIER_FITNESS is a multiplier to set the appropriate scaling for the initial the_individual::individual_agent::fitness.
Definition at line 413 of file m_indiv.f90.
| elemental integer function individual_preevol_fitness_calc::fitness_reprod_factor |
Fitness as the reproductive factor.
INT_MULTIPLIER_FITNESS is a multiplier to set the appropriate scaling for the initial the_individual::individual_agent::fitness.
Definition at line 435 of file m_indiv.f90.
| elemental integer function individual_preevol_fitness_calc::fitness_energy_reprfact |
Fitness as a weighted combination of energy and reproductive factor.
INT_MULTIPLIER_FITNESS is a multiplier to set the appropriate scaling for the initial the_individual::individual_agent::fitness.
FITNESS_WEIGHT_ENERGY is the weighting factor for energy, respective weighting for the reproductive factor is then 1 - FITNESS_WEIGHT_ENERGY.
Fitness of an alive agent cannot be smaller than in a dead agent.
Definition at line 457 of file m_indiv.f90.
| elemental integer function individual_preevol_fitness_calc::fitness_energy_reprfact_mass |
Fitness as a weighted combination of mass increment, energy, and reproductive factor.
INT_MULTIPLIER_FITNESS is a multiplier to set the appropriate scaling for the initial the_individual::individual_agent::fitness.FITNESS_WEIGHT_MASINC is the weighting factor for relative weight increment.FITNESS_WEIGHT_ENERGY is the weighting factor for energy,If mass increment is negative, fitness is given a big value 1000,000,
Then fitness function is calculated as a weighted sum of relative weight increment W1 (M-Mb)/Mb + W2 E + W3 Rf
Fitness of an alive agent is always limited to lay within the range from 0 to fitness of a dead agent.
Definition at line 488 of file m_indiv.f90.