- AI 插件
- 开发工具
- 插件系统
【免费下载链接】claude-plugins-official
Official, Anthropic-managed directory of high quality Claude Code Plugins.
本文聚焦于claude-plugins-official仓库中 math-olympiad 技能的核心求解参考文档 solver_heuristics.md。该文档为求解子代理(solver subagent)提供了一整套"直接思路卡壳时该尝试什么"的启发式招式清单,覆盖 Pólya 通用策略、奥林匹克专项招式、几何专项招式、递推陷阱、√n/log n 型答案的识别,以及证明完成后的复查清单。读完本文,你将掌握如何为求解代理分配起始角度(starting angle)、如何在"特例化—推广—反向推理—构造辅助元素"之间切换策略,以及如何把启发式与 SKILL.md 定义的多代理验证流程(清洗证明、对抗验证、修订、演示优化)无缝衔接。
一、这份文档在技能中的位置
math-olympiad 是一个针对 IMO、Putnam、USAMO、AIME 等竞赛数学题的 Claude Code 技能。其核心工作流(详见 SKILL.md)分八步:解释校验 → 并行生成候选解(内部迭代精化)→ 清洗证明(上下文隔离)→ 对抗验证 → 排序投票 → 修订 → 校准式弃答 → 演示优化。
solver_heuristics.md服务于第 2 步:当主工作流"并行启动 8~12 个尝试代理"时,每个代理需要一个不同的起始角度(ANGLE)。SKILL.md 中给出的起始角度清单——"先做小案例(越过 n=3)""寻找不变量或单调量""考虑极值情形""尝试归纳""有哪些对称性""反向推导""删除一个条件——它在哪一步变得平凡地为假""推广(发明者悖论——结构越多有时越容易)"——正是本文档各招式的直接引用(SKILL.md 第 2 步中明确写着 "Starting angles ... seereferences/solver_heuristics.md")。
因此,这份文档不是泛泛的数学方法论,而是技能内部分配"并行求解算力"的策略库:它决定了 8~12 个代理各自从哪个方向进攻,从而最大化覆盖不同解题路径。
二、Pólya 核心招式(源自《怎样解题》)
文档开门见山:这些招式适用于"直接思路卡壳"(the direct approach stalls)的时刻。核心思想源自 George Pólya 的经典著作《How to Solve It》。
1. 是否见过相关问题?
Have you seen a related problem?Not the same problem — one with the same UNKNOWN, or the same STRUCTURE.
不是找同一个问题,而是找未知量相同或结构相同的问题。文档给出了一个关键类比:用直线覆盖点的问题,与用算术级数覆盖格点的问题具有相同形状。这个招式提醒求解代理:抽象出问题的"形状"(shape),而非死记题干,才能在记忆/经验库中检索到可迁移的解法骨架。
2. 特例化(Specialize)
如果解不出给定问题,就先手算 n=3、n=4、n=5。模式往往就是证明本身(the pattern is often the proof)。
文档特别强调了一个陷阱:必须越过第一个非平凡情形测试——n≤3 可能是退化情形,给出的模式具有误导性。这一告诫与验证模式库中的Pattern #17(越过第一个非平凡块再测试)完全对应:verifier_patterns.md中以"m=1,2,3 时所有块秩为 1(因为只有 1×2 块,秩为 1 是被迫的),而第一个 2×2 块出现在 m=4,恰在此处命题失败"为例,说明小案例通过可能只是因为退化。这与 attempt_agent.md 中"严格 IMO 阅卷人模式"的自验证哲学一脉相承:正确结论来自错误推理同样是失败。
3. 推广(发明者悖论,Inventor's Paradox)
The more ambitious problem sometimes has MORE structure and is easier.
更宏大的问题有时反而结构更多、更容易。"对所有素数证明"可能比"对所有整数证明"更难——因为整数情形有一个干净的归纳。这个反直觉招式的实战含义是:当目标命题因约束过多而难以建立归纳时,尝试放宽到更大的集合,让归纳假设更丰富、更强。
4. 删除一个条件(Drop a condition)
What happens if you relax one hypothesis? Does the result become trivially false? Where? That WHERE is often the key step.
放松一个假设,看看结论在哪里变得平凡地为假。那个"WHERE"往往就是关键步骤——它是该条件真正承重(load-bearing)的位置。这直接对应 SKILL.md 起始角度清单中的"Drop a condition — where does it become trivially false?",是一种快速定位"哪个条件是证明的地基"的诊断手段。
5. 反向推导(Work backwards)
从想要证明的结论出发倒推:什么能推出它?什么又能推出"那个"?如果这条链遇到可以直接证明的命题,就得到了(反向书写的)证明。这是构造性证明中最常见的思路之一——先确定充分条件链,再正着写。
6. 辅助元素(Auxiliary element)
引入题目中不存在的对象——新变量、一个反射、一个精心选择的函数。文档特别指出:奥赛几何几乎完全依赖这一招(辅助点、辅助圆)。"找不到辅助点"往往是几何题解不动的根本原因,此招式要求求解代理主动制造"额外结构"。
三、奥林匹克专项招式
当问题涉及过程、变换、迭代或对称性时,Pólya 通用招式之外还有一组竞赛数学专属动作:
| 招式 | 核心动作 | 适用信号 |
|---|---|---|
| 寻找不变量(Find the invariant) | 如果有过程(博弈、变换、迭代),问什么量被保持?奇偶性、和、模某个数的乘积 | 游戏、变换、迭代类问题 |
| 寻找极值对象(Find the extremal) | 取最大、最小、最左的对象。极值选择通常具备一般选择不具备的额外性质 | 存在性/构造性问题 |
| 双计数(Double count) | 用两种方式数同一个东西:关联对、边、对子上的和 | 组合计数、图论、等式证明 |
| 染色/奇偶性(Coloring / parity) | 能否将对象二染色,使命题变成奇偶性陈述? | 覆盖、划分、博弈策略问题 |
| 平滑/调整(Smoothing / adjusting) | 不等式问题:把两个变量扰动得更接近(或更远离),表达式是增大还是减小?然后取极值 | 多元不等式 |
| 对称性 → 不失一般性(Symmetry → WLOG) | 若问题关于 x,y,z 对称,可假设 x≤y≤z;但仅当结论也对称时才行 | 对称多元问题 |
其中"对称性 → WLOG"的唯一性条件值得强调:如果结论不对称(例如要求指出哪个变量取到最大值),排序假设就会悄悄丢掉困难情形。这一告诫与 adversarial_prompts.md 中对抗验证器对"每个 WLOG 是否真的保持了普遍性"的检查完全一致。
四、几何专项招式
文档明确警告:标准招式(归纳、不变量、极值)对奥赛几何往往是"错形状"的——它们难以作用于圆、外心、垂心这类对象。几何需要专用招式。文档的两节几何内容(第二节标注"these are DIFFERENT")合并整理如下,全部招式均需保留:
1. 坐标暴力(Coordinate bash)
把图形放进坐标系,坐标的选择要以消除自由度为目标(原点取中心、轴沿某条线),然后硬算代数。丑陋但可靠。
文档给出了一个具体可复用的公式:对两个圆,圆心分别为 M、N,半径 r、R,设 M=(0,0)、N=(d,0),则两圆交点横坐标为(r²+d²−R²)/2d,其余一切由此推出。这是"坐标选择本身即是解题策略"的范例——把圆放在标准位置后,交点计算退化为一个二次方程。
2. 辅助点(Auxiliary point)
引入题目中不存在的点——反射点、第二个交点、两条线"应该"相交的点。文档重复强调:奥赛几何的关键构造常常就是找到那个正确的额外点。
3. 圆幂定理(Power of a point)
对任意点 P 与圆 ω:过 P 的任一直线交圆于 A、B,则PA·PB 恒定。用途:把比例关系转成等式,把圆"换算"成乘积。这几乎是所有涉及圆与切线的比例问题的原子工具。
4. 螺旋相似 / 旋转(Spiral similarity / rotation)
两个直接相似三角形由一个螺旋相似联系(绕固定点的旋转+缩放)。找到那个固定点——它常常落在已经存在的某个圆上。这是处理"两三角形相似但不在同一方向"的标准机制。
5. 反演(Inversion)
当圆和相切关系很多时,关于一个精心选择的中心作反演:过中心的圆变成直线,相切变成更简单的相切,有时反演后的问题平凡到直接可解。文档在第二节能给出的最简形式:"Circles through the center become lines. Sometimes the inverted problem is trivial."
6. 追角 / 圆内接四边形(Angle chase / cyclic quads)
四点共圆当且仅当对角和为 π。追角直到足够多的等式迫使共圆成立。切线与弦的夹角等于对应的圆周角——围绕图形逐角追踪。
五、递推专项陷阱:双指数增长
文档用一个醒目的警告收束递推类问题:
For recurrences like b_{n+1} = P(b_n) where P is polynomial degree ≥ 2:b_n grows doubly-exponentially. You cannot compute b_30 exactly — it has trillions of digits.
当递推 b_{n+1} = P(b_n) 中 P 是次数 ≥2 的多项式时,b_n 以双指数速度增长——b_30 就有数万亿位数字,无法精确计算。对策:
- 从一开始就在 ℤ/2^m(或 ℤ/p^m)中工作;
- 通过对 n 的归纳证明 b_n ≡ r_n (mod 2^m),而不是去计算 b_n。
这个陷阱在技能内部被反复强化:SKILL.md 的"工具策略"一节明确写道"一个双指数递推在 n~30 之后无法计算,改为模 2^m 工作";第 6c 节"深度模式"更是以真实 bug 为例(A6 的 b_{n+1}=2b_n²+b_n+1,b_99 有约 10^{2^98} 位数字),并给出操作规则:任何计算超过 60 秒,几乎可以断定是无界的,应当终止并转用符号化/模运算(见 SKILL.md 第 6c 节)。这条启发式的核心价值是让求解代理避免把"数值计算"误当"证明步骤"——正如求解提示词(attempt_agent.md)所强调的:"我算了 n=1..10 且模式成立"不是证明。
六、当答案是 √n 或 log n 时:对称选择往往是陷阱
文档指出了答案含 √n 或 log n 时的深层结构规律:
These answers often come from a structure that is NOT the obvious/symmetric one. The diagonal, the identity, the "natural" choice frequently gives the WORST case, not the best.
√n 或 log n 型答案通常来自非显而易见的非对称结构。对角、恒等、最"自然"的选择常常给出最坏情形而非最优——它把约束聚成一团,阻止了大子结构的存在。
文档按代理类型给出两条行动线:
- 纯推理求解代理:在断言对称选择最优之前,先问"如果我故意打破对称呢?"——网格/覆盖问题中,间隙分散而非聚集会怎样?序列问题中,极值序列不是常值或线性会怎样?
- 深度模式代理:在理论化之前先暴力枚举 n=3..8。如果拟合公式是 n+c√n 而非 cn,说明最优结构由 √n 大小的块构成。
这条启发式与 known_constructions.md 中的"分散 vs 聚集(Spread vs cluster)"模式互为印证:该文档指出,当目标是在每行/每列至多一个的约束下最大化某对象的大小时,对称放置使禁止区域成为连续带、只留下细条;而把禁止位置分散开才能留下肥窗口。具体构造建议是:分成 √n 组,每组分配给一个模 √n 的剩余类,组内倒序放置——这样任意连续的 √n 行/列的禁止位置都散布到所有剩余类中。若对 n=2..8 的暴力枚举结果是 an+b√n+c 比 an+b 拟合得更好,就应寻找以 k=√n 为参数、平衡两种竞争代价(k 个对象、每个大小 n/k)的构造。
SKILL.md 第 6d 步("非可选")进一步说明这条启发式的流程地位:任何在验证阶段弃答的问题,都必须自动启动一个深度模式代理;"√n 或 log n 答案的问题对纯推理几乎不可见,因为最优结构是非对称的"——这正是该启发式被制度化到工作流中的原因(SKILL.md 第 6d 步)。
七、证明完成后的复盘:Look Back 阶段
即使拿到了证明,文档要求求解代理(或演示代理)完成四个复查动作:
- 能检查吗?代入小情形——n=3 是否符合公式给出的值?
- 能用不同方式证明吗?第二个证明本身就是一次验证,而且常常更短。
- 界是紧的吗?若证明了 ≤N 且答案恰为 N,必须找到极值情形;找不到,说明你的界可能过松。
- 实际用到了哪些假设?有时你用的假设少于全部条件——真实定理比原命题更强。
这四个问题在技能的演示优化阶段(第 8 步)被放大为 presentation_prompts.md 中的具体问题:"事后看来有没有三行证明?""是否有过度杀伤(overkill)——用了双指数构造而线性就够了?""哪些步骤只验证不照亮?"可见 Look Back 不只是正确性检查,更是"把发现的顺序重排成阅读的顺序"的素材来源。
八、把启发式接入求解-验证闭环
solver_heuristics.md的招式并非孤立建议,而是整个技能"求解 → 对抗验证"闭环的进攻侧输入:
- 并行差异化:SKILL.md 要求 8~12 个尝试代理各自使用不同起始角度,本文档的招式清单正是角度池的来源(特例化、找不变量、极值、归纳、对称、反向、删条件、推广各占一路)。
- 内部精化循环:每个代理按 attempt_agent.md 的流程在内部迭代——求解 → 自改进 → 以严格 IMO 阅卷人身份自验证(区分"致命错误"与"论证缺口")→ 修正 → 再验证,最多 5 轮;连续两次自验证通过才停。启发式招式在这 5 轮中充当"换角度重试"的依据。
- 验证端对称约束:启发式中"WLOG 仅当结论对称"等告诫,在 adversarial_prompts.md 的对抗验证器中被反向执行——验证器专门攻击"每个 WLOG 是否丢掉了困难情形""每个被引定理的假设是否真正满足"(对应 verifier_patterns.md 的 Pattern #5)。
- 算力预算分级:不同模型代次对并求解器的数量有明确默认值(Haiku 12 个、Sonnet 6 个、Opus 4 个,详见 model_tier_defaults.md),意味着启发式角度池在弱模型上需要铺得更宽,在强模型上则可以更深地执行单一路线。
九、总结:一份"卡壳时的手术清单"
综合来看,solver_heuristics.md的价值在于把"数学直觉"操作化为一张可执行的分诊清单:
- 思路卡壳 → 先问"有没有同未知量/同结构的相关问题",再依次尝试特例化(越过 n≤3)、推广(发明者悖论)、删条件(找承重点)、反向推导、引入辅助元素;
- 遇到过程/变换/对称 → 换用不变量、极值、双计数、染色、平滑、对称→WLOG;
- 遇到几何 → 放弃通用招式,改用坐标暴力、辅助点、圆幂、螺旋相似、反演、追角;
- 遇到多项式递推 → 警惕双指数增长,直接模 2^m 归纳;
- 怀疑答案是 √n/log n →主动打破对称,先暴力 n=3..8 再看拟合;
- 拿到证明 → 执行Look Back 四问(小情形检查、第二证明、界紧性、假设冗余)。
配合 SKILL.md 的上下文隔离验证与对抗模式库,这套启发式让 Claude Code 的竞赛数学求解从"单次碰运气"变成"多角度进攻 + 严格防守"的工程化流程。对希望深入源码验证的读者,建议按以下顺序阅读:solver_heuristics.md(招式库)→ SKILL.md(工作流编排)→ attempt_agent.md(代理内部迭代协议)→ verifier_patterns.md(验证模式库)→ known_constructions.md(构造模式,与 √n 启发式互证)。
- AI 插件
- 开发工具
- 插件系统
【免费下载链接】claude-plugins-official
Official, Anthropic-managed directory of high quality Claude Code Plugins.
相关推荐
Claude Code Math Olympiad 插件 Solver-Refiner Agent 提示词深度解析:以纯推理三轮迭代构建可验证的竞赛数学证明
Claude Code Math Olympiad 插件 Solver Refiner Agent 提示词深度解析:以纯推理三轮迭代构建可验证的竞赛数学证明 <
AI 插件开发工具插件系统Claude Code Math Olympiad 插件的 Verifier Patterns:13 种纯推理对抗验证模式全解
Claude Code Math Olympiad 插件的 Verifier Patterns:13 种纯推理对抗验证模式全解 导读 verifier_patt
AI 插件开发工具插件系统Rufus终极指南:Windows 11 LTSC 2024版绕过在线账户的完整解决方案
Rufus终极指南:Windows 11 LTSC 2024版绕过在线账户的完整解决方案 Rufus作为可靠的USB格式化工具,在Windows 11 LTSC
桌面应用开发工具
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考