General program synthesis has become an important application area for genetic programming (GP), and for artificial intelligence more generally. Code Building Genetic Programming (CBGP) is a recently introduced GP method for general program synthesis that leverages reflection and first class specifications to support the evolution of programs that may use arbitrary data types, polymorphism, and functions drawn from existing codebases. However, neither a formal description nor a thorough benchmarking of CBGP have yet been reported. In this work, we formalize the method of CBGP using algorithms from type theory. Specially, we show that a functional programming language and a Hindley-Milner type system can be used to evolve type-safe programs using the process abstractly described in the original CBGP paper. Furthermore, we perform a comprehensive analysis of the search performance of this functional variant of CBGP compared to other contemporary GP program synthesis methods.
翻译:一般方案合成已成为基因方案(GP)和更广义的人工智能的一个重要应用领域。《建立基因方案(CBGP)法》是最近为一般方案综合而引入的一种GP方法,它利用反思和头等规格支持可能使用任意数据类型、多形态和现有代码库中产生的功能的方案的演变。然而,尚未报告对CBGP的正式描述和全面基准。在这项工作中,我们正式确定了使用类型理论算法的CBGP方法。特别是,我们表明,可以利用一种功能性编程语言和Hindley-Milner型系统,利用最初的CBGP文件抽象描述的程序来发展安全型程序。此外,我们全面分析了CBGP的这一功能变体与其他当代的GP方案合成方法相比的搜索性表现。