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序列的程序,有时还会发展出非传统的编程方法。我们通过多项实验分析了其行为及其所发明的程序。