lc_controller (faber_neuroevolution v1.2.4)

View Source

LC Controller - Simple online-learning TWEANN for hyperparameter control.

Unlike the main TWEANN population which evolves competitively, LC controllers are single networks that learn "on the job" through online weight updates.

Architecture: - Input layer: Sensor values (21 for task silo, 15 for resource silo) - Hidden layers: Configurable (default: [32, 16]) - Output layer: Actuator values (16 for task silo, 9 for resource silo)

Learning: Evolution Strategies (ES) style weight perturbation - Perturb weights with Gaussian noise - Keep perturbation if reward improves - Decay noise over time as performance stabilizes

Summary

Functions

Get hyperparameter recommendations from the controller.

Get current controller state for debugging/monitoring.

Report reward signal to the controller for learning.

Start the LC controller with default options.

Start the LC controller with custom configuration.

Functions

get_recommendations(Controller, SensorInputs)

-spec get_recommendations(atom() | pid(), map()) -> map().

Get hyperparameter recommendations from the controller.

SensorInputs is a map of sensor name => value (all normalized to 0-1 or -1 to 1). Returns a map of actuator name => value (scaled to actual ranges).

get_state(Controller)

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

Get current controller state for debugging/monitoring.

handle_call(Request, From, State)

handle_cast(Msg, State)

handle_info(Info, State)

init(Config)

report_reward(Controller, Reward)

-spec report_reward(atom() | pid(), float()) -> ok.

Report reward signal to the controller for learning.

The reward should be in range [-1, 1].

start_link(Name)

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

Start the LC controller with default options.

start_link(Name, Config)

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

Start the LC controller with custom configuration.

Config options: - input_size: Number of sensor inputs (default: 21) - output_size: Number of actuator outputs (default: 16) - hidden_sizes: List of hidden layer sizes (default: [32, 16]) - learning_rate: Weight update rate (default: 0.1) - noise_std: Initial noise standard deviation (default: 0.1) - output_ranges: Map of output name to {min, max} ranges

terminate(Reason, State)