We introduce a self-learning algorithm for synthesizing programs for OEIS sequences. The algorithm starts from scratch initially generating programs at random. Then it runs many iterations of a self-learning loop that interleaves (i) training neural machine translation to learn the correspondence between sequences and the programs discovered so far, and (ii) proposing many new programs for each OEIS sequence by the trained neural machine translator. The algorithm discovers on its own programs for more than 78000 OEIS sequences, sometimes developing unusual programming methods. We analyze its behavior and the invented programs in several experiments.
翻译:我们提出了一种自学习算法,用于合成OEIS序列的程序。该算法从零开始,最初随机生成程序。随后,它运行多个自学习循环迭代,交替执行以下步骤:(i) 训练神经机器翻译,以学习序列与已发现程序之间的对应关系;(ii) 通过训练好的神经机器翻译器为每个OEIS序列提出大量新程序。该算法自主发现了超过78000个OEIS序列的程序,有时甚至开发出不同寻常的编程方法。我们通过多项实验分析了其行为及所发明的程序。