Analytical inductive programming and evolutionary inductive programming are two opposing strategies for learning recursive programs from incomplete specifications such as input/output examples. Analytical inductive programming is data-driven, namely, the minimal recursive generalization over the positive input/output examples is generated by recurrence detection. Evolutionary inductive programming, on the other hand, is based on searching through hypothesis space for a (recursive) program which performs sufficiently well on the given input/output examples with respect to some measure of fitness. While analytical approaches are fast and guarantee some characteristics of the induced program by construction (such as minimality and termination) the class of inducable programs is restricted to problems which can be specified by few positive examples. The scope of programs which can be generated by evolutionary approaches is, in principle, unrestricted, but generation times are typically high and there is no guarantee that such a program is found for which the fitness is optimal. We present a first study exploring possible benefits from combining analytical and evolutionary inductive programming. We use the analytical system Igor2 to generate skeleton programs which are used as initial hypotheses for the evolutionary system Adate. We can show that providing such constraints can reduce the induction time of Adate.
Abstract:Evolutionary programming is the most powerful method for inducing recursive functional programs from input/output examples while taking into account efficiency and complexity constraints for the target program. However, synthesis time can be considerably high. A strategy which is complementary to the generate-and -test based approaches of evolutionary programming is inductive analytical programming where program construction is example-driven, that is, target programs are constructed as minimal generalization over the given input/output examples. Synthesis with analytical approaches is fast, but the scope of synthesizable programs is restricted. We propose to combine both approaches in such a way that the power of evolutionary programming is preserved and synthesis becomes more efficient. We use the analytical system IGOR2 to generate seeds in form of program skeletons to guide the evolutionary system ADATE when searching for target programs. In an evaluations with several examples we can show that using such seeds indeed can speed up evolutionary programming considerably.
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.