Genetic programming (GP) is a specific area of artificial intelligence, involving machine learning and evolutionary strategies, applied to efficiently identify certain computer programs or topologies of programs suited to some user requirements. It involves such concepts as fitness to a given pattern, evolutionary algorithms, and symbolic regression.

The introductory chapters in this book survey some important moments in the history of GP. The rest of the book provides a selection of 15 papers submitted at the 10th Workshop on Genetic Programming, Theory and Practice, held yearly at the Center for the Study of Complex Systems at the University of Michigan.

As stated in the introduction, the papers describe fundamental theoretical issues, or rather practical applications. The compilation is very interesting, and includes diverse aspects and applications, touching on various topics, including telecommunications, networking, medical imaging, game programming, and robotics. The main theoretical directions investigated throughout this compilation are evolutionary strategies and constraints, dynamic environments, analysis of problem difficulty and choice of a suitable GP algorithm, and foundational information on running a GP in the cloud.

Chapter 1 presents a system called query from examples, which is able to develop SQL queries in intelligible form, based on an input database. The system is implemented using developmental GP, which provides the ability to fix existing flaws or augment an existing version. Chapter 2 explores programming complex autonomous robots in dynamic environments, and analyzes several evolutionary algorithms used in the online learning platform.

A version of Cartesian genetic programming for automatically generating image-processing modules is presented in chapter 3. The authors describe some applications in medical imaging and robotics. Chapter 4 explores the Levy flight mutation technique, inspired by animal behavior, to optimize linear genetic programming systems. It illustrates the performance of several numeric regression algorithms.

In chapter 5, the authors introduce a new adaptive incrementally growing fitness function, so-called age varying. This function is suitable for replacing costly fitness functions or operating in noisy situations. A distributed network platform, called EC-Star, using a hub-and-spoke topology and a three-layer architecture, is proposed in chapter 6. The study presented in chapter 7 designs an evolutionary strategy able to solve complex, intricate problems in an attempt to surpass the classical linear approaches. It makes use of the Pareto optimization to contain overfitting in the result post-processing phase. The technique is illustrated with real data from a genetic study of prostate cancer.

ATHENA, a machine learning tool using grammatical neural networks (NNs), is presented in chapter 8. It carries out a data mining task to integrate data from different technologies and identify the most suitable architecture. The study explores the impact of the NN size on the prediction task. Chapter 9 considers the symbolic regression (SR) discipline, developing a comprehensive public domain SR algorithm. The algorithm is supposed to represent a basic standard for future research.

In chapter 10, the authors explore symbolic regression from the point of view of how the variation of inputs is transmitted to output by different GP models. They propose an average absolute error based on Euclidean distance as the measure of the distance between the hyper-cloud and the original data. Chapter 11 builds a framework to assist and assess the performance of a GP, providing statistical tools for the analysis of the results, and their visualization, for an enhanced awareness of the heuristics behind the problems to be solved.

Chapter 12 explores the application of GP to game programming and production by analyzing two strategies for evolutionary game design. Chapter 13 analyzes the requirements for developing symbolic regression models from the viewpoint of efficiency of data manipulation and expression development. These strategies allow for the analysis of several models in order to select the appropriate ones. This is meant to boost DataModeler’s flexibility and capacity to evaluate different sets of models.

Chapter 14 presents an integration and testing environment, FlexGPy, for self-scaling and self-aggregating island GP models in the cloud. In chapter 15, the authors address the telecommunications domain. In this context, a control algorithm is presented, which takes into account two highly complex aspects: communication and learning.

This book reflects the progress made in GP during recent years. It covers a large range of up-to-date applications and theoretical issues. All of the papers are valuable and are recommended reading for AI scientists or novices.