When genetic programming does not produce desirable results, premature convergence and loss of diversity within the population are often blamed. Without diversity the algorithm cannot produce variation and move out of local optima due to convergence. However, the population rarely loses all diversity. Therefore, it is often misleading to attribute run failure to convergence. In fact, genetic programming runs are usually pre-determined to converge due to the representation and operators. Run failure is more likely due to the type and rate of convergence, not convergence itself.
The research presented in this thesis has contributed toward an improved understanding of genetic programming by focusing on the issue of diversity. While diversity loss can describe convergence and the inability to escape local optima, diversity also influences most decisions in the evolutionary process. After all, evolutionary algorithms are a population-based search method that rely on the population to provide search direction.
The results of this research demonstrate many ways to improve search efficiency and effectiveness in genetic programming. Improving this population-based search method has wide reaching benefits, demonstrated by the many applications of genetic programming, from artificial intelligence (mobile robotics, automatic programming and machine learning) to operations research and applied optimisation.