Random Search
Uniformly sample a parent and context from the full candidate history.
Random Search is a deliberately small community scaffold: the standard Galapagos evolve loop with **uniform-random selection** in place of greedy elitism. Every iteration draws a parent uniformly from the complete candidate history and samples distinct inspirations from the remaining candidates, so fitness never steers which program is expanded next.
Every component lives in this package — the scaffold is self-contained and does not borrow another scaffold's classes. All of them are the standard Galapagos building blocks except selection: a keep-all `RandomPopulation`, the default multi-section `RandomPromptBuilder`, the SEARCH/REPLACE `RandomProposer`, the task-supplied evaluator, and null `RandomMemory`. Only `RandomSelectionPolicy` carries real behavior. Holding everything but selection fixed makes random-vs-elitist selection the single independent variable, which is what makes this a clean exploration-oriented reference point for adaptive search.
The policy uses Galapagos's seeded selection RNG, so the same `seed` and population history reproduce the same choices, and a resumed run continues the same draw stream. When the population contains only the initial seed, that seed is used as its own inspiration so the context is never empty.
The six components this scaffold snaps together. Each block names its concrete implementation.
The set of candidate solutions in play — the gene pool the search evolves over.
Decides which genomes survive and reproduce — tournament, elitism, novelty, or your own policy.
Assembles the context handed to the model — parents, feedback, instructions, examples.
The LLM-driven variation operator — proposes new candidates by mutation and crossover.
Scores each candidate against the task — the fitness signal that drives selection.
A minimal community variant of Galapagos Top-K (greedy elitism -> uniform-random selection).
galapagos run --scaffold random --task circle_packing \
--proposer.model_name openai/gpt-4o-mini \
--proposer.api_base openrouter