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](https://docs.cloud.google.com/static/gemini/enterprise/docs/images/alphaevolve/overview-alphaevolve.png)

## 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) |   |

<br />