lc_ecological_events (faber_neuroevolution v1.2.4)
View SourceBehavioral event constructors for Ecological Silo.
Events related to niches, environmental stress, and carrying capacity. Ecological Silo operates at timescale τ=50.
Summary
Types
-type ecological_event() :: #niche_occupied{meta :: #lc_event_meta{event_id :: binary(), correlation_id :: binary() | undefined, causation_id :: binary() | undefined, timestamp :: timestamp(), version :: pos_integer(), emitter :: atom()}, niche_id :: binary(), occupant_id :: individual_id(), population_id :: population_id(), niche_fitness_range :: {float(), float()}, competition_level :: float()} | #niche_vacated{meta :: #lc_event_meta{event_id :: binary(), correlation_id :: binary() | undefined, causation_id :: binary() | undefined, timestamp :: timestamp(), version :: pos_integer(), emitter :: atom()}, niche_id :: binary(), vacating_id :: individual_id() | undefined, population_id :: population_id(), vacation_reason :: extinction | migration | outcompeted} | #stress_applied{meta :: #lc_event_meta{event_id :: binary(), correlation_id :: binary() | undefined, causation_id :: binary() | undefined, timestamp :: timestamp(), version :: pos_integer(), emitter :: atom()}, population_id :: population_id(), stress_type :: resource | environmental | competitive | random, stress_intensity :: float(), affected_individuals :: non_neg_integer(), expected_duration :: non_neg_integer() | indefinite} | #stress_relieved{meta :: #lc_event_meta{event_id :: binary(), correlation_id :: binary() | undefined, causation_id :: binary() | undefined, timestamp :: timestamp(), version :: pos_integer(), emitter :: atom()}, population_id :: population_id(), stress_type :: resource | environmental | competitive | random, previous_intensity :: float(), relief_cause :: adaptation | environment_change | intervention} | #carrying_capacity_changed{meta :: #lc_event_meta{event_id :: binary(), correlation_id :: binary() | undefined, causation_id :: binary() | undefined, timestamp :: timestamp(), version :: pos_integer(), emitter :: atom()}, population_id :: population_id(), capacity_before :: non_neg_integer(), capacity_after :: non_neg_integer(), change_cause :: resource_availability | environmental | policy} | #resource_scarcity_detected{meta :: #lc_event_meta{event_id :: binary(), correlation_id :: binary() | undefined, causation_id :: binary() | undefined, timestamp :: timestamp(), version :: pos_integer(), emitter :: atom()}, population_id :: population_id(), resource_type :: compute | memory | evaluation_time, availability :: float(), threshold :: float(), affected_ratio :: float()} | #resource_abundance_detected{meta :: #lc_event_meta{event_id :: binary(), correlation_id :: binary() | undefined, causation_id :: binary() | undefined, timestamp :: timestamp(), version :: pos_integer(), emitter :: atom()}, population_id :: population_id(), resource_type :: compute | memory | evaluation_time, availability :: float(), surplus_ratio :: float()} | #extinction_risk_elevated{meta :: #lc_event_meta{event_id :: binary(), correlation_id :: binary() | undefined, causation_id :: binary() | undefined, timestamp :: timestamp(), version :: pos_integer(), emitter :: atom()}, species_id :: species_id(), population_id :: population_id(), risk_level :: float(), risk_factors :: [atom()], population_size :: non_neg_integer()} | #ecosystem_disrupted{meta :: #lc_event_meta{event_id :: binary(), correlation_id :: binary() | undefined, causation_id :: binary() | undefined, timestamp :: timestamp(), version :: pos_integer(), emitter :: atom()}, population_id :: population_id(), disruption_type :: catastrophe | invasion | collapse, disruption_severity :: float(), species_affected :: non_neg_integer(), recovery_estimate_generations :: non_neg_integer()}.
-type individual_id() :: binary().
-type population_id() :: binary().
-type species_id() :: binary().
-type timestamp() :: integer().
Functions
-spec carrying_capacity_changed(map()) -> #carrying_capacity_changed{meta :: #lc_event_meta{event_id :: binary(), correlation_id :: binary() | undefined, causation_id :: binary() | undefined, timestamp :: timestamp(), version :: pos_integer(), emitter :: atom()}, population_id :: population_id(), capacity_before :: non_neg_integer(), capacity_after :: non_neg_integer(), change_cause :: resource_availability | environmental | policy}.
-spec ecosystem_disrupted(map()) -> #ecosystem_disrupted{meta :: #lc_event_meta{event_id :: binary(), correlation_id :: binary() | undefined, causation_id :: binary() | undefined, timestamp :: timestamp(), version :: pos_integer(), emitter :: atom()}, population_id :: population_id(), disruption_type :: catastrophe | invasion | collapse, disruption_severity :: float(), species_affected :: non_neg_integer(), recovery_estimate_generations :: non_neg_integer()}.
-spec event_to_map(ecological_event()) -> map().
-spec extinction_risk_elevated(map()) -> #extinction_risk_elevated{meta :: #lc_event_meta{event_id :: binary(), correlation_id :: binary() | undefined, causation_id :: binary() | undefined, timestamp :: timestamp(), version :: pos_integer(), emitter :: atom()}, species_id :: species_id(), population_id :: population_id(), risk_level :: float(), risk_factors :: [atom()], population_size :: non_neg_integer()}.
-spec niche_occupied(map()) -> #niche_occupied{meta :: #lc_event_meta{event_id :: binary(), correlation_id :: binary() | undefined, causation_id :: binary() | undefined, timestamp :: timestamp(), version :: pos_integer(), emitter :: atom()}, niche_id :: binary(), occupant_id :: individual_id(), population_id :: population_id(), niche_fitness_range :: {float(), float()}, competition_level :: float()}.
-spec niche_vacated(map()) -> #niche_vacated{meta :: #lc_event_meta{event_id :: binary(), correlation_id :: binary() | undefined, causation_id :: binary() | undefined, timestamp :: timestamp(), version :: pos_integer(), emitter :: atom()}, niche_id :: binary(), vacating_id :: individual_id() | undefined, population_id :: population_id(), vacation_reason :: extinction | migration | outcompeted}.
-spec resource_abundance_detected(map()) -> #resource_abundance_detected{meta :: #lc_event_meta{event_id :: binary(), correlation_id :: binary() | undefined, causation_id :: binary() | undefined, timestamp :: timestamp(), version :: pos_integer(), emitter :: atom()}, population_id :: population_id(), resource_type :: compute | memory | evaluation_time, availability :: float(), surplus_ratio :: float()}.
-spec resource_scarcity_detected(map()) -> #resource_scarcity_detected{meta :: #lc_event_meta{event_id :: binary(), correlation_id :: binary() | undefined, causation_id :: binary() | undefined, timestamp :: timestamp(), version :: pos_integer(), emitter :: atom()}, population_id :: population_id(), resource_type :: compute | memory | evaluation_time, availability :: float(), threshold :: float(), affected_ratio :: float()}.
-spec stress_applied(map()) -> #stress_applied{meta :: #lc_event_meta{event_id :: binary(), correlation_id :: binary() | undefined, causation_id :: binary() | undefined, timestamp :: timestamp(), version :: pos_integer(), emitter :: atom()}, population_id :: population_id(), stress_type :: resource | environmental | competitive | random, stress_intensity :: float(), affected_individuals :: non_neg_integer(), expected_duration :: non_neg_integer() | indefinite}.
-spec stress_relieved(map()) -> #stress_relieved{meta :: #lc_event_meta{event_id :: binary(), correlation_id :: binary() | undefined, causation_id :: binary() | undefined, timestamp :: timestamp(), version :: pos_integer(), emitter :: atom()}, population_id :: population_id(), stress_type :: resource | environmental | competitive | random, previous_intensity :: float(), relief_cause :: adaptation | environment_change | intervention}.