Program semantics is a promising recent research thread in Genetic Programming (GP). Over a dozen semantic-aware search, selection, and initialization operators for GP have been proposed to date. Some of these operators are designed to exploit the geometric properties of semantic space, while others focus on making offspring effective, that is, semantically different from their parents. Only a small fraction of previous works aimed at addressing both of these features simultaneously. In this article, we propose a suite of competent operators that combine effectiveness with geometry for population initialization, mate selection, mutation, and crossover. We present a theoretical rationale behind these operators and compare them experimentally to operators known from literature on symbolic regression and Boolean function synthesis benchmarks. We analyze each operator in isolation as well as verify how they fare together in an evolutionary run, concluding that the competent operators are superior on a wide range of performance indicators, including best-of-run fitness, test-set fitness, and program size.

You do not currently have access to this content.