We consider the problem of automatically constructing computer programs from input-output examples. We investigate how to augment probabilistic and neural program synthesis methods with new search algorithms, proposing a framework called distribution-based search. Within this framework, we introduce two new search algorithms: Heap Search, an enumerative method, and SQRT Sampling, a probabilistic method. We prove certain optimality guarantees for both methods, show how they integrate with probabilistic and neural techniques, and demonstrate how they can operate at scale across parallel compute environments. Collectively these findings offer theoretical and applied studies of search algorithms for program synthesis that integrate with recent developments in machine-learned program synthesizers.
翻译:我们从输入-输出实例中考虑自动构建计算机程序的问题。 我们研究如何用新的搜索算法来增强概率和神经程序合成方法, 并提议一个称为基于分布的搜索的框架。 在这个框架内, 我们引入了两种新的搜索算法: 希普搜索(一种数字方法) 和 SQRT抽样(一种概率方法) 。 我们证明两种方法都具有某种最佳性保证, 表明它们如何与概率和神经技术相结合, 并展示它们如何在平行的计算环境中大规模运作。 这些发现共同提供了将程序合成与机器- 学习程序合成器的最新发展结合起来的搜索算法理论和应用研究。