We introduce Knowledge-Driven Program Synthesis (KDPS) as a variant of the program synthesis task that requires the agent to solve a sequence of program synthesis problems. In KDPS, the agent should use knowledge from the earlier problems to solve the later ones. We propose a novel method based on PushGP to solve the KDPS problem, which takes subprograms as knowledge. The proposed method extracts subprograms from the solution of previously solved problems by the Even Partitioning (EP) method and uses these subprograms to solve the upcoming programming task using Adaptive Replacement Mutation (ARM). We call this method PushGP+EP+ARM. With PushGP+EP+ARM, no human effort is required in the knowledge extraction and utilization processes. We compare the proposed method with PushGP, as well as a method using subprograms manually extracted by a human. Our PushGP+EP+ARM achieves better train error, success count, and faster convergence than PushGP. Additionally, we demonstrate the superiority of PushGP+EP+ARM when consecutively solving a sequence of six program synthesis problems.
翻译:我们引入了知识驱动程序合成(KDPS),作为程序合成任务的变体,要求代理解决程序合成问题序列。在 KDPS中,代理应使用早期问题的知识解决后期问题。我们建议了一种基于PushGP的新方法来解决KDPS问题,将子程序作为知识。拟议方法从以前通过“Even Preating” (EP) (EP) (EP) (EP) (EP) 方法解决问题的解决方案中提取了子程序图,并使用这些子程序来解决即将到来的用适应替代 Mudication(ARM) (ARM) 完成的编程任务。我们称之为“PushGP+EP+ARM ” 。我们称之为“PushGP+EP+ARM ” 方法,在知识提取和利用过程中不需要人的努力。我们将拟议的方法与PushGPGP(P) 比较,以及使用由人手动提取的子程序的方法。我们的PushGPEP+ARM(EP) 实现更好的火车错误、成功计数和更快的趋同。此外,我们展示了在连续解决六个合成问题序列时PGPGPGP+EPEP+ARM的优势。我们显示了PEP+ARM的优势。