lc_l1_controller (faber_neuroevolution v1.2.4)

View Source

L1 Hyperparameter Controller for Liquid Conglomerate Silos.

Part of the Liquid Conglomerate v2 architecture. This module implements the L1 tactical layer that learns to tune L0's hyperparameters based on L0's performance metrics.

Architecture

L1 is itself a TWEANN that: - Observes L0 performance over τ_L1 time windows - Outputs adjustments (deltas) to L0's hyperparameters - Evolves slower than L0 to provide a stable adaptation platform

Hyperparameters Tuned (by Silo)

Resource Silo: - memory_high_threshold, pressure_smoothing_alpha

Task Silo: - mutation_rate_min/max, topology_mutation_boost, exploitation_vs_exploration - archive_threshold_min/max, archive_diversity_weight, archive_recency_decay

Distribution Silo: - migration_cooldown_ms, load_imbalance_threshold

Learning Mechanism

L1 learns through meta-evolution: 1. Population of L1 TWEANNs (5-10 individuals) 2. Each L1 variant manages L0 for N τ_L1 cycles 3. Fitness = how well L0 performed under that hyperparameter regime 4. Selection + mutation + crossover produces next generation

Usage

%% Create L1 controller for a silo Config = #{ silo_type => resource, morphology_module => resource_l0_morphology, tau_l1 => 30000, % 30 seconds l0_hyperparameters => resource_l0_morphology:l0_hyperparameters() }, {ok, Pid} = lc_l1_controller:start_link(Config),

%% Update with L0 performance (called every τ_L0) lc_l1_controller:observe_l0_performance(Pid, L0Metrics),

%% Get current hyperparameter adjustments for L0 Deltas = lc_l1_controller:get_hyperparameter_deltas(Pid),

Summary

Functions

Apply deltas to base hyperparameters (utility function).

Get current absolute hyperparameters for L0.

Get current hyperparameter adjustment deltas.

Observe L0 performance metrics.

Set L1's own hyperparameters (from L2).

Start L1 controller with configuration.

Functions

apply_deltas_to_hyperparameters(BaseHyperparams, Deltas)

-spec apply_deltas_to_hyperparameters(map(), map()) -> map().

Apply deltas to base hyperparameters (utility function).

get_current_hyperparameters(Pid)

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

Get current absolute hyperparameters for L0.

get_hyperparameter_deltas(Pid)

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

Get current hyperparameter adjustment deltas.

Returns map of {hyperparameter_name => delta_value}

handle_call(Request, From, State)

handle_cast(Msg, State)

handle_info(Info, State)

init(Config)

observe_l0_performance(Pid, L0Metrics)

-spec observe_l0_performance(pid(), map()) -> ok.

Observe L0 performance metrics.

Called every τ_L0 with L0's performance metrics (reward, sensors, etc.)

set_l2_hyperparameters(Pid, L1Hyperparams)

-spec set_l2_hyperparameters(pid(), map()) -> ok.

Set L1's own hyperparameters (from L2).

start_link(Config)

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

Start L1 controller with configuration.

terminate(Reason, State)