Learning to Combine Per-Example Solutions for Neural Program Synthesis
  The goal of program synthesis from examples is to find a computer program
that is consistent with a given set of input-output examples. Most
learning-based approaches try to find a program that satisfies all examples at
once. Our work, by contrast, considers an approach that breaks the problem into
two stages: (a) find programs that satisfy only one example, and (b) leverage
these per-example solutions to yield a program that satisfies all examples. We
introduce the Cross Aggregator neural network module based on a multi-head
attention mechanism that learns to combine the cues present in these
per-example solutions to synthesize a global solution. Evaluation across
programs of different lengths and under two different experimental settings
reveal that when given the same time budget, our technique significantly
improves the success rate over PCCoder [Zohar et. al 2018] and other ablation
baselines. The code, data and trained models for our work can be found at
https://github.com/shrivastavadisha/N-PEPS.
