AlphaEvolve 概览

AlphaEvolve 是一款专用 AI 编程智能体,它使用进化方法来解决算法发现、数学搜索和组合优化用例。它特别适合属于 NP 完全或 NP 困难优化问题类别的应用场景。

AlphaEvolve 的主要输入是给定编程语言的代码块,这些代码块定义了需要解决的算法发现或组合搜索用例。输入代码应在功能上正确,但仍需进行优化,以满足由一组用户指定的评估指标定义的特定全局(非功能性)性能标准。

该智能体使用先进的进化启发式算法,在所有可能的算法设计选择和数学决策变量的空间中进行搜索。这样,AlphaEvolve 就可以识别出能够逐步提升目标优化目标效果的新程序。

AlphaEvolve 会在多代候选程序中迭代执行此启发式算法,直到发现满足用例所需的总体性能目标的全新解决方案。

AlphaEvolve 概览

何时不应使用 AlphaEvolve

在以下情况下,您无法使用 AlphaEvolve:

  • 基本代码生成:AlphaEvolve 不是通用开发者助理(例如 Gemini CLI 或编码助理)。它不接受纯自然语言描述或不完整、无法运行的代码来输出基准功能代码。
  • Linting 和代码样式:AlphaEvolve 不适用于基本代码优化,例如根据软件工程最佳实践或标准 linting 清理代码。

AlphaEvolve 专为需要创新设计和执行图来优化代码的场景而设计。它旨在搜索一个非常庞大的可能解决方案配置空间,其中所有候选方案在功能上都是正确的,但只有一部分满足所需的全局性能标准。

各种优化求解器和启发法

下表列出了 AlphaEvolve 相对于传统优化求解器和启发式算法的适用场景。

求解器类别 求解器类别通常解决的问题类型 示例算法 AlphaEvolve 是否适用? AlphaEvolve 差异化功能
采用连续变量的凸优化方法
  • 线性规划
  • 二次规划
  • 非线性规划
  • 非凸优化
  • 单纯形法
  • 内点法
不适合。

现有算法可提供精确的解决方案,并且可能优于 AE。
基于梯度的方法
  • 梯度下降法(SGD 和相关方法)
  • 拟牛顿法(BFGS、L-BFGS)
数学规划和形式化方法(即“经典”运筹学方法)
  • 整数规划
  • 混合整数线性规划
  • 约束满足问题
  • 基于 KKT 的方法
  • 约束条件放宽(本身不是算法,而是多种算法使用的方法)
  • 基于对偶性和拉格朗日的方法
  • 分支定界
  • 分支和剪枝
可能适用。

此外,AE 还可用于增强现有工具或对其进行调优。
元启发式搜索方法
  • 不规则/不可微分目标函数的问题。
  • 在线优化问题
  • 遗传算法
  • 进化搜索
  • 模拟退火
  • 粒子群优化
可能适用。

此外,AE 还可用于增强现有工具或对其进行调优。
贝叶斯优化
  • 未知或不透明框目标函数的问题。
  • 调优机器学习流水线
  • 基于高斯过程
  • 基于树(TPE、SMAC)
绝对适用。
基于 LLM + 元启发式搜索的智能体
  • 代码和算法优化应用场景
  • 非结构化/语义搜索空间(无法拆分为一组离散决策变量)的问题
  • 优化优化器使用场景
  • AlphaEvolve
  • FunSearch(旧版)
完全适用。

(作为直接优化方法,或作为改进现有贝叶斯优化方法的一种方式)