Skip to main content

Overview

EvoX is a meta-evolution algorithm that dynamically evolves the optimization strategy itself using LLMs. Unlike traditional algorithms with fixed search strategies, EvoX treats the search algorithm as a program that can be evolved alongside the solutions.

Research Paper

Read the full EvoX paper on ArXiv

Key Concept

EvoX implements co-evolution: it simultaneously evolves two things:
  1. Solution programs: The actual solutions to your optimization problem
  2. Search algorithms: The strategy used to generate and select solution programs
The search algorithm is scored based on how much it improves the solution quality during a scoring window, then evolved just like a solution program.

Self-Adaptation

The search strategy adapts itself based on what works for your specific problem

Meta-Learning

Learns optimal exploration/exploitation balance automatically

Variation Operators

Auto-generates problem-specific diverge and refine prompts

Stagnation-Driven

Evolves search strategy when solution progress stagnates

How It Works

Co-Evolution Loop

  1. Solution Evolution: Use current search algorithm to evolve solutions
  2. Stagnation Detection: Track solution improvement over a window
  3. Search Evolution: When stagnant, evolve the search algorithm
  4. Strategy Switch: Load new search algorithm and continue

Search Algorithm Scoring

Each search algorithm is evaluated based on:

Variation Operators

EvoX auto-generates two types of mutation operators:
  • Diverge: Encourages exploration of new solution spaces
  • Refine: Encourages exploitation of known good solutions
These are generated once at the start based on your problem description and evaluator.

Configuration

Basic Usage

Configuration File

EvoX requires a special configuration that points to:
  1. Your solution problem (the main optimization task)
  2. An initial search algorithm (starting strategy)
  3. A search algorithm evaluator (how to score search strategies)

Configuration Options

string
required
Path to initial search algorithm Python file (must define a Database class)
string
required
Path to search algorithm evaluator (scores search strategies)
string
Optional config file for search algorithm evolution
bool
default:"true"
Auto-generate diverge/refine prompts based on problem description
float
default:"0.10"
Fraction of iterations to wait before considering search evolution (stagnation threshold)
float
default:"0.01"
Minimum improvement to reset stagnation counter

Initial Search Algorithm

Your initial search algorithm should be a Python file defining a Database class:

Search Algorithm Evaluator

The evaluator scores how well a search algorithm performs:
The search evaluator is typically simple because EvoX automatically computes improvement metrics. The evaluator mainly exists for consistency with the framework.

When to Use EvoX

  • Problems where the optimal search strategy is unknown
  • Long discovery runs where search adaptation provides value
  • Problems with complex fitness landscapes
  • Research on meta-learning and algorithm design
  • Short runs (< 50 iterations) - not enough time for meta-evolution
  • Well-understood problems with known optimal strategies
  • Limited LLM budget (meta-evolution uses extra LLM calls)
  • Need for deterministic/reproducible search behavior

Performance

EvoX achieves state-of-the-art results on multiple benchmarks:
  • Frontier-CS: ~34% median improvement over baseline algorithms
  • Adaptive to problem: Learns problem-specific search strategies
  • Meta-optimization: Discovers novel search patterns not in initial algorithm

Example: Custom Problem

Advanced Features

Fallback Mechanism

If a newly evolved search algorithm causes errors, EvoX automatically:
  1. Reverts to the previous working algorithm
  2. Migrates any successful solutions found during the failed attempt
  3. Continues evolution with the stable algorithm

Migration Between Algorithms

When switching to a new search algorithm, EvoX:
  • Copies all existing solutions to the new database
  • Preserves prompt history and metadata
  • Recalculates best program tracking

Comprehensive Logging

EvoX logs each evolved search algorithm to the output directory with:
  • Full source code
  • Performance metrics
  • Variation operators used
  • Database statistics before and after
  • AdaEvolve - Fixed adaptive search with island architecture
  • GEPA Native - Pareto-efficient search with reflective prompting
  • Top-K - Simple baseline to start EvoX with