Counterexample-Driven Genetic Programming: Heuristic Program Synthesis from Formal Specifications

被引:11
作者
Bladek, Iwo [1 ]
Krawiec, Krzysztof [1 ]
Swan, Jerry [2 ]
机构
[1] Poznan Univ Tech, Inst Comp Sci, PL-60965 Poznan, Poland
[2] Univ York, Dept Comp Sci, York YO10 5GH, N Yorkshire, England
基金
欧盟地平线“2020”;
关键词
Genetic programming; formal verification; counterexamples; SMT;
D O I
10.1162/evco_a_00228
中图分类号
TP18 [人工智能理论];
学科分类号
081104 ; 0812 ; 0835 ; 1405 ;
摘要
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.
引用
收藏
页码:441 / 469
页数:29
相关论文
empty
未找到相关数据