AdaEvolve
Hierarchical adaptive search: G-signal exploration intensity, UCB island allocation, and LLM meta-guidance on stagnation.
# AdaEvolve — faithful port of SkyDiscover's AdaEvolve defaults (the reference implementation;
# it is the ground truth wherever it diverges from the paper).
# Sections mirror the six core components. Mirrors skydiscover AdaEvolveDatabaseConfig.
seed: 0
general:
max_iterations: 100
inner_retry_times: 3 # 1 + max_error_retries(2): AdaEvolveController._run_normal_step
# makes up to 3 generate+evaluate attempts per iteration, each
# RESAMPLING the parent/mode and folding the prior error as
# RETRY CONTEXT (handled by the scaffold's step override, not the
# shared base _attempt which holds the parent fixed)
population: # AdaEvolveArchipelago
num_islands: 2 # initial islands (also read by selection_policy)
population_size: 20 # programs per island archive (ArchiveConfig.max_size)
k_neighbors: 5 # k for k-NN code-distance novelty
archive_elite_ratio: 0.2 # fraction protected from eviction
fitness_weight: 1.0 # elite-score fitness-percentile weight
novelty_weight: 0.0 # elite-score novelty-percentile weight
pareto_weight: 0.4 # deprecated; folded into fitness (scalar)
migration_count: 5 # top programs sent to (k+1) mod K
selection_policy: # AdaEvolvePolicy (also reads population.num_islands)
decay: 0.9 # EMA (ρ) for G, UCB rewards R, decayed visits V
intensity_min: 0.15 # exploration-probability floor (I_min)
intensity_max: 0.5 # exploration-probability ceiling (I_max)
fixed_intensity: 0.4 # used when use_adaptive_search is false
use_adaptive_search: true # ablation: G-based intensity vs fixed_intensity
use_ucb_selection: true # ablation: UCB island selection vs round-robin
use_migration: true # ablation: ring migration on/off
use_dynamic_islands: true # spawn islands on global stagnation
migration_interval: 15 # migrate every N iterations
max_islands: 5 # island cap for dynamic spawning
spawn_productivity_threshold: 0.015 # spawn when improvements/evaluations < this
spawn_cooldown_iterations: 30 # min iterations between spawns
local_context_program_ratio: 0.6 # local share of inspirations
num_inspirations: 4 # inspirations per prompt (num_context_programs)
memory: # AdaEvolveParadigmMemory (Level-3 meta-guidance)
use_paradigm_breakthrough: true # paradigm-breakthrough on/off
paradigm_window_size: 10 # binary global-improvement window
paradigm_improvement_threshold: 0.12 # rate < this (full window, no active paradigm) → generate
paradigm_max_uses: 2 # uses per paradigm before rotation
paradigm_num_to_generate: 3 # ideas per generator call
paradigm_max_tried: 10 # bounded history of tried paradigms
# NOTE (deviations from the upstream config surface):
# - upstream `use_unified_archive` (QD-archive vs legacy capped-list ablation) is NOT ported —
# the quality-diversity archive is always on (sanctioned decision; no legacy mode).
# - upstream `diff_based_generation` / `allow_full_rewrites` are not exposed: AdaEvolveProposer is
# hard-wired to SEARCH/REPLACE diffs with a full-rewrite fallback (the upstream defaults).