先给结论
五句话抓住论文
- 代码相似性不等于算法相似性:BFS/DFS、递归/迭代实现、相同输出的不同排序过程都会让现有度量产生概念错位。
- 行为可以表示为中间解序列:PSTraj 记录算法从初始解到最终解的 problem-solving trajectory。
- BehaveSim 比较“怎么走”:先定义解间距离,再用 DTW 对齐不同长度轨迹,最后对问题实例与起点做双重期望。
- 行为多样性可成为搜索算子:FunSearch 按行为分岛,EoH 把与强解的行为差异作为辅助目标;两者在论文协议下均优于原方法。
- 这还不是节奏理论:论文支持“探索什么很重要”,尚未回答“何时探索、探索多久、哪条分支该探索”。
研究动机:代码表面会骗你
LLM-AAD 生成的是代码,但我们真正关心的是其中隐含的算法策略。若 archive、去重、聚类或 novelty reward 只看 token、AST、embedding 或最终输出,搜索可能把同一种行为的改写误当作探索,也可能把真正不同的策略合并掉。
八种理论组合,为什么只保留四种?
| 类型 | Text | Result | Behavior | 处理 |
|---|---|---|---|---|
| Type 1 | 相似 | 相似 | 不同 | 保留 |
| Type 2 | 相似 | 不同 | 不同 | 保留 |
| Type 3 | 不同 | 相似 | 相似 | 保留 |
| Type 4 | 不同 | 相似 | 不同 | 保留 |
| 平凡 1 | 相似 | 相似 | 相似 | 排除:全相似 |
| 平凡 2 | 不同 | 不同 | 不同 | 排除:全不同 |
| 不可行 1 | 相似 | 不同 | 相似 | 排除:相同行为不应给出不同结果 |
| 不可行 2 | 不同 | 不同 | 相似 | 排除:同上 |
现有指标的平均分:它们到底混淆了什么?
| 方法 | Type 1 | Type 2 | Type 3 | Type 4 |
|---|---|---|---|---|
| ROUGE | 0.95 | 0.96 | 0.70 | 0.47 |
| BLEU | 0.83 | 0.94 | 0.42 | 0.16 |
| CrystalBLEU | 0.97 | 0.99 | 0.68 | 0.51 |
| AST | 0.96 | 1.00 | 0.76 | 0.57 |
| CodeBLEU | 0.97 | 0.94 | 0.91 | 0.75 |
| CodeBERTScore | 0.84 | 0.97 | 0.60 | 0.38 |
| Jina-Code-Embedding | 0.99 | 0.99 | 0.90 | 0.84 |
| Qwen3-Embedding-0.6B | 0.94 | 0.93 | 0.87 | 0.73 |
| Execution Results | 1.00 | 0.00 | 1.00 | 1.00 |
| Exe-Trace + BLEU | 0.86 | 0.95 | 0.61 | 0.54 |
| Exe-Trace + Jina | 1.00 | 1.00 | 0.87 | 0.77 |
| Exe-Trace + Qwen3 | 0.99 | 1.00 | 0.91 | 0.78 |
| BehaveSim | 0.56 | 0.73 | 1.00 | 0.46 |
数学表示及建模
1. 用 PSTraj 表示 problem-solving behavior
对迭代算法 $x_{t+1}=f(x_t)$,把求解时产生的中间解收集为:
这里记录的是“问题解如何被逐步更新”,不是全部变量、指令或函数调用。因此它比低层 execution trace 更接近作者想测量的求解逻辑。
2. 先定义单步解间距离
3. 用 DTW 对齐不同速度、不同长度的轨迹
DTW 的作用是允许局部时间错位:两个算法可能以不同步速经过相似的中间状态。需要注意,归一化方式和解距离都带有问题特定假设。
4. 对实例和起点做双重期望
这让相似度不只依赖单个实例或单一起点。实际计算只能用有限样本近似;若算法本身含随机状态,还需多次采样行为分布或固定随机种子。
轨迹压缩是否破坏结果?
| 设置 | Type 1 | Type 2 | Type 3 | Type 4 |
|---|---|---|---|---|
| 完整轨迹 | 0.56 | 0.73 | 1.00 | 0.46 |
| 截断 10% | 0.55 | 0.73 | 1.00 | 0.47 |
| 截断 20% | 0.55 | 0.73 | 1.00 | 0.48 |
| 截断 30% | 0.57 | 0.73 | 1.00 | 0.52 |
| 截断 50% | 0.65 | 0.75 | 1.00 | 0.64 |
| 每 1 步采样 | 0.57 | 0.72 | 1.00 | 0.52 |
| 每 2 步采样 | 0.56 | 0.74 | 1.00 | 0.59 |
| 每 5 步采样 | 0.62 | 0.82 | 1.00 | 0.74 |
中等程度截断/采样较稳定;激进压缩会明显改变 Type 1/2/4 分数。因此“轨迹可以便宜采样”是有条件的工程结论。
算法流程:把 behavior diversity 放进搜索
从父代与提示产生算法
得到 fitness 与 PSTraj
识别行为族与差异
按行为 niche 或辅助目标管理
局部精炼并保留跨族信息流
FunSearch+BehaveSim:行为 niche
- 新算法不再继承父代 island,而是根据它与各岛算法的平均 BehaveSim 分配到最相似的岛。
- 岛内 cluster 优先高 fitness,再偏好更短实现;跨岛选择概率 $p_{s1}$ 控制来自不同岛的父代交流。
- 设计意图是:岛内形成相对一致的 behavior family,岛间保留不同策略。
EoH+BehaveSim:辅助目标
EoH 版本不显式分岛,而是把 behavior dissimilarity 与 dominance 联合起来做父代选择和 population management。它偏向既有 fitness 竞争力、又与其他候选行为不同的个体。
实验设计
Admissible Set Problem;最大评估 10,000 次。
5 个实例、每实例 50 城市;最大评估 2,000 次。
Circle Packing;最大评估 2,000 次。
| 维度 | 设置 | 为什么重要 |
|---|---|---|
| LLM | GPT-5-Nano via API | 结论尚未验证跨模型稳健性 |
| 候选 timeout | 50 秒 | 限制不可行或过慢程序 |
| 重复 | 3 次独立运行 | 曲线阴影与主表报告标准差 |
| 对照 | FunSearch vs +BehaveSim;EoH vs +BehaveSim | 同一基础框架内比较 |
| 指标 | ASP/TSP relative gap 越低越好;CPP radii sum 越高越好 | 跨任务方向不同,不能直接比较绝对数值 |
实验结果
三项任务的收敛曲线
主结果:top-1 与 top-10
| 方法 | ASP Top-1 ↓ | ASP Top-10 ↓ | TSP Top-1 ↓ | TSP Top-10 ↓ | CPP Top-1 ↑ | CPP Top-10 ↑ |
|---|---|---|---|---|---|---|
| FunSearch | 5.84 ± 0.55 | 6.15 ± 0.59 | 25.22 ± 0.56 | 27.46 ± 1.21 | 2.6259 ± 0.0051 | 2.6127 ± 0.0143 |
| FunSearch+BehaveSim | 5.24 ± 1.05 | 5.28 ± 1.01 | 17.37 ± 0.23 | 18.05 ± 0.42 | 2.6293 ± 0.0026 | 2.6249 ± 0.0036 |
| EoH | 5.99 ± 0.20 | 6.08 ± 0.31 | 18.86 ± 0.20 | 19.68 ± 0.42 | 2.5724 ± 0.0482 | 2.5535 ± 0.0562 |
| EoH+BehaveSim | 5.33 ± 0.85 | 5.59 ± 0.91 | 16.55 ± 2.80 | 17.20 ± 3.32 | 2.6263 ± 0.0054 | 2.6234 ± 0.0066 |
在论文设置中,两个 +BehaveSim 版本在三项任务的 top-1 与 top-10 均优于各自基础方法。TSP 的差异尤其大;同时 EoH+BehaveSim 的 TSP 标准差也更大,提醒我们不要只看均值。
行为聚类能解释代码聚类看不到的策略
对 exploration / exploitation 的真正贡献
论文用两个几何量描述多岛搜索:
低 intra-distance 表示一个岛内部聚焦于相似行为,可理解为分支内 exploitation;高 inter-distance 表示不同岛保持策略分离,可理解为 archive 级 exploration。
消融:跨岛交流和初始聚类是否有用?
为什么“当前 prompt 是否已经足够优秀”还不能直接回答?
基础 prompt/operator 可能已经隐式学会一定的 exploration/exploitation 调度。BehaveSim 证明的是:即使 prompt 不变,换一个更接近算法行为的 archive / selection 表示仍会改变搜索结果。它没有比较隐式 prompt policy 与显式 controller 的动作价值,所以“prompt 已足够”与“需要显式节奏”都不能仅凭这篇论文定论。
我的评论
强点
- 概念问题非常准确:algorithmic similarity 的对象不是代码表面。
- 从度量到搜索再到可解释聚类,形成完整 utility chain。
- 两种不同集成方式都改善结果,降低“只对某个框架偶然有效”的担忧。
- 公开代码与 AlgoDisco 入口提供了复现起点。
局限
- 只覆盖逐步更新中间解的迭代算法,one-shot 方法不适用。
- 三项任务、单一 LLM、三次运行,外推仍有限。
- PSTraj 的状态表示和距离函数依赖问题建模。
- 集成同时改变多项搜索机制,无法把所有增益归因于纯 diversity reward。
One More Thing:从“多样性有效”走向“节奏可识别”
更有顶会价值的问题不是给 prompt 加一句“多探索”,而是估计同一搜索状态下 exploration 与 exploitation 的未来 frontier gain。
BehaveSim 可以提供关键 state features:behavior-family entropy、dominant-family saturation、intra/inter distance、archive turnover、parent cycling 和新 behavior family 的 breakthrough hazard。真正要预测的是 $A_E(s_t)-A_X(s_t)$,而不是事后给轨迹贴“探索/利用”标签。
同一 archive 与父代
explore / exploit 动作
calls、tokens、候选数
frontier gain 与 hidden gain
与原 prompt、随机节奏、oracle 比较
完整图谱 / Figure Gallery
主叙事已覆盖 11 张 active graphics;以下补齐 3 张距离选择与轨迹示意图。至此论文 14/14 active graphics 均有机器可核查的 `data-figure` 标记。
论文 pipeline 与 finding-evidence map
| 论文环节 | 关键证据 | 允许的结论 |
|---|---|---|
| 问题诊断 | Figure 1-2;四类数据;相似度主表 | 代码、输出和低层 trace 与 behavior 存在系统错位案例 |
| 方法构造 | PSTraj、解距离、DTW、双重期望;Figure 3 | 可把迭代算法的中间解路径转为可计算相似度 |
| 搜索集成 | Figure 8;FunSearch niche;EoH helper objective | behavior similarity 可进入 archive 与 selection |
| 性能证据 | 三任务曲线;top-1/top-10 主表 | 两个 +BehaveSim 版本在论文协议下优于各自 baseline |
| 机制线索 | intra/inter distance;ASP ablation | 行为 niche、跨岛交流与聚类和增益一致,并有部件级支持 |
| 解释性 | 30 个 TSP 算法聚类案例 | 可发现代码距离遮蔽的趋同行为与关键差异 |
Reference / Evidence
openreview.net/forum?id=HIUqeO9OOr
github.com/RayZhhh/algodisco
Rui Zhang · Zhichao Lu · City University of Hong Kong