We present several new techniques for evolving code through sequences of mutations. Among these are (1) a method of local scoring assigning a score to each expression in a program, allowing us to more precisely identify buggy code, (2) suppose-expressions which act as an intermediate step to evolving if-conditionals, and (3) cyclic evolution in which we evolve programs through phases of expansion and reduction. To demonstrate their merits, we provide a basic proof-of-concept implementation which we show evolves correct code for several functions manipulating integers and lists, including some that are intractable by means of existing Genetic Programming techniques.
翻译:我们提出了通过变异序列演进代码的若干新技术,其中包括:(1) 一种本地评分方法,对方案中的每个表达式进行评分,使我们能够更准确地确定错误代码;(2) 假想表达,作为进化有条件的中间步骤;(3) 循环演进,我们通过扩展和减少阶段来演进方案;为证明其优点,我们提供了基本的概念证明,我们为操纵整数和清单的若干功能,包括一些因现有基因规划技术而难以操作的功能,制定了正确的代码。