Skip to content

Fixed development and experimental node-model search

The public evolution interface searches coordinates for one fixed neural design. Use BrainlessLab.Evolution.RunConfig inside an EvolutionPlan to declare the search strategy, budget, random seed, measure, direction, initialisation, and strategy options.

Any registered node that declares a reviewed Evolution.NodeDesignSpec can use this operation. The built-in designs cover FalandaysParams, StructuredCompartmental, and DenseCompartmental. The Falandays design searches seven bounded coordinates and keeps online plasticity enabled; learn_on is not a coordinate.

Each design fixes its parameter schema during a search. Evolution does not add nodes, alter topology, change body components, or change receptor and effector ports.

Search strategies

One typed search-strategy registry provides:

  • :sepcma for one scalar objective and one selected model;
  • :nsga2 for an ordered Pareto set;
  • :cmame for an ordered quality-diversity archive.

Every run uses explicit seeded normal initialisation. For example:

run = BrainlessLab.Evolution.RunConfig(;
strategy=:sepcma,
iterations=2,
search_seed=0x2a,
measure=:normalized_score,
direction=:maximise,
initialisation=BrainlessLab.Evolution.NormalInitialisation(
centre=:zero,
scale=0.25,
),
options=(population=4, reducer=:minimum,),
)

search_seed controls search randomness. Evaluation targets retain their own declared root seeds. These streams answer different questions and must remain separate.

SepCMA writes the stable model role selected. NSGA-II and CMA-ME do not choose an implicit champion. They write ordered model IDs such as pareto-0001 and cell-0001. A later operation must name the model that it evaluates.

Records and continuation

An evolution operation writes the standard full record, including the submitted and resolved plans, realised seeds, authoritative tables, model artifacts, provenance, and checksums. It also records a continuation point at each completed generation.

If execution stops, Evolution.resume validates the record and continues the same directory from the last complete generation. It reruns incomplete generation work. A successful record contains DONE and contains neither INCOMPLETE nor FAILED.

Evolution.model_reference(record_directory, model_id) returns a portable reference to one recorded model. Attach that reference to a new EvaluationTarget, then use a BenchmarkPlan for frozen evaluation.

Follow these purpose-led paths:

Evidence boundary

The feature is integrated experimental software. This readiness statement is not scientific evidence.

One search run does not measure search variance or establish optimality. A selected model remains development output until a later, frozen protocol evaluates it with suitable comparisons and independent randomised blocks. Task performance does not establish cognition, biological fidelity, or general capability.