← 返回资料站  /  AI for AI
论文 算法发现 ★ 必读

Mathematical discoveries from program search with large language models (FunSearch)

FunSearch:用 LLM 在程序空间做进化搜索,发现新数学构造
一句话DeepMind 把预训练 code LLM(Codey)当变异算子接进进化搜索,在 cap set 问题上找到 n=8 维 512 元素的新构造(此前最好 496),把 cap set capacity 下界从 2.2180 推到 2.2202(20 年来最大改进),并进化出全面超过 best fit 的 online bin packing 启发式;发表在 Nature,是 AlphaEvolve 整条路线的起点。

这是什么

很多数学与组合优化问题'验证容易、求解难':给一个候选解,打分是多项式时间的,但找到好解极难。FunSearch 针对这类问题,不直接搜解本身,而是搜'生成解的程序':维护一个程序种群,反复让 LLM 读几个高分程序、写出改进版,由自动 evaluator 执行打分,分数高的存回种群。LLM 是冻结的(不做任何 fine-tune),只靠 API 采样;evaluator 负责挡掉幻觉和错误代码。

论文的卖点在于结果是'可验证的新知识':在 extremal combinatorics 的 cap set 问题上,FunSearch 找到的构造超过了人类已知最优,这排除了'LLM 只是背出训练数据'的解释。同时在 online bin packing 上进化出的启发式在 OR-Library 和 Weibull 基准上全面超过 first fit / best fit。作者强调搜程序而非搜构造还有两个附带好处:程序更短(相当于偏好低 Kolmogorov 复杂度的解,能 scale 到 20 多万个向量的实例)、更可读(数学家 Ellenberg 从进化出的代码里读出了一个此前未知的对称性,反过来收窄搜索空间进一步改进结果)。

这是 2023 年 12 月的 Nature 论文(无 arXiv 版),Google DeepMind 出品,作者含组合数学家 Jordan Ellenberg。截至 2026-08,Semantic Scholar 引用约 1239;它是后来 AlphaEvolve、OpenEvolve、ShinkaEvolve 这条 'LLM + 进化搜索程序空间' 路线公认的源头。

FunSearch 总体循环(论文 Fig 1):从 programs database 按 best-shot 采样高分程序拼成 prompt,冻结的 LLM 生成新程序,evaluator 执行打分,正确的程序写回数据库。LLM 只是循环里的变异/杂交算子,挡幻觉靠 evaluator。
FunSearch 总体循环(论文 Fig 1):从 programs database 按 best-shot 采样高分程序拼成 prompt,冻结的 LLM 生成新程序,evaluator 执行打分,正确的程序写回数据库。LLM 只是循环里的变异/杂交算子,挡幻觉靠 evaluator。

机制与做法

问题规格:evaluate + skeleton,只进化关键函数

用户提供三样东西:一个 evaluate 函数(给候选解打分)、一个初始程序(可以是平凡的常数函数)、以及一个 skeleton——包含样板代码和已知问题结构的'解题骨架'。FunSearch 只进化 skeleton 里最关键的那个函数。比如 cap set:skeleton 是一个贪心算法(从空集开始,每步加入 priority 最高且不违反约束的向量),进化的只是 priority: Z_3^n -> R 这个打分函数;bin packing 则进化'给每个 bin 打分'的 heuristic 函数。

作者明确说固定 skeleton 虽然限制了程序空间,但整体效果更好——LLM 的算力全部花在最难的核心逻辑上,而不是反复重写已知结构(重写还容易出错导致整个程序作废)。这个'把进化面收窄到一个函数'的设计后来被 AlphaEvolve 等继承。

cap set 主结果(论文 Fig 4):(a) n=8 时 FunSearch 找到 512 元素 cap set,超过已知最优 496;(b) 进化出的 priority 函数只有几十行,其中'首尾对称位置'(el[i]==el[-i])的加权提示了 reflection 结构;(c) 人工从代码提炼出的显式构造。这张图是'搜程序比搜解可解释'论点的直接证据。
cap set 主结果(论文 Fig 4):(a) n=8 时 FunSearch 找到 512 元素 cap set,超过已知最优 496;(b) 进化出的 priority 函数只有几十行,其中'首尾对称位置'(el[i]==el[-i])的加权提示了 reflection 结构;(c) 人工从代码提炼出的显式构造。这张图是'搜程序比搜解可解释'论点的直接证据。

best-shot prompting + islands 进化

每次构造 prompt 时从 programs database 采 k=2 个程序,按分数升序命名为 priority_v0、priority_v1 拼进 prompt,末尾留一个空的 priority_v2 函数头让 LLM 补全——LLM 实际扮演 crossover 算子,从两个版本里找模式并泛化(k=2 优于 1,再多收益递减)。

多样性靠 islands model 维持:种群分成 m 个岛独立进化,每 4 小时淘汰最优个体分数最低的一半岛,用幸存岛的最优程序重新播种。岛内再按 signature(程序在各输入上的分数元组)聚类,采样时先按 Boltzmann 分布选簇(偏好高分),簇内偏好更短的程序——显式的短程序偏置就是'低 Kolmogorov 复杂度'归纳偏好的来源。

cap set capacity 下界的推进史(论文 Fig 5):前人 SAT solver 做到 2.2180,FunSearch 先到 2.2184,Ellenberg 从 (b) 的 priority 函数里读出坐标按 4 组三元组循环对称,限制到对称集合后推到 2.2202。红黄高亮标出代码里体现对称性的位置。
cap set capacity 下界的推进史(论文 Fig 5):前人 SAT solver 做到 2.2180,FunSearch 先到 2.2184,Ellenberg 从 (b) 的 priority 函数里读出坐标按 4 组三元组循环对称,限制到对称集合后推到 2.2202。红黄高亮标出代码里体现对称性的位置。

分布式系统与成本取舍

三类 worker 异步通信:programs database、samplers(调 LLM)、evaluators(沙箱执行打分)。典型配置 15 个 sampler + 150 个 CPU evaluator,单次实验总采样量在 10^6 量级。一个反直觉的工程结论:快而弱的模型胜过慢而强的模型——采样吞吐比单条质量更重要;并且结果对具体 LLM 不敏感,附录里用开源 StarCoder 也能跑出改进。

论文自己披露了成功率:admissible set I(12,7) 的实验 100% 超过旧的下界(60% 找到 full-size 集合),但 n=8 直接构造 512-cap 的实验只有 4/140 成功——头条结果是大量重复实验里挑出来的,论文在 Methods 里写明了这一点。

数学结果是怎么来的:人机回环

capacity 下界 2.2202 不是一步搜出来的:FunSearch 先找到一个生成 I(12,7) admissible set 的 priority 函数(下界 2.2180→2.2184);Ellenberg 读代码发现它把 12 个坐标按 4 组三元组对称处理,提炼出'symmetric admissible sets'这个此前未知的结构;然后把搜索空间限制到对称集合(空间小得多,能上更高维),FunSearch 在里面找到 I(15,10) 和一个 237,984 元素的 A(24,17) 部分可容集,推到 2.2202。

这个'机器给构造、人读代码提炼结构、再用结构收窄搜索'的循环是论文最有意思的部分,也是'搜程序而非搜解'的最强论据——如果输出是 20 多万个向量的列表而不是几行代码,对称性根本读不出来。

关键结果

实证核查

扎实核心数学声称是确定可验证的具体构造,数据全部随仓库公开,任何人几分钟就能验证;方法层面被第三方补齐组件后跑通。水分在 PR 而不在论文:媒体宣传('解决无解难题')被 Gary Marcus 和 Ernest Davis 批评夸大,论文本身对低成功率等坑披露得相当诚实。
论文声称在 n=8 发现 512 元素 cap set(超过已知的 496),并把 capacity 下界推到 2.2202。
这类结果好核查:cap set / admissible set 的性质验证是多项式时间的。仓库 cap_set/、admissible_set/ 目录直接给出了发现的构造函数和数值格式的集合,附 Colab notebook 可一键验证(github.com/google-deepmind/funsearch)。数学结果本身没有争议,Ernest Davis 的批评文章(cs.nyu.edu/~davise/papers/FunSearchComment.pdf)也确认结果为真,争的只是重要性。
代码开源、方法可复现。
打折扣:官方 repo 只含单线程 pipeline 和进化算法,不含 LLM 接入、沙箱、分布式基础设施(README 自己写明)。issue #1('Lack of Implementation for LLMs',14 条讨论)里第三方 jonppe/funsearch 补齐了 Docker 沙箱 + LLM 接口后能跑通、能在 cap set 上找到改进算法;用户 timneumann1 接 Codey API 复现小规模实验,但报告'前几轮提升明显,之后几百次迭代停滞'。没有公开的第三方完整复现 512-cap——考虑到官方自己也只有 4/140 成功率、单实验约 $1400(issue #1 引论文附录估算),这在算力上就不现实。repo 2024-02 后无更新,1.1k stars。
DeepMind 博客与媒体报道称其'解决了著名的不可解数学难题'、'首次用 LLM 做出科学发现'。
被两篇独立评论泼冷水。Gary Marcus(substack)指出 PR 夸大:该问题从来不是'unsolvable',LLM 只是在人写好 skeleton 和 evaluator 的系统里当变异算子。Ernest Davis(NYU)的正式 comment 结论是'FunSearch 对数学的贡献并非特别重大':c8>=512 和 γ>=2.2202 是渐进下界的小步改进;Tao 说 cap set 是他'最喜欢的开放问题'指的是密度问题,2016 年已被 Ellenberg-Gijswijt 否定解决;被大书特书的'对称性发现'的 credit '99.99% 属于 Ellenberg 而非 FunSearch'。
bin packing 启发式'显著超过传统算法'。
数字属实(见 Table 1,Davis 文中转载核对),但基线只有 first fit 和 best fit 两个教科书算法;Davis 明确说他'无法确认这两个是否是当前实践中的 SOTA',论文没有与 hyper-heuristics 文献里已有的进化启发式(其中一些同样能打平或超过 best fit)做正面对比。
结果不是从训练数据里背出来的,因为超过了人类已知最优。
这个论证对 cap set 成立(512 > 496 是严格的新构造),是全文最硬的一环;后续整条路线(AlphaEvolve 2025 年在矩阵乘法等 50+ 问题上重复了这个模式)反过来支持了方法论有效性,OpenEvolve/ShinkaEvolve 等开源复刻在其他问题上复现了'LLM+进化能超已知最优'的现象。

与我们方向的关系

这是本方向(ai4ai / 算法发现)的奠基条目:AlphaEvolve、OpenEvolve、ShinkaEvolve 的核心循环——LLM 变异 + 自动 evaluator + 种群多样性维护——全部在这篇里定型。读它主要是搞清三个设计决策的理由:(1) 只进化 skeleton 里的一个函数而不是整个程序;(2) islands + signature 聚类 + 短程序偏置这套多样性机制;(3) '快模型大采样量'优于'慢模型高质量',这条在 2023 年的模型上成立,AlphaEvolve 时代改成了强弱模型混采,值得对比。

对自己上手的提醒:FunSearch 只适合'evaluator 高效 + 打分信号连续(非 0/1)+ 关键逻辑可隔离成单个函数'的问题(论文 Discussion 自列的三条),定理证明这类二值反馈问题明确不适用;而且要对成功率有预期——头条结果是 140 次实验挑 4 次,复现建议从 jonppe/funsearch 或 OpenEvolve 起步而不是官方 repo(缺 LLM/沙箱组件)。

阅读笔记

无 arXiv 版本,只有 Nature 正式版(开放获取)。官方 repo 语言标注是 Jupyter Notebook,本质是结果展示 + 教学性单线程实现,2024-02 之后停更。Ernest Davis 的 comment(见 resources)是理解这篇论文实际分量的最好平衡读物:不否认结果,但把'AI 做出数学发现'的叙事拆解得很清楚。

材料清单

代码仓库github.com/google-deepmind/funsearch
1111★ · 最近推送 2024-02-05
DeepMind 官方博客deepmind.google/blog/funsearch-making-new-discoveries-in-mathematical-sciences-using-large-language-models/
官方宣传口径,可与 Davis/Marcus 的批评对照读
Ernest Davis 的正式评论cs.nyu.edu/~davise/papers/FunSearchComment.pdf
NYU 教授逐问题核查四个数学结果的分量,结论:结果为真但'贡献并非特别重大';含 Table 1 完整数字
Gary Marcus 批评文garymarcus.substack.com/p/sorry-but-funsearch-probably-isnt
针对 PR 夸大('解决无解难题')的批评,论文本身评价不低
第三方可运行实现github.com/jonppe/funsearch
补齐官方 repo 缺失的沙箱与 LLM 接口(issue #1 讨论产物),复现从这里起步

同类条目