← 最新论文
💻 computer science

Program Synthesis for Non-Linear Real Arithmetic: Going Beyond Realizability

本文针对现有合成工具在处理不可实现的非线性实算术规范时的局限性,提出了一种框架,该框架能够合成有理数输入/输出程序以要么满足规范要么正确报告不存在性,其中包含针对单输出情形的完备算法以及针对一般规范并在 NQSynth 工具中实现的保真但不完备的方法。

原作者: S. Akshay, Supratik Chakraborty, R. Govind, Aniruddha R. Joshi

发布于 2026-05-26
📖 1 分钟阅读☕ 轻松阅读

原作者: S. Akshay, Supratik Chakraborty, R. Govind, Aniruddha R. Joshi

原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明

想象你是一位主厨(计算机),正试图遵循一份极其严格的食谱(规范)来制作一道菜肴(程序输出)。

问题:“不可能”的食谱

在计算机科学领域,有一种流行的方法称为SyGuS(语法引导合成)。它就像一个机器人厨师,试图找到一份食谱,使其适用于你抛给它的每一种可能的食材组合

然而,有时你给机器人的食谱是有缺陷的。例如,想象一份食谱说:“做一个宽度正好为 1 米的蛋糕,但你只有一个宽度为 10 厘米的烤盘。”

  • 如果你给机器人一个小烤盘,它可以做一个小蛋糕。
  • 如果你给它一个大烤盘,在里面做一个 1 米宽的蛋糕在物理上是不可能的。

老式工具(如 SyGuS)看到这种情况会说:"我放弃了!这份食谱对于每一种情况都是无法遵循的,所以我根本不会编写任何代码。"即使对于那些可能的情况(比如当你有一个小烤盘时),它们也拒绝提供帮助。

新方法:“聪明”的厨师

这篇论文的作者 Akshay、Chakraborty、Govind 和 Joshi 表示:"这还不够好。我们需要一位厨师,在可能时烹饪,在不可能时礼貌地说‘我做不到’。"

他们创建了一种构建程序的新方法,能够处理非线性实数算术(涉及曲线、平方和复杂关系的数学,而不仅仅是简单的加法)。他们的目标是合成一个程序,该程序:

  1. 成功: 如果输入允许得出正确答案,则完美地计算出它。
  2. 承认失败: 如果输入使得答案不可能,它不会崩溃或猜测;而是明确地说:“此处无解。”

“有理”规则:无舍入误差

他们工作的关键部分在于如何处理数字。计算机通常使用“浮点数”(如 3.14159...),这类似于近似值。如果你用近似值做数学运算,就会产生微小的误差(舍入误差),这些误差累积起来可能导致大错误。

作者决定使用有理数(分数,如 22/73/4)。

  • 类比: 想象建造一座房子。浮点数学就像使用一把略微弯曲的尺子;你的墙壁可能会倾斜。有理数学就像使用激光精确的蓝图,其中每个测量值都是精确的。
  • 权衡: 精确数学的计算速度较慢,但它保证了零误差。作者想要的程序在数学上是完美的,而不仅仅是“差不多”。

三大发现

1. “无解”之谜(理论极限)
作者证明,为每一个可能的数学问题创建一个完美程序,其难度等同于解决数学中一个著名的未解之谜,即希尔伯特第十问题(该问题询问我们是否总能判断特定类型的方程是否有解)。

  • 隐喻: 他们表明,要求计算机解决每一个可能版本的这个问题,就像要求它解开一个连最伟大的数学家都尚未破解的谜题。
  • 结果: 因此,他们证明了编写一个“无循环”程序(简单的直线型食谱)来解决所有情况是不可能的。你需要循环(重复步骤)来处理复杂性。

2. “单输出”奇迹
虽然一般问题很难,但他们找到了一个“甜蜜点”。如果程序只需要产生一个单一数字作为输出(例如,仅找出三角形的高度),他们就创建了一个完美且完整的算法

  • 工作原理: 他们使用了两个经典的数学技巧:
    • 实根隔离: 找出数轴上解必须存在的精确“区间”。
    • 有理根定理: 一条将答案搜索范围限制在少量有限可能性列表中的规则。
  • 结果: 对于单输出问题,他们的工具(称为NQSynth)保证如果答案存在则能找到它,或者正确地说它不存在。

3. “足够好”的通用解决方案
对于具有多个输出的问题(例如,同时找出高度宽度),完美的解决方案太难保证。因此,他们构建了一个“可靠但不完整”的算法。

  • 隐喻: 把这想象成一名侦探,他无法解决城市里的每一起犯罪,但非常擅长解决他遇到的那些案件。如果他们找到了一个解决方案,他们知道它是 100% 正确的。如果他们找不到,那可能只是时间不够,而不是因为不存在解决方案。
  • 结果: 他们的工具NQSynth成功解决了许多其他最先进工具(如 CVC5)未能触及的困难数学问题,即使那些其他工具被给予了问题的“更简单”版本。

工具:NQSynth

团队构建了一个名为NQSynth的原型工具。

  • 功能: 它接收一个复杂的数学规则,并编写一个 Python 程序,使用分数完美地遵循该规则。
  • 性能: 在他们的测试中,NQSynth 解决了83 个困难基准中的 59 个,而次优工具仅解决了 26 个。它特别擅长处理“不可实现”的规范(即“不可能”的食谱),通过正确识别何时存在解决方案以及何时不存在。

总结

这篇论文是关于教导计算机成为诚实且精确的数学家。新方法教导计算机,当问题看起来不可能时不要放弃,而是:

  1. 使用精确分数以避免错误。
  2. 如果可能,解决问题。
  3. 如果不可能,自信地说“我做不到”。

他们证明,虽然为每一个场景提供“完美”的解决方案在数学上是不可能的,但他们可以构建一个工具,该工具对单变量问题完美工作,并对复杂的多变量问题表现卓越,击败了该领域当前的最佳工具。

您所在领域的论文太多了?

获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。

试用 Digest →