

Genetic Programmings (GPs) is one of the most powerful evolutionary computation (EC) for software evolution. In ECs, it is difficult to maintain efficient building blocks. In particular, the control of building blocks in the population of genetic programming (GP) is relatively difficult because of tree-shaped individuals and also because of bloat, which is the uncontrolled growth of ineffective code segments in GP. For a variety of reasons, reliable techniques to remove bloat are highly desirable. This paper introduces a novel approach of removing bloat, by proposing a novel GP called “Genetic Programming with Multi-Layered Population Structure (MLPS-GP)” that employs multi-layered population and searches solutions using local search and crossover. The MLPS-GP has no mutation-like operator because such kinds of operators are the source of bloats. We showed that diversity can be maintained well only controlling the tree structures by a well-structured multi-layered population. To confirm the effectiveness of the proposed method, the computational experiments were carried out taking several classical Boolean problems as examples.