temporal_silo (faber_neuroevolution v1.2.4)

View Source

Temporal Silo - Episode timing and temporal control for neuroevolution.

Part of the Liquid Conglomerate v2 architecture. The Temporal Silo manages: Episode length control (min/max/target) Early termination detection Evaluation timeouts Learning rate scheduling Reaction time budgets

Time Constant

τ = 10 (fast adaptation for responsive timing control)

Cross-Silo Signals

Outgoing: time_pressure to task: Temporal constraint urgency convergence_status to resource: Progress toward convergence episode_efficiency to economic: Cost efficiency of episodes critical_period_timing to developmental: Timing in developmental windows

Incoming: stagnation_severity from task: Evolution stagnation level budget_available from economic: Computation budget available network_latency from distribution: Network delay factor

Summary

Functions

apply_actuators(Actuators, State)

collect_sensors(State)

compute_reward(State)

emit_cross_silo_signals(State)

emit_silo_events(EventType, State)

Emit silo events for persistence (zero-config).

Events are automatically persisted if faber_neuroevolution_esdb is available. If not, this is a no-op.

get_params(Pid)

-spec get_params(pid()) -> map().

get_silo_type()

get_state(Pid)

-spec get_state(pid()) -> map().

get_time_constant()

handle_call(Request, From, State)

handle_cast(Msg, State)

handle_cross_silo_signals(Signals, State)

handle_info(Info, State)

init(Config)

init_silo(Config)

record_early_termination(Pid)

-spec record_early_termination(pid()) -> ok.

record_reaction_time(Pid, ReactionTimeMs)

-spec record_reaction_time(pid(), pos_integer()) -> ok.

record_timeout(Pid)

-spec record_timeout(pid()) -> ok.

reset(Pid)

-spec reset(pid()) -> ok.

start_link()

-spec start_link() -> {ok, pid()} | ignore | {error, term()}.

start_link(Config)

-spec start_link(map()) -> {ok, pid()} | ignore | {error, term()}.

terminate(Reason, State)

update_episode(Pid, EpisodeLength, FinalFitness)

-spec update_episode(pid(), non_neg_integer(), float()) -> ok.