# AdaEvolve - Adaptive Evolutionary Search Configuration # # AdaEvolve is an adaptive multi-island evolutionary algorithm that adjusts # search intensity per island based on accumulated improvement history. # # Key features: # - Per-island adaptive exploration/exploitation via accumulated signal (G) # - UCB with decayed magnitude rewards for island selection # - UnifiedArchive per island for quality-diversity balance # - Ring migration for cross-pollination between islands # - Dynamic island spawning when global productivity drops # - Paradigm breakthrough for high-level strategy shifts during stagnation # # Usage: # Copy this file to your example directory as config_adaevolve.yaml # and fill in the system_message with your problem description. # General settings max_iterations: 100 checkpoint_interval: 10 log_level: "INFO" random_seed: 42 # LLM configuration llm: models: - name: "gpt-5" weight: 1.0 api_base: "https://api.openai.com/v1" temperature: 0.7 # top_p: 0.95 # omitted by default; some providers (e.g. Anthropic) reject both temperature and top_p max_tokens: 32000 timeout: 600 # To use Gemini: comment out models + api_base above, uncomment below # models: # - name: "gemini-3-pro-preview" # api_base: "https://generativelanguage.googleapis.com/v1beta/openai/" # api_key: ${GEMINI_API_KEY} # Search configuration search: type: "adaevolve" num_context_programs: 4 database: # Population settings population_size: 20 num_islands: 2 # --- Adaptive search intensity --- # Controls how search intensity adapts based on improvement signal (G) # High G (productive island) -> low intensity (exploit) # Low G (stagnating island) -> high intensity (explore) decay: 0.9 # Exponential moving average weight (rho) intensity_min: 0.15 # Minimum search intensity (exploitation) intensity_max: 0.5 # Maximum search intensity (exploration) # --- Ablation flags --- # Set to false to disable specific adaptive mechanisms for ablation studies use_adaptive_search: true # G-based intensity vs fixed_intensity use_ucb_selection: true # UCB island selection vs round-robin use_migration: true # Inter-island migration use_unified_archive: true # Quality-diversity archive vs simple list # fixed_intensity: 0.4 # Used when use_adaptive_search=false # --- Migration --- migration_interval: 15 # Migrate every N iterations migration_count: 5 # Number of top programs to migrate # --- Archive settings (when use_unified_archive=true) --- fitness_weight: 1.0 # Weight for fitness rank in elite score novelty_weight: 0.0 # Weight for novelty rank in elite score diversity_strategy: "code" # Diversity metric: "code", "metric", or "hybrid" # --- Optional Pareto multiobjective mode --- # Leave pareto_objectives empty to keep the current scalar combined_score behavior. # When enabled, return the raw objective metrics from the evaluator and set: # pareto_objectives: # - accuracy # - latency # higher_is_better: # accuracy: true # latency: false # fitness_key: accuracy # Optional scalar proxy for adaptive state / tie-breaking # pareto_objectives_weight: 0.4 # Weight of Pareto percentile in archive elite score # --- Dynamic island spawning --- use_dynamic_islands: true max_islands: 5 # Maximum number of islands spawn_productivity_threshold: 0.015 # Spawn if global productivity below this spawn_cooldown_iterations: 30 # Wait N iterations between spawns # --- Paradigm breakthrough --- use_paradigm_breakthrough: true paradigm_window_size: 10 # Window for improvement rate calculation paradigm_improvement_threshold: 0.12 # Stagnation threshold paradigm_max_uses: 2 # Max uses per paradigm paradigm_max_tried: 10 # Max tried paradigms to track paradigm_num_to_generate: 3 # Number of paradigms to generate per trigger # --- Error retry --- enable_error_retry: true max_error_retries: 2 # Prompt configuration prompt: system_message: | Describe: - What the algorithm/function should do - Input/output format - Optimization objective and metrics - Constraints - Techniques to explore # Evaluator configuration evaluator: timeout: 360 max_retries: 3 cascade_evaluation: true cascade_thresholds: [0.3, 0.6] # Generation settings diff_based_generation: true max_solution_length: 60000