We have described a system, Grammatical Evolution (GE) that can map a
binary genotype onto a phenotype which is a high level program. GE has proved successful for two different types of problems, namely, symbolic regression [Ryan 98] and finding trigonometric identities. We have shown how GE created trigonometric identities for
and a close approximation to
Genetic Programming was also applied to these problems [Koza 92] with comparable success. GE, like GP, has the ability to evolve its own constants, as was seen during these experiments with the successive application of Sin to the constant 1.0, and through the generation of 1.0 with expressions such as x/x. Whilst GE evolves the required solutions in both problem sets in the designated number of generations, it can take longer to evolve the solutions when compared with Genetic Programming. The major strength of GE with respect to GP is its ability to generate multi-line functions in any language.
The next step will be to apply GE to a problem that requires multi line functions. Because
our mapping technique employs a BNF definition, the system is language
independant, and, theoretically can generate arbitrarily complex
GE can easily generate functions which use several lines of
code specifically, if the rule for
<code> in the earlier definition was modified to read:
<code> ::= <line>; | <line>; <code> <line> ::= <var> = <expr>
then the system could generate functions of arbitrary
length. We therefore, do not see GE as a replacement for GP, but to be used in the generation of arbitrarily complex functions.