Documentation Index
Fetch the complete documentation index at: https://mintlify.com/skydiscover-ai/skydiscover/llms.txt
Use this file to discover all available pages before exploring further.
Overview
OpenEvolve Native is a faithful SkyDiscover port of the OpenEvolve algorithm, implementing MAP-Elites (a quality-diversity algorithm) with an island-based population model. It maintains a feature map that preserves diverse solutions across multiple behavioral dimensions.MAP-Elites
Maintains archive of best programs in each region of feature space
Island Populations
Multiple independent populations with periodic migration
Quality-Diversity
Optimizes both fitness and behavioral diversity
Adaptive Sampling
Balances exploration, exploitation, and random search
Key Concepts
MAP-Elites Archive
MAP-Elites discretizes the behavior space into a grid and maintains the best solution in each cell:Feature Dimensions
OpenEvolve Native supports both built-in and custom feature dimensions: Built-in features:complexity: Length of solution codediversity: Average distance from reference setscore: Fitness value itself
Island Architecture
Multiple independent populations (islands) evolve in parallel:- Each island has its own MAP-Elites grid
- Islands evolve independently most of the time
- Periodic migration exchanges top solutions between islands
- Prevents premature convergence to single approach
Configuration
Basic Usage
Configuration File
Configuration Options
Number of independent island populations
Maximum total programs across all islands
Size of elite archive (best programs)
List of feature dimensions for MAP-Elites grid. Can be:
- Built-in:
"complexity","diversity","score" - Custom: Any metric name from your evaluator
Number of bins per feature dimension.Single value (same for all dimensions):Per-dimension (different resolution):
Fraction of iterations to sample random parent from island (exploration)
Fraction of iterations to sample elite parent from archive (exploitation)
Number of generations between island migrations
Fraction of island population to migrate (top programs)
Fraction of context programs to sample from island elite
Number of programs in reference set for diversity calculation
How It Works
Sampling Strategy
On each iteration, OpenEvolve selects a parent using a probabilistic strategy:- Exploration (0.2): Try diverse approaches
- Exploitation (0.7): Refine known good solutions
- Global search (0.1): Avoid island isolation
MAP-Elites Insertion
When a new program is generated:- Calculate features: Determine feature coordinates (e.g., complexity=5, diversity=3)
- Find cell: Locate corresponding grid cell
- Compare: Is new program better than current cell occupant?
- Update: If yes, replace cell occupant
Migration Process
Everymigration_interval generations:
- Select migrants: Top
migration_ratefraction from each island - Ring topology: Island i sends to islands i+1 and i-1
- Copy programs: Migrants are copied (not moved)
- Prevent duplicates: Skip if target island already has identical solution
When to Use OpenEvolve Native
Best For
Best For
- Problems with multiple complementary solutions
- Need for behavioral diversity (not just fitness)
- Multi-objective optimization with trade-offs
- Long runs (150+ iterations) where quality-diversity pays off
- Problems with custom feature dimensions
Avoid When
Avoid When
- Single optimal solution exists
- Short runs (< 50 iterations) - not enough time for MAP-Elites to fill
- No meaningful behavioral dimensions
- Need for maximum simplicity
Example: Algorithm Design
Custom Feature Dimensions
Optimize sorting algorithms with custom features:Monitoring OpenEvolve Native
Island Status
MAP-Elites Coverage
Archive Quality
Feature Space Visualization
Visualize the MAP-Elites grid (2D example):Advanced Usage
Custom Feature Bins per Dimension
Asymmetric Migration
Customize migration topology:Comparison with Other Algorithms
| Algorithm | Diversity Mechanism | Archive | Best For |
|---|---|---|---|
| OpenEvolve Native | MAP-Elites grid | Yes | Quality-diversity |
| AdaEvolve | Island isolation | Per-island | Adaptive search |
| Beam Search | Beam pruning | No | Discrete choices |
| Top-K | None | No | Simple refinement |
Tips for Best Results
Choose Meaningful Features
Feature dimensions should capture behavioral differences that matter for your problem. Don’t just use
complexity and diversity by default.Balance Feature Bins
- Too few bins (< 5): Insufficient diversity
- Too many bins (> 20): Sparse coverage, slow fill
- Sweet spot: 8-12 bins per dimension
Tune Exploration/Exploitation
Adjust based on problem:
- Unknown landscape: Higher exploration (0.3-0.4)
- Refinement needed: Higher exploitation (0.7-0.8)
Related Algorithms
- AdaEvolve - Island-based with adaptive intensity
- GEPA Native - Pareto frontier instead of MAP-Elites
- EvoX - Can evolve the OpenEvolve strategy itself