Efficient program generation by evolving graph structures with multi-start nodes
Introduction
Studies on evolutionary computation and their application to complex problems have been successfully conducted over a period of many years. One of the research fields of evolutionary computation is automatic program generation such as generating boolean functions. Genetic Programming (GP) [1], [2], Cartesian GP [3] and other learning techniques such as neural networks [4], [5] have been successfully applied to this field.
Genetic Network Programming (GNP) has been proposed as one of the evolutionary computations and mainly applied to dynamic problems [6], [7]. GNP programs are represented by directed graph structures, which have some inherent features such as re-usability of nodes and the fixed number of nodes. For example, the re-usability of nodes works as Automatically Defined Functions (ADFs) in GP, and the fixed number of nodes never causes bloat of the programs. In addition, GNP has been combined with reinforcement learning [8] in order to enhance its learning ability and applied to some applications [9], [10].
On the other hand, GNP was applied to static problems [11] by using explicit memory mechanism, where the expressions generated by processing nodes are stored in the memory. In this paper, to enhance the expression ability of the standard GNP and generate programs efficiently by making use of the inherently equipped features of the graph structures, multi-start nodes are introduced and plural programs are evolved simultaneously in one individual. Basically, GP creates one program (tree structure) by one individual, but GNP can creates plural programs efficiently even if the number of nodes is small. In addition, GNP can evolve the programs considering the fitness and its standard deviation in the selection phase.
In the simulations, Even-n-Parity problem and Mirror Symmetry problem are used for the performance evaluation, and the results show that the proposed method can find the better solutions efficiently.
This paper is organized as follows. In the next section, the proposed method is explained in detail. Section 3 describes the simulations and their results, and some conclusions are given in Section 4.
Section snippets
Genetic Network Programming with multi-start nodes
First, a program structure of GNP with memory and multi-start nodes is introduced, then how to construct programs and evolve them is explained in detail considering the fitness and its standard deviation.
Simulation
In this section, the performance of the proposed method is evaluated comparing with the standard GNP with single start node (SGNP), where two benchmark problems are used; one is Even-n-Parity problem and the other is Mirror Symmetry problem. Even-n-Parity function is a boolean function which returns 1 when the number of 1 in the n input values is odd, otherwise 0. Mirror Symmetry function returns 1 when the input pattern is symmetric, e.g., 101, 1001, …, otherwise 0.
Conclusions
In this paper, GNP with multi-start nodes has been proposed and its search ability for solutions are evaluated. Multi-start nodes implement their own node transitions and create programs, so many expressions can be created by one individual. In addition, each node transition can share some parts/nodes of the individual, so the search for solutions is effectively carried out. In addition, the standard deviation of the fitness values is considered to evolve programs efficiently.
From the
References (11)
On the solution of the parity problem by a single hidden layer feedforward neural network
Neurocomputing
(1997)Genetic Programming on the Programming of Computers by Means of Natural Selection
(1992)Genetic Programming II, Automatic Discovery of Reusable Programs
(1994)- et al.
Self modifying Cartesian genetic programming: Parity
- et al.
How to solve the N-bit-parity problem with two hidden units
Neural Networks
(1992)