lc_developmental_events (faber_neuroevolution v1.2.4)

View Source

Behavioral event constructors for Developmental Silo.

Events related to ontogeny, critical periods, and plasticity. Developmental Silo operates at timescale τ=40.

Summary

Types

developmental_event/0

-type developmental_event() ::
          #critical_period_opened{meta ::
                                      #lc_event_meta{event_id :: binary(),
                                                     correlation_id :: binary() | undefined,
                                                     causation_id :: binary() | undefined,
                                                     timestamp :: timestamp(),
                                                     version :: pos_integer(),
                                                     emitter :: atom()},
                                  individual_id :: individual_id(),
                                  period_type :: sensory | motor | cognitive | social,
                                  plasticity_boost :: float(),
                                  expected_duration_generations :: non_neg_integer()} |
          #critical_period_closed{meta ::
                                      #lc_event_meta{event_id :: binary(),
                                                     correlation_id :: binary() | undefined,
                                                     causation_id :: binary() | undefined,
                                                     timestamp :: timestamp(),
                                                     version :: pos_integer(),
                                                     emitter :: atom()},
                                  individual_id :: individual_id(),
                                  period_type :: sensory | motor | cognitive | social,
                                  actual_duration_generations :: non_neg_integer(),
                                  learning_achieved :: float()} |
          #plasticity_changed{meta ::
                                  #lc_event_meta{event_id :: binary(),
                                                 correlation_id :: binary() | undefined,
                                                 causation_id :: binary() | undefined,
                                                 timestamp :: timestamp(),
                                                 version :: pos_integer(),
                                                 emitter :: atom()},
                              individual_id :: individual_id(),
                              plasticity_before :: float(),
                              plasticity_after :: float(),
                              change_cause :: age | experience | stress | development} |
          #developmental_stage_reached{meta ::
                                           #lc_event_meta{event_id :: binary(),
                                                          correlation_id :: binary() | undefined,
                                                          causation_id :: binary() | undefined,
                                                          timestamp :: timestamp(),
                                                          version :: pos_integer(),
                                                          emitter :: atom()},
                                       individual_id :: individual_id(),
                                       stage_before :: atom(),
                                       stage_after :: atom(),
                                       age_generations :: non_neg_integer(),
                                       fitness_at_transition :: float()} |
          #metamorphosis_triggered{meta ::
                                       #lc_event_meta{event_id :: binary(),
                                                      correlation_id :: binary() | undefined,
                                                      causation_id :: binary() | undefined,
                                                      timestamp :: timestamp(),
                                                      version :: pos_integer(),
                                                      emitter :: atom()},
                                   individual_id :: individual_id(),
                                   stage_before :: atom(),
                                   stage_after :: atom(),
                                   structural_changes ::
                                       #{neurons_added => non_neg_integer(),
                                         connections_rewired => non_neg_integer()},
                                   fitness_before :: float()} |
          #canalization_increased{meta ::
                                      #lc_event_meta{event_id :: binary(),
                                                     correlation_id :: binary() | undefined,
                                                     causation_id :: binary() | undefined,
                                                     timestamp :: timestamp(),
                                                     version :: pos_integer(),
                                                     emitter :: atom()},
                                  individual_id :: individual_id(),
                                  canalization_before :: float(),
                                  canalization_after :: float(),
                                  perturbation_resistance :: float()} |
          #heterochrony_detected{meta ::
                                     #lc_event_meta{event_id :: binary(),
                                                    correlation_id :: binary() | undefined,
                                                    causation_id :: binary() | undefined,
                                                    timestamp :: timestamp(),
                                                    version :: pos_integer(),
                                                    emitter :: atom()},
                                 individual_id :: individual_id(),
                                 timing_deviation :: float(),
                                 affected_traits :: [atom()],
                                 fitness_impact :: float()} |
          #developmental_milestone{meta ::
                                       #lc_event_meta{event_id :: binary(),
                                                      correlation_id :: binary() | undefined,
                                                      causation_id :: binary() | undefined,
                                                      timestamp :: timestamp(),
                                                      version :: pos_integer(),
                                                      emitter :: atom()},
                                   individual_id :: individual_id(),
                                   milestone_type ::
                                       first_signal | first_action | first_success | maturity,
                                   age_generations :: non_neg_integer(),
                                   performance_level :: float()}.

individual_id/0

-type individual_id() :: binary().

timestamp/0

-type timestamp() :: integer().

Functions

canalization_increased(Data)

-spec canalization_increased(map()) ->
                                #canalization_increased{meta ::
                                                            #lc_event_meta{event_id :: binary(),
                                                                           correlation_id ::
                                                                               binary() | undefined,
                                                                           causation_id ::
                                                                               binary() | undefined,
                                                                           timestamp :: timestamp(),
                                                                           version :: pos_integer(),
                                                                           emitter :: atom()},
                                                        individual_id :: individual_id(),
                                                        canalization_before :: float(),
                                                        canalization_after :: float(),
                                                        perturbation_resistance :: float()}.

critical_period_closed(Data)

-spec critical_period_closed(map()) ->
                                #critical_period_closed{meta ::
                                                            #lc_event_meta{event_id :: binary(),
                                                                           correlation_id ::
                                                                               binary() | undefined,
                                                                           causation_id ::
                                                                               binary() | undefined,
                                                                           timestamp :: timestamp(),
                                                                           version :: pos_integer(),
                                                                           emitter :: atom()},
                                                        individual_id :: individual_id(),
                                                        period_type ::
                                                            sensory | motor | cognitive | social,
                                                        actual_duration_generations :: non_neg_integer(),
                                                        learning_achieved :: float()}.

critical_period_opened(Data)

-spec critical_period_opened(map()) ->
                                #critical_period_opened{meta ::
                                                            #lc_event_meta{event_id :: binary(),
                                                                           correlation_id ::
                                                                               binary() | undefined,
                                                                           causation_id ::
                                                                               binary() | undefined,
                                                                           timestamp :: timestamp(),
                                                                           version :: pos_integer(),
                                                                           emitter :: atom()},
                                                        individual_id :: individual_id(),
                                                        period_type ::
                                                            sensory | motor | cognitive | social,
                                                        plasticity_boost :: float(),
                                                        expected_duration_generations ::
                                                            non_neg_integer()}.

developmental_milestone(Data)

-spec developmental_milestone(map()) ->
                                 #developmental_milestone{meta ::
                                                              #lc_event_meta{event_id :: binary(),
                                                                             correlation_id ::
                                                                                 binary() | undefined,
                                                                             causation_id ::
                                                                                 binary() | undefined,
                                                                             timestamp :: timestamp(),
                                                                             version :: pos_integer(),
                                                                             emitter :: atom()},
                                                          individual_id :: individual_id(),
                                                          milestone_type ::
                                                              first_signal | first_action |
                                                              first_success | maturity,
                                                          age_generations :: non_neg_integer(),
                                                          performance_level :: float()}.

developmental_stage_reached(Data)

-spec developmental_stage_reached(map()) ->
                                     #developmental_stage_reached{meta ::
                                                                      #lc_event_meta{event_id ::
                                                                                         binary(),
                                                                                     correlation_id ::
                                                                                         binary() |
                                                                                         undefined,
                                                                                     causation_id ::
                                                                                         binary() |
                                                                                         undefined,
                                                                                     timestamp ::
                                                                                         timestamp(),
                                                                                     version ::
                                                                                         pos_integer(),
                                                                                     emitter :: atom()},
                                                                  individual_id :: individual_id(),
                                                                  stage_before :: atom(),
                                                                  stage_after :: atom(),
                                                                  age_generations :: non_neg_integer(),
                                                                  fitness_at_transition :: float()}.

event_to_map(Event)

-spec event_to_map(developmental_event()) -> map().

heterochrony_detected(Data)

-spec heterochrony_detected(map()) ->
                               #heterochrony_detected{meta ::
                                                          #lc_event_meta{event_id :: binary(),
                                                                         correlation_id ::
                                                                             binary() | undefined,
                                                                         causation_id ::
                                                                             binary() | undefined,
                                                                         timestamp :: timestamp(),
                                                                         version :: pos_integer(),
                                                                         emitter :: atom()},
                                                      individual_id :: individual_id(),
                                                      timing_deviation :: float(),
                                                      affected_traits :: [atom()],
                                                      fitness_impact :: float()}.

make_meta(Emitter)

-spec make_meta(Emitter :: atom()) ->
                   #lc_event_meta{event_id :: binary(),
                                  correlation_id :: binary() | undefined,
                                  causation_id :: binary() | undefined,
                                  timestamp :: timestamp(),
                                  version :: pos_integer(),
                                  emitter :: atom()}.

make_meta(Emitter, Opts)

-spec make_meta(Emitter :: atom(), Opts :: map()) ->
                   #lc_event_meta{event_id :: binary(),
                                  correlation_id :: binary() | undefined,
                                  causation_id :: binary() | undefined,
                                  timestamp :: timestamp(),
                                  version :: pos_integer(),
                                  emitter :: atom()}.

metamorphosis_triggered(Data)

-spec metamorphosis_triggered(map()) ->
                                 #metamorphosis_triggered{meta ::
                                                              #lc_event_meta{event_id :: binary(),
                                                                             correlation_id ::
                                                                                 binary() | undefined,
                                                                             causation_id ::
                                                                                 binary() | undefined,
                                                                             timestamp :: timestamp(),
                                                                             version :: pos_integer(),
                                                                             emitter :: atom()},
                                                          individual_id :: individual_id(),
                                                          stage_before :: atom(),
                                                          stage_after :: atom(),
                                                          structural_changes ::
                                                              #{neurons_added => non_neg_integer(),
                                                                connections_rewired => non_neg_integer()},
                                                          fitness_before :: float()}.

plasticity_changed(Data)

-spec plasticity_changed(map()) ->
                            #plasticity_changed{meta ::
                                                    #lc_event_meta{event_id :: binary(),
                                                                   correlation_id ::
                                                                       binary() | undefined,
                                                                   causation_id :: binary() | undefined,
                                                                   timestamp :: timestamp(),
                                                                   version :: pos_integer(),
                                                                   emitter :: atom()},
                                                individual_id :: individual_id(),
                                                plasticity_before :: float(),
                                                plasticity_after :: float(),
                                                change_cause :: age | experience | stress | development}.