Skip to main content

Overview

AdaEvolve is an adaptive evolutionary search algorithm that dynamically adjusts its optimization behavior based on observed progress. It uses a multi-island architecture where each island evolves independently, with migration between islands and adaptive exploration/exploitation control.

Research Paper

Read the full AdaEvolve paper on ArXiv

Key Features

Multi-Island Evolution

Multiple parallel populations evolve simultaneously with periodic migration of top solutions

Adaptive Search Intensity

Dynamically adjusts exploration vs exploitation based on improvement signals

UCB Island Selection

Upper Confidence Bound algorithm selects which island to evolve next

Paradigm Breakthroughs

Generates high-level strategy shifts when globally stuck

How It Works

Adaptive Search Intensity

AdaEvolve tracks improvement history per island using two key metrics:
  • Improvement Signal (δ): Normalized magnitude of fitness improvement
  • Accumulated Signal (G): Decayed sum of squared improvements
The search intensity for each island is calculated based on its accumulated improvement signal, determining the balance between exploration (trying diverse approaches) and exploitation (refining known good solutions).

Island-Based Evolution

The algorithm maintains multiple independent populations (islands) that evolve in parallel:
  1. Round-robin selection: Islands take turns evolving using UCB-based selection
  2. Migration: Top solutions periodically migrate between islands
  3. Independent adaptation: Each island has its own search intensity

Paradigm Breakthroughs

When progress stagnates globally across all islands, AdaEvolve can generate “paradigm breakthroughs” - high-level strategic ideas that represent fundamentally different approaches to the problem.

Configuration

Basic Usage

Configuration File

Configuration Options

int
default:"5"
Number of independent populations to maintain
int
default:"40"
Maximum number of programs per island
Enable adaptive exploration/exploitation control
float
default:"0.95"
Decay factor for accumulated improvement signal (0-1)
int
default:"10"
Number of iterations between island migrations
float
default:"0.1"
Fraction of top programs to migrate between islands
bool
default:"false"
Enable paradigm breakthrough generation when stuck
int
default:"20"
Iterations without improvement before triggering paradigm generation
int
default:"3"
Number of paradigm ideas to generate per breakthrough

When to Use AdaEvolve

  • Complex optimization problems with multiple local optima
  • Problems where both exploration and exploitation are important
  • Long discovery runs (100+ iterations) where adaptation can help
  • Problems requiring diverse solution approaches
  • Very short discovery runs (< 20 iterations)
  • Problems with clear single optimal approach
  • When simplicity is prioritized over performance

Performance

Across ~200 optimization benchmarks, AdaEvolve achieves:
  • Frontier-CS: ~34% median score improvement over OpenEvolve, GEPA, and ShinkaEvolve
  • Math + Systems: Matches or exceeds AlphaEvolve and human SOTA on 6/6 systems and 6/8 math tasks
  • Real-world impact: 41% lower cross-cloud transfer cost, 14% better GPU load balance

Example: Circle Packing

Advanced Features

Sibling Context

AdaEvolve provides the LLM with information about previous mutations of the same parent (“siblings”), helping it learn from recent attempts.

Mode-Aware Prompting

The prompt automatically adapts based on whether the current mode is:
  • Exploration: Encourages diverse, creative approaches
  • Exploitation: Encourages refinement and optimization

Comprehensive Logging

AdaEvolve logs detailed statistics to a JSON file including:
  • Search intensity per island
  • Improvement signals
  • Island populations and best scores
  • UCB selection scores
Access via adaevolve_iteration_stats_*.jsonl in the output directory.
  • EvoX - Co-evolves the search strategy itself
  • Top-K - Simpler top-K selection without adaptation
  • OpenEvolve Native - MAP-Elites with island architecture