economic_silo (faber_neuroevolution v1.2.4)

View Source

Economic Silo - Compute budget and resource allocation for neuroevolution.

Part of the Liquid Conglomerate v2 architecture. The Economic Silo manages: Per-individual compute budgets Energy accounting (income/expenditure) Wealth distribution and Gini coefficient tracking Trade between individuals/species Bankruptcy and debt management

Time Constant

τ = 20 (medium-fast adaptation for responsive budget management)

Cross-Silo Signals

Outgoing: economic_pressure to task: Budget constraint severity budget_available to temporal: Available computation budget efficiency_requirement to morphological: Efficiency targets trade_opportunity to social: Trading possibilities

Incoming: episode_efficiency from temporal: Episode cost efficiency complexity_signal from morphological: Network complexity trust_network from social: Trust for trades budget_signal from resource: Available system resources

Summary

Functions

allocate_budget(Pid, IndividualId)

-spec allocate_budget(pid(), term()) -> {ok, float()} | {error, term()}.

apply_actuators(Actuators, State)

collect_sensors(State)

compute_reward(State)

emit_cross_silo_signals(State)

get_balance(Pid, IndividualId)

-spec get_balance(pid(), term()) -> {ok, float()} | not_found.

get_params(Pid)

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

get_silo_type()

get_state(Pid)

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

get_time_constant()

get_wealth_distribution(Pid)

-spec get_wealth_distribution(pid()) -> {float(), float()}.

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_expenditure(Pid, IndividualId, Amount)

-spec record_expenditure(pid(), term(), float()) -> ok.

record_income(Pid, IndividualId, Amount)

-spec record_income(pid(), term(), float()) -> 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)