Abstract

Genetic programming is a method to generate computer programs automatically for a given set of input/output examples that define the user’s intent. In real-world software development this method could also be used, as a programmer could first define the input/output examples for a certain problem and then let genetic programming generate the functional source code. However, a prerequisite for using genetic programming as support system in real-world software development is a high performance and generalizability of the generated programs. For some program synthesis benchmark problems, however, the generalizability to previously unseen test cases is low especially when lexicase is used as parent selection method. Therefore, we combine in this paper lexicase selection with small batches of training cases and study the influence of different batch sizes on the program synthesis performance and the generalizability of programs generated with genetic programming. For evaluation, we use three common program synthesis benchmark problems. We find that the selection pressure can be reduced even when small batch sizes are used. Moreover, we find that, compared to standard lexicase selection, the obtained success rates on the test set are similar or even better when combining lexicase with small batches. Furthermore, also the generalizability of the found solutions can often be improved.

Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call