当前位置: X-MOL 学术Evol. Comput. › 论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
Counterexample-Driven Genetic Programming: Heuristic Program Synthesis from Formal Specifications
Evolutionary Computation ( IF 6.8 ) Pub Date : 2018-09-01 , DOI: 10.1162/evco_a_00228
Iwo Błądek 1 , Krzysztof Krawiec 1 , Jerry Swan 2
Affiliation  

Conventional genetic programming (GP) can guarantee only that synthesized programs pass tests given by the provided input-output examples. The alternative to such a test-based approach is synthesizing programs by formal specification, typically realized with exact, nonheuristic algorithms. In this article, we build on our earlier study on Counterexample-Based Genetic Programming (CDGP), an evolutionary heuristic that synthesizes programs from formal specifications. The candidate programs in CDGP undergo formal verification with a Satisfiability Modulo Theory (SMT) solver, which results in counterexamples that are subsequently turned into tests and used to calculate fitness. The original CDGP is extended here with a fitness threshold parameter that decides which programs should be verified, a more rigorous mechanism for turning counterexamples into tests, and other conceptual and technical improvements. We apply it to 24 benchmarks representing two domains: the linear integer arithmetic (LIA) and the string manipulation (SLIA) problems, showing that CDGP can reliably synthesize provably correct programs in both domains. We also confront it with two state-of-the art exact program synthesis methods and demonstrate that CDGP effectively trades longer synthesis time for smaller program size.

中文翻译:

反例驱动的遗传编程:来自形式规范的启发式程序合成

传统的遗传编程 (GP) 只能保证合成的程序通过提供的输入输出示例给出的测试。这种基于测试的方法的替代方案是通过形式规范合成程序,通常使用精确的非启发式算法来实现。在本文中,我们建立在我们早期对基于反例的遗传编程 (CDGP) 的研究的基础上,CDGP 是一种从形式规范合成程序的进化启发式方法。CDGP 中的候选程序使用可满足性模理论 (SMT) 求解器进行形式验证,从而产生反例,随后将其转化为测试并用于计算适应度。原始 CDGP 在这里扩展了一个适应度阈值参数,该参数决定应验证哪些程序,将反例转化为测试的更严格机制,以及其他概念和技术改进。我们将其应用于代表两个领域的 24 个基准测试:线性整数算术 (LIA) 和字符串操作 (SLIA) 问题,表明 CDGP 可以可靠地合成两个领域中可证明正确的程序。我们还用两种最先进的精确程序合成方法来对抗它,并证明 CDGP 有效地用更长的合成时间来换取更小的程序大小。
更新日期:2018-09-01
down
wechat
bug