Linear-Graph GP – A New GP Structure Wolfgang Kantschik 1 and Wolfgang Banzhaf 1,2 1 Dept. of Computer Science, University of Dortmund, Dortmund, Germany 2 Informatik Centrum Dortmund (ICD), Dortmund, Germany Abstract. In recent years different genetic programming (GP) struc- tures have emerged. Today, the basic forms of representation for genetic programs are tree, linear and graph structures. In this contribution we introduce a new kind of GP structure which we call linear-graph. This is a further development to the linear-tree structure that we developed earlier. We describe the linear-graph structure, as well as crossover and mutation for this new GP structure in detail. We compare linear-graph programs with linear and tree programs by analyzing their structure and results on different test problems. 1 Introduction of Linear-Graph GP This paper introduces a new representation for GP programs. This new rep- resentation, named linear-graph, has been developed with the goal of giving a program the flexibility to choose different execution paths for different inputs. The hope is to create programs of higher complexity, so that we can evolve pro- grams that can compete with the complexity and possibilities of hand-written programs. Linear-graph is the logical next step after the introduction of linear-tree structure. We have shown the power of the linear-tree structure in [7], but trees are not really the structure of a complex hand written program. Graphs come one step nearer to the control flow of a hand written program, though there is still a long way until we can evolve programs of the complexity of hand-written. Our efforts are devoted is to create a GP-structure able to solve tasks, which cannot be completed with current structures. It is possible for the current structures like, (1) tree-based GP [8,9], (2) linear-based GP [10,3], or (3) graph-based GP[12,2,11], to create more complex programs and hence solve more complex problems. How- ever we think, that this structures need more time and resources to evolve such programs. Let us look how the program flow of a hand-coded program could look like. Many programs contain decisions where another part of the program code will be called. After different program parts have been executed they flow together again. If one draws the possible program flows normally it will become a graph. J.A. Foster et al. (Eds.): EuroGP 2002, LNCS 2278, pp. 83–92, 2002. c Springer-Verlag Berlin Heidelberg 2002