Learning Fitness Functions for Machine Programming
This work addresses the problem of automatic software generation for researchers and practitioners in machine programming, offering an incremental improvement by learning fitness functions to enhance genetic algorithms.
The authors tackled the challenge of hand-crafting fitness functions in genetic algorithms for machine programming by proposing a framework that learns fitness functions using neural networks and augments the evolutionary process with a search heuristic. They demonstrated that their approach finds more correct programs with fewer candidate program generations compared to state-of-the-art methods.
The problem of automatic software generation is known as Machine Programming. In this work, we propose a framework based on genetic algorithms to solve this problem. Although genetic algorithms have been used successfully for many problems, one criticism is that hand-crafting its fitness function, the test that aims to effectively guide its evolution, can be notably challenging. Our framework presents a novel approach to learn the fitness function using neural networks to predict values of ideal fitness functions. We also augment the evolutionary process with a minimally intrusive search heuristic. This heuristic improves the framework's ability to discover correct programs from ones that are approximately correct and does so with negligible computational overhead. We compare our approach with several state-of-the-art program synthesis methods and demonstrate that it finds more correct programs with fewer candidate program generations.