Grammatical evolution

Grammatical evolution

Grammatical evolution is a relatively new evolutionary computation technique pioneered by Conor Ryan, JJ Collins and Michael O'Neill in 1998 [http://www.grammaticalevolution.org/eurogp98.ps] at the [http://bds.ul.ie BDS Group] in the [http://www.ul.ie University of Limerick, Ireland] . It is related to the idea of genetic programming in that the objective is to find an executable program or program fragment, normally a Lisp-style tree-structured expression, that will achieve a good fitness value for the given objective function to be minimized. However, in normal, Koza-style GP, any function in the function set can "call" any others; that is, essentially any function can be a child of any other function. This means that the functions have to be made so that all functions in the function set can accept any value which could possibly be passed to them. Often this is done by simply making everything take double-precision floating point numbers as parameters and return doubles as well. This produces a "combinatorial explosion" situation. While assuming essentially nothing about the form of the solution to a problem may be desirable, it is not uncommon to have a general view of how the structure should look. It is desirable to be able to incorporate this knowledge into the search process as necessary.

GE offers a solution to this issue by evolving solutions according to a user-specified grammar (usually a grammar in Backus-Naur form). Therefore the search space can be restricted, and domain knowledge of the problem can be incorporated. The inspiration for this approach comes from a desire to separate the "genotype" from the "phenotype": in GP, the objects the search algorithm operates on and what the fitness evaluation function interprets are one and the same. In contrast, GE's "genotypes" are ordered lists of integers which code for selecting rules from the provided context-free grammar. The phenotype, however, is the same as in Koza-style GP: a tree-like structure that is evaluated recursively. This is more in line with how genetics work in nature, where there is a separation between an organism's genotype and that expression in proteins and the like.

GE has a modular approach to it. In particular, the search portion of the GE paradigm needn't be carried out by any one particular algorithm or method. Observe that the objects GE performs search on are the same as that used in genetic algorithms. This means, in principle, that any existing genetic algorithm package, such as the popular [http://lancet.mit.edu/ga/ GAlib] , can be used to carry out the search, and a developer implementing a GE system need only worry about carrying out the mapping from list of integers to program tree. It is also in principle possible to perform the search using some other method, such as particle swarm optimization (see the remark below); the modular nature of GE creates many opportunities for hybrids as the problem of interest to be solved dictates.

Brabazon and O'Neill have successfully applied GE to predicting corporate bankruptcy, forecasting stock indices, bond credit ratings, and other financial applications.

It is possible to structure a GE grammar that for a given function/terminal set is equivalent to genetic programming.

Variants

Although GE is fairly new, there are already enhanced versions and variants that have been worked out. GE researchers have experimented with using particle swarm optimization to carry out the searching instead of genetic algorithms with results comparable to that of normal GE; this is referred to as a "grammatical swarm"; using only the basic PSO model it has been found that PSO is probably equally capable of carrying out the search process in GE as simple genetic algorithms are. (Although PSO is normally a floating-point search paradigm, it can be discretized, e.g., by simply rounding each vector to the nearest integer, for use with GE.)

It is also possible to use the GE process itself to evolve an optimal grammar, in a kind of "meta-grammatical evolution."

Yet another possible variation that has been experimented with in the literature is attempting to encode semantic information in the grammar in order to further bias the search process.

Notes

Resources

* An [http://www.grammaticalevolution.org/libGE Open Source C++ implementation] of GE was funded by the [http://www.sfi.ie Science Foundation of Ireland] .
* [http://www.grammaticalevolution.org/tutorial.pdf Grammatical Evolution Tutorial] .
* [http://bds.ul.ie The Biocomputing and Developmental Systems (BDS) Group] at the [http://www.ul.ie University of Limerick] .
* [http://www.grammatical-evolution.org Michael O'Neill's Grammatical Evolution Page] , including a bibliography.
* [http://drp.rubyforge.org/ DRP] , Directed Ruby Programming, is an experimental system designed to let users create hybrid GE/GP systems. It is implemented in pure Ruby.

ee also

* Genetic programming


Wikimedia Foundation. 2010.

Игры ⚽ Нужно решить контрольную?

Look at other dictionaries:

  • Grammatical case — Grammatical categories Animacy Aspect Case Clusivity Definiteness Degree of comparison Evidentiality …   Wikipedia

  • Grammatical mood — Grammatical categories Animacy Aspect Case Clusivity Definiteness Degree of comparison Evidentiality Focus …   Wikipedia

  • Grammatical tense — is a temporal linguistic quality expressing the time at, during, or over which a state or action denoted by a verb occurs.Tense is one of at least five qualities, along with mood, voice, aspect, and person, which verb forms may express.Tenses… …   Wikipedia

  • Gender-neutrality in languages with grammatical gender — implies promoting language usage which is balanced in its treatment of the genders. For example, advocates of gender neutral language challenge the traditional use of masculine nouns and pronouns ( man , businessman , he , and so on) when… …   Wikipedia

  • Genetic programming — In artificial intelligence, genetic programming (GP) is an evolutionary algorithm based methodology inspired by biological evolution to find computer programs that perform a user defined task. It is a specialization of genetic algorithms where… …   Wikipedia

  • Evolutionary computation — For the journal, see Evolutionary Computation (journal). In computer science, evolutionary computation is a subfield of artificial intelligence (more particularly computational intelligence) that involves combinatorial optimization problems.… …   Wikipedia

  • Particle swarm optimization — (PSO) is a swarm intelligence based algorithm to find a solution to an optimization problem in a search space, or model and predict social behavior in the presence of objectives.OverviewParticle swarm optimization is a stochastic, population… …   Wikipedia

  • Java Evolutionary Computation Toolkit — ECJ is a freeware evolutionary computation research system written in Java. It is a framework that supports a variety of evolutionary computation techniques, such as genetic algorithms, genetic programming, evolution strategies, coevolution,… …   Wikipedia

  • Java Evolutionary Computation Toolkit — ECJ Операционная система Кроссплатформенное программное обеспечение Последняя версия 20 Лицензия AFL, BSD Сайт ECJ project ECJ  это свободная исследовательская сис …   Википедия

  • Romance languages — Romance Geographic distribution: Originally Southern Europe and parts of Africa; now also Latin America, Canada, parts of Lebanon and much of Western Africa Linguistic classification: Indo European Italic …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”