Neural Program Synthesis with Priority Queue Training
Daniel A. Abolafia, Mohammad Norouzi, Jonathan Shen, Rui Zhao, Quoc V., Le

TL;DR
This paper introduces Priority Queue Training (PQT), a novel iterative method for program synthesis that trains an RNN on top-performing programs, outperforming genetic and reinforcement learning baselines in a Turing complete language.
Contribution
The paper presents PQT, a new algorithm for program synthesis that effectively combines priority queues and RNN training, demonstrating superior performance over existing methods.
Findings
PQT significantly outperforms genetic algorithms and reinforcement learning baselines.
Adding a program length penalty enables synthesis of shorter, human-readable programs.
PQT effectively leverages a priority queue of top programs for iterative improvement.
Abstract
We consider the task of program synthesis in the presence of a reward function over the output of programs, where the goal is to find programs with maximal rewards. We employ an iterative optimization scheme, where we train an RNN on a dataset of K best programs from a priority queue of the generated programs so far. Then, we synthesize new programs and add them to the priority queue by sampling from the RNN. We benchmark our algorithm, called priority queue training (or PQT), against genetic algorithm and reinforcement learning baselines on a simple but expressive Turing complete programming language called BF. Our experimental results show that our simple PQT algorithm significantly outperforms the baselines. By adding a program length penalty to the reward function, we are able to synthesize short, human readable programs.
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Code & Models
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsSoftware Engineering Research · Reinforcement Learning in Robotics · Machine Learning and Algorithms
