lc_morphological_events (faber_neuroevolution v1.2.4)
View SourceBehavioral event constructors for Morphological Silo.
Events related to network complexity, structure, and efficiency. Morphological Silo operates at timescale τ=30.
Summary
Types
-type generation() :: non_neg_integer().
-type individual_id() :: binary().
-type morphological_event() :: #complexity_measured{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(), neuron_count :: non_neg_integer(), connection_count :: non_neg_integer(), parameter_count :: non_neg_integer(), complexity_score :: float()} | #pruning_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(), neurons_removed :: non_neg_integer(), connections_removed :: non_neg_integer(), complexity_before :: float(), complexity_after :: float(), fitness_impact :: float(), pruning_criterion :: unused | weak | redundant} | #growth_occurred{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(), neurons_added :: non_neg_integer(), connections_added :: non_neg_integer(), growth_trigger :: mutation | development | learning, complexity_before :: float(), complexity_after :: float()} | #modularity_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(), module_count :: non_neg_integer(), modularity_score :: float(), module_sizes :: [non_neg_integer()], inter_module_connectivity :: float()} | #efficiency_improved{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(), fitness_before :: float(), fitness_after :: float(), complexity_before :: float(), complexity_after :: float(), efficiency_ratio_before :: float(), efficiency_ratio_after :: float()} | #bloat_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(), complexity :: float(), fitness :: float(), expected_complexity :: float(), bloat_ratio :: float()} | #symmetry_broken{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(), symmetry_before :: float(), symmetry_after :: float(), breaking_cause :: mutation | pruning | growth} | #topology_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_hidden | multi_layer | recurrent | modular, neuron_count :: non_neg_integer(), connection_count :: non_neg_integer(), generation :: generation()}.
-type timestamp() :: integer().
Functions
-spec bloat_detected(map()) -> #bloat_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(), complexity :: float(), fitness :: float(), expected_complexity :: float(), bloat_ratio :: float()}.
-spec complexity_measured(map()) -> #complexity_measured{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(), neuron_count :: non_neg_integer(), connection_count :: non_neg_integer(), parameter_count :: non_neg_integer(), complexity_score :: float()}.
-spec efficiency_improved(map()) -> #efficiency_improved{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(), fitness_before :: float(), fitness_after :: float(), complexity_before :: float(), complexity_after :: float(), efficiency_ratio_before :: float(), efficiency_ratio_after :: float()}.
-spec event_to_map(morphological_event()) -> map().
-spec growth_occurred(map()) -> #growth_occurred{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(), neurons_added :: non_neg_integer(), connections_added :: non_neg_integer(), growth_trigger :: mutation | development | learning, complexity_before :: float(), complexity_after :: float()}.
-spec modularity_detected(map()) -> #modularity_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(), module_count :: non_neg_integer(), modularity_score :: float(), module_sizes :: [non_neg_integer()], inter_module_connectivity :: float()}.
-spec pruning_triggered(map()) -> #pruning_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(), neurons_removed :: non_neg_integer(), connections_removed :: non_neg_integer(), complexity_before :: float(), complexity_after :: float(), fitness_impact :: float(), pruning_criterion :: unused | weak | redundant}.
-spec symmetry_broken(map()) -> #symmetry_broken{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(), symmetry_before :: float(), symmetry_after :: float(), breaking_cause :: mutation | pruning | growth}.
-spec topology_milestone(map()) -> #topology_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_hidden | multi_layer | recurrent | modular, neuron_count :: non_neg_integer(), connection_count :: non_neg_integer(), generation :: generation()}.