Overview of AlphaEvolve

AlphaEvolve is a specialized AI coding agent that uses evolutionary methods to solve algorithmic discovery, mathematical search, and combinatorial optimization use cases. It is especially well-suited for use cases that fall into the category of NP-complete or NP-hard optimization problems.

AlphaEvolve takes as primary input blocks of code in a given programming language that define the algorithm discovery or combinatorial search use case that needs to be solved. The input code should be functionally correct but still require optimization to meet specific global (non-functional) performance criteria defined by a set of user-specified evaluation metrics.

The agent uses a state-of-the-art evolutionary heuristic to search through the space of all possible algorithmic design choices and mathematical decision variables. This allows AlphaEvolve to identify new programs that incrementally improve performance on the target optimization objectives.

AlphaEvolve executes this heuristic iteratively over multiple successive generations of candidate programs until it discovers a net-new solution that meets the overall performance targets required for the use case.

Overview of AlphaEvolve

When not to use AlphaEvolve

You cannot use AlphaEvolve in the following scenarios:

  • Basic code generation: AlphaEvolve is not a general-purpose developer assistant (such as a Gemini CLI or coding assistant). It does not take pure natural language descriptions or incomplete, non-functional code to output baseline functional code.
  • Linting and code style: AlphaEvolve is not intended for basic code optimization like cleaning up code according to software engineering best practices or standard linting.

AlphaEvolve is specifically designed for scenarios where optimizing code requires innovative new designs and execution graphs. It is built to search through a very large configuration space of possible solutions where all candidates are functionally correct, but only a subset meet the required global performance criteria.

Spectrum of optimization solvers and heuristics

The following table maps out where AlphaEvolve fits relative to classical optimization solvers and heuristics.

Solver category Types of problems typically addressed by the category of solver Example algorithms AlphaEvolve applicable? AlphaEvolve differentiating capability
Convex optimization methods with continuous variables
  • Linear programming
  • Quadratic programming
  • Nonlinear programming
  • Non-convex optimization
  • Simplex method
  • Interior point methods
Not suitable.

Existing algorithms provide exact solutions and will likely outperform AE.
Gradient based methods
  • Gradient Descent methods (SGD and related approaches)
  • Quasi-Newtonian methods (BFGS, L-BFGS)
Mathematical programming and formal methods (i.e. "Classic" OR methods)
  • Integer programming
  • Mixed Integer Linear Programming
  • Constraint satisfaction problems
  • KKT based methods
  • Constraint relaxation (not an algorithm per se, but a method used by multiple algorithms)
  • Duality and LaGrangian based approaches
  • Branch and bound
  • Branch and cut
Possibly applicable.

Also, AE can be used as a way of augmenting existing tools or tuning them.
Meta-heuristics search methods
  • Problems with irregular / non-differentiable objective functions.
  • Online optimization problems
  • Genetic algorithms
  • Evolutionary search
  • Simulated annealing
  • Particle Swarm Optimization
Possibly applicable.

Also, AE can be used as a way of augmenting existing tools or tuning them.
Bayesian Optimization
  • Problems with unknown or opaque-box objective functions.
  • Tuning ML pipelines
  • Gaussian Process based
  • Tree based (TPE, SMAC)
Definitely applicable.
LLM + meta-heuristics search based agents
  • Code and algorithm optimization use cases
  • Problems with unstructured / semantic search spaces (can't be broken up into a set of discrete decision variables)
  • Optimize the optimizer use cases
  • AlphaEvolve
  • FunSearch (legacy)
Definitely applicable.

(either as a direct optimization method, or as a way of improving the existing Bayesian Optimization approach)