Skip to main content
QUICK REVIEW

[论文解读] Neural Guided Constraint Logic Programming for Program Synthesis

Lisa Zhang, Gregory Rosenblatt|arXiv (Cornell University)|Sep 8, 2018
Software Engineering Research被引用 5
一句话总结

本文提出了一种基于 miniKanren 的神经引导约束逻辑编程方法,用于程序合成,其中神经模型(RNN 或 GNN)处理 miniKanren 的内部约束表示,以加速搜索。与基线方法相比,该方法显著提升了合成速度,并在更大规模问题上展现出更强的泛化能力。

ABSTRACT

Synthesizing programs using example input/outputs is a classic problem in artificial intelligence. We present a method for solving Programming By Example (PBE) problems by using a neural model to guide the search of a constraint logic programming system called miniKanren. Crucially, the neural model uses miniKanren's internal representation as input; miniKanren represents a PBE problem as recursive constraints imposed by the provided examples. We explore Recurrent Neural Network and Graph Neural Network models. We contribute a modified miniKanren, drivable by an external agent, available at https://github.com/xuexue/neuralkanren. We show that our neural-guided approach using constraints can synthesize programs faster in many cases, and importantly, can generalize to larger problems.

研究动机与目标

  • 为解决编程示例(PBE)问题中程序合成搜索速度缓慢的挑战。
  • 提升对更大、更复杂 PBE 问题的泛化能力,超越小规模示例的限制。
  • 通过利用 miniKanren 的内部约束表示作为输入,将神经模型与约束逻辑编程相结合。
  • 开发一种可外部驱动的 miniKanren 改进版本,以增强搜索引导能力。
  • 评估 RNN 和 GNN 架构在引导基于约束的程序合成中的有效性。

提出的方法

  • 训练神经模型,通过编码 miniKanren 的内部约束表示作为输入,以预测有希望的搜索路径。
  • 神经模型使用循环神经网络(RNN)或图神经网络(GNN)来处理 PBE 问题的递归约束结构。
  • 系统将神经模型作为外部代理,引导 miniKanren 的搜索过程,从而提高探索效率。
  • 改进后的 miniKanren 支持外部控制,使神经模型能够动态引导搜索过程。
  • miniKanren 中的约束表示源自输入-输出示例,形成对程序结构的递归逻辑约束。
  • 该方法通过优先考虑有希望的约束分支,实现更快收敛到正确程序。

实验结果

研究问题

  • RQ1神经模型能否有效引导 PBE 合成中的约束逻辑编程?
  • RQ2与未引导的 miniKanren 相比,神经引导如何提升搜索效率?
  • RQ3神经引导方法能否泛化到训练分布之外的更大规模 PBE 问题?
  • RQ4RNN 和 GNN 架构在引导基于约束的搜索方面表现如何比较?
  • RQ5使用 miniKanren 的内部约束表示在多大程度上提升了模型性能?

主要发现

  • 与基线 miniKanren 相比,神经引导方法在多个 PBE 基准测试中显著减少了合成时间。
  • 该方法在更大规模问题上表现出有效的泛化能力,展示了超越小规模示例集的可扩展性。
  • RNN 和 GNN 两种变体的神经模型均提升了搜索效率,其中 GNN 在结构化约束上表现更优。
  • 将神经引导与 miniKanren 集成,可通过聚焦于相关约束分支,实现更快收敛到正确程序。
  • 改进后的 miniKanren 系统(GitHub 可获取)支持外部代理控制,实现了神经引导的即插即用。
  • 该方法在保持正确性的前提下实现了更快的合成,验证了在约束表示上使用神经引导的有效性。

更好的研究,从现在开始

从论文设计到论文写作,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。