论文

形式化,而非优化:LLM生成组合求解器中的启发式陷阱

Formalize, Don't Optimize: The Heuristic Trap in LLM-Generated Combinatorial Solvers

模型评测基准与评测资源

摘要

大语言模型(LLM)难以通过直接推理求解复杂组合问题,因此近来的神经符号系统日益转向用它们合成可执行的求解器。一个核心设计问题是LLM应以何种形式表示求解器,以及它是否还应尝试优化搜索。我们提出CP-SynC-XL,一个包含100个组合问题(4,577个实例)的基准,并评估三种求解器构建范式:原生算法搜索(Python)、通过Python求解器API进行约束建模(Python + OR-Tools),以及声明式约束建模(MiniZinc + OR-Tools)。我们发现一致的表征分化:Python + OR-Tools在各LLM上取得最高正确率,而MiniZinc + OR-Tools尽管使用相同的OR-Tools后端,绝对覆盖率却更低。原生Python最有可能返回模式有效却未通过验证的解,而求解器支持的路径保持更高的条件保真度。在启发式维度上,提示进行搜索优化仅带来很小的中位数加速(1.03-1.12x),且效果强烈双峰:许多实例反而变慢,正确率在一长尾问题上急剧下降。配对的代码级审计将这些退化追溯到一个反复出现的启发式陷阱。在效率导向的提示下,LLM可能用局部近似取代完整搜索(Python)、注入未经验证的界(Python + OR-Tools),或添加使模型不堪重负或过度约束的冗余声明式机制(MiniZinc + OR-Tools)。这些发现支持一个面向LLM生成组合求解器的保守设计原则:主要让LLM为经验证的求解器形式化变量、约束与目标,并对任何LLM撰写的搜索优化在使用前单独检查。

形式化,而非优化:LLM生成组合求解器中的启发式陷阱:论文配图
图 1:通过范式和提示提供的解决方案(虚线)与验证正确的解决方案(实线),每个LLM一个面板(对数时间轴)。 Python + OR-Tools 在每个 LLM 的 256256 s 尾部获得最高正确率;点与实的差距在 Python 上最大,在 MiniZinc + OR-Tools 上最小;启发式提示无法可靠地控制基线,预览启发式陷阱。