Simultaneous Discovery of Reusable Detectors and Subroutines Using Genetic Programming

This paper describes an approach for automatically decomposing a problem into subproblems and then automatically discovering reusable subroutines, and a way of assembling the results produced by these subroutines in order to solve a problem. The approach uses genetic programming with automatic function definition. Genetic programming provides a way to genetically breed a computer program to solve a problem. Automatic function definition enables genetic programming to define potentially useful subroutines dynamically during a run. The approach is applied to an illustrative problem. Genetic programming with automatic function definition reduced the computational effort required to learn a solution to the problem by a factor of 2.0 as compared to genetic programming without automatic function definition. Similarly, the average structural complexity of the solution was reduced by about 21%.