AlphaEvolve 概览

AlphaEvolve 是一种专门的 AI 编码智能体,它使用进化方法来解决算法发现、数学搜索和组合优化用例。它尤其适合属于 NP 完全或 NP 难优化问题的用例。

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

该智能体使用前沿的进化启发法来搜索所有可能的算法设计选择和数学决策变量的空间。这使得 AlphaEvolve 能够识别出新的程序,这些程序可以逐步提高目标优化目标的性能。

AlphaEvolve 会针对多个连续的候选程序生成迭代执行此启发法,直到发现满足用例所需整体性能目标的新解决方案。

AlphaEvolve 概览

不应使用 AlphaEvolve 的情况

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

  • 基本代码生成: AlphaEvolve 不是通用型开发者助理(例如 Gemini CLI 或编码助理)。它不会采用纯自然语言说明或不完整、非功能性代码来输出基准功能代码。
  • 代码检查和代码样式: AlphaEvolve 不适用于基本代码优化,例如根据软件工程最佳实践或标准代码检查清理代码。

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

优化求解器和启发法的范围

下表说明了 AlphaEvolve 相对于经典优化求解器和启发法的位置。

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

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

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

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

(既可作为直接优化方法,也可作为改进现有贝叶斯优化方法的方式)