Applied Soft Computing ( IF 5.472 ) Pub Date : 2020-09-15 , DOI: 10.1016/j.asoc.2020.106717 Mohiul Islam; Nawwaf Kharma; Peter Grogono
Expansion is a novel mutation operator for Genetic Programming (GP). It uses Monte Carlo simulation to repeatedly expand and evaluate programs using unit instructions, which extends the search beyond the immediate - often misleading - horizon of offspring programs. To evaluate expansion, a standard Koza-style tree-based representation is used and a comparison is carried out between expansion and sub-tree crossover as well as point mutation. Using a diverse set of benchmark symbolic regression problems, we prove that expansion provides for better fitness performance than point mutation, when included with crossover. Expansion also provides a significant boost to fitness when compared to GP using crossover only, with similar or lower levels of program bloat. Despite expansion’s success in improving evolutionary performance, it does not eliminate the problem of program bloat. In response, an analogous genetic operator, reduction, is proposed and tested for its ability to keep a check on program size. We conclude that the best fitness can be achieved by including these three operators in GP: crossover, point mutation and expansion.