Talk:Grammatical evolution

someone else should add more information on this. GE is really cool and a big step forward over GP.
 * bull. 65.183.135.231 (talk) 04:03, 29 October 2008 (UTC)

i'm surprised there wasn't a page on it until mid-2006 (i.e., now).

well, it's now fall 2006 and no one else has added to this. it's a little too obscure as of yet, i suppose. i should write up pseudocode actually describing the algorithm for mapping integers to sentences generated by a BNF grammar. also some diagrams to visualize it and make the biological analogy clearer would be nice. as always my laziness prevents me from doing this right now.

Thanks for putting this page up, I'll gladly contribute a few diagrams to the page. More precisely, I'll add up a diagram with the biological system equivalence, and another with a full mapping example, along with the corresponding explanation. I also agree that the text is a bit obscure. I believe the introduction should be shorter: maybe remove some of the GP criticisms, and move the explanation of how GE works into a whole new section below. Let me know what you think about this. - Miguel Nicolau -

Hi,

I've had a go at re-writing this page. Below is the pasted content. What do you think? I also have some images and references, and could write more about things that weren't originally covered by the article.

rs

Grammatical Evolution
Grammatical evolution is a relatively new evolutionary computation technique pioneered by Conor Ryan, JJ Collins and Michael O'Neill in 1998[1] at the BDS Group in the University of Limerick, Ireland.

Description

Grammatical Evolution (GE) is primarily used as a program search technique, and it is related historically and functionally to Genetic Programming. In essence, GE is a mapping between a string of integers and a program through the use of a grammar (usually a context-free-grammar expressed in Backus-Naur form). A search algorithm can then be used to manipulate the integer string, and the string is mapped to a program in order to carry out fitness evaluation.

As the grammar can be specified separately from the integer-string representation, GE can be used to search any solution space that can be defined by a suitable grammar.

Separation of Genotype and Phenotype

One consequence of the use of a grammar-based mapping is to separate the representation manipulated by the search algorithm (the integer string) and the set of possible programs that can be created. This is sometimes compared to the separation of genotype and phenotype in evolution found within nature. In contrast, Genetic Programming manipulates the program structure directly.

Designing the Grammar

Through the design of a grammar, the space of possible programs that can be created can be restricted, and domain knowledge of the problem can be incorporated. It is also possible to use the GE process itself to evolve the grammar itself, by specifying a meta-grammar.

Some work has been carried out to extend the application of Grammatical Evolution to grammars that are not context-free, for example Attribute Grammars.

Search Methods

The search method employed to generate new integer strings is independent of the mapping. As the representation is similar to most Genetic Algorithm (GA) representations, GAs are commonly used to search the space of integer strings. Other search methods that have been used in conjunction with a GE mapping are particle swarm optimisation (known as “grammatical swarm”).

Applications

Brabazon and O'Neill have successfully applied GE to predicting corporate bankruptcy, forecasting stock indices, bond credit ratings, and other financial applications. —Preceding unsigned comment added by Randomsearch (talk • contribs) 15:08, 17 December 2007 (UTC)

GP's can be typed
While it is true that Koza's original GP's were real-valued, modern GP's often employ a type system (and thus depend upon a grammar for generation and recombination). It is incorrect and misleading that this article, and GE proponents in general, omit this fact. 65.183.135.231 (talk) 04:20, 29 October 2008 (UTC)

Modern GP systems do often offer a type system, which implies some sort of grammar. Typically this will be implemented using atomic and set-based typing. However, these type systems have limitations that GE does not suffer from. For example, they will implement constrained crossover to generate only valid children. GE does not need to perform this (potentially computationally expensive) operation, as the representation ensures (almost) all possible children are valid offspring. —Preceding unsigned comment added by 144.32.80.98 (talk) 16:32, 23 November 2009 (UTC)

External links modified
Hello fellow Wikipedians,

I have just modified one external link on Grammatical evolution. Please take a moment to review my edit. If you have any questions, or need the bot to ignore the links, or the page altogether, please visit this simple FaQ for additional information. I made the following changes:
 * Added archive https://web.archive.org/web/20101129085227/http://www.bangor.ac.uk/~eep201/jge/ to http://www.bangor.ac.uk/~eep201/jge

When you have finished reviewing my changes, you may follow the instructions on the template below to fix any issues with the URLs.

Cheers.— InternetArchiveBot  (Report bug) 07:49, 22 October 2017 (UTC)

GE is one approach to GP
GP is often defined as an evolutionary algorithm that evolves programs. So, GE is a GP algorithm, so it's not just related to GP, but it actually an approach to GP. There are other approaches, such as tree-based or stack-based.