Edit count of the user (user_editcount ) | 5 |
Name of the user account (user_name ) | 'ECGull' |
Age of the user account (user_age ) | 76554 |
Groups (including implicit) the user is in (user_groups ) | [
0 => '*',
1 => 'user'
] |
Rights that the user has (user_rights ) | [
0 => 'createaccount',
1 => 'read',
2 => 'edit',
3 => 'createtalk',
4 => 'writeapi',
5 => 'viewmywatchlist',
6 => 'editmywatchlist',
7 => 'viewmyprivateinfo',
8 => 'editmyprivateinfo',
9 => 'editmyoptions',
10 => 'abusefilter-log-detail',
11 => 'urlshortener-create-url',
12 => 'centralauth-merge',
13 => 'abusefilter-view',
14 => 'abusefilter-log',
15 => 'vipsscaler-test',
16 => 'collectionsaveasuserpage',
17 => 'reupload-own',
18 => 'move-rootuserpages',
19 => 'createpage',
20 => 'minoredit',
21 => 'editmyusercss',
22 => 'editmyuserjson',
23 => 'editmyuserjs',
24 => 'purge',
25 => 'sendemail',
26 => 'applychangetags',
27 => 'spamblacklistlog',
28 => 'mwoauthmanagemygrants'
] |
Whether the user is editing from mobile app (user_app ) | false |
Whether or not a user is editing through the mobile interface (user_mobile ) | false |
Page ID (page_id ) | 5609640 |
Page namespace (page_namespace ) | 0 |
Page title without namespace (page_title ) | 'Grammatical evolution' |
Full page title (page_prefixedtitle ) | 'Grammatical evolution' |
Edit protection level of the page (page_restrictions_edit ) | [] |
Last ten users to contribute to the page (page_recent_contributors ) | [
0 => 'ECGull',
1 => 'Keith D',
2 => 'BrownHairedGirl',
3 => 'Moltean',
4 => 'Citation bot',
5 => 'WikiCleanerBot',
6 => 'Nbro',
7 => 'SteveWitham',
8 => '71.184.117.18',
9 => 'OAbot'
] |
Page age in seconds (page_age ) | 509452287 |
Action (action ) | 'edit' |
Edit summary/reason (summary ) | 'Created new section with list of Open Source implementations' |
Old content model (old_content_model ) | 'wikitext' |
New content model (new_content_model ) | 'wikitext' |
Old page wikitext, before the edit (old_wikitext ) | '{{Evolutionary algorithms}}
'''Grammatical evolution (GE)''' is an [[evolutionary computation]] and, more specifically, a [[genetic programming]] (GP) technique (or approach) pioneered by Conor Ryan, JJ Collins and Michael O'Neill in 1998<ref>{{Cite web|url=http://www.cs.bham.ac.uk/~wbl/biblio/gp-html/ryan_1998_geepal.html|title=Grammatical Evolution: Evolving Programs for an Arbitrary Language}}</ref> at the [http://bds.ul.ie BDS Group] in the [[University of Limerick]].
As in any other GP approach, the objective is to find an executable program, program fragment, or function, which will achieve a good fitness value for a given [[objective function]]. In most published work on GP, a [[LISP]]-style tree-structured expression is directly manipulated, whereas GE applies [[genetic operator]]s to an integer string, subsequently mapped to a program (or similar) through the use of a grammar, which is typically expressed in [[Backus–Naur form]]. One of the benefits of GE is that this mapping simplifies the application of search to different programming languages and other structures.
== Problem addressed ==
In type-free, conventional [[John Koza|Koza]]-style GP, the function set must meet the requirement of closure: all functions must be capable of accepting as their arguments the output of all other functions in the function set. Usually, this is implemented by dealing with a single data-type such as double-precision floating point. While modern Genetic Programming frameworks support typing, such type-systems have limitations that Grammatical Evolution does not suffer from.
== GE's solution ==
GE offers a solution to the single-type limitation 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 model is more in line with how genetics work in nature, where there is a separation between an organism's genotype and the final expression of phenotype in proteins, etc.
Separating genotype and phenotype allows a modular approach. 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 those 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 rating]]s, and other financial applications.{{citation needed|date=January 2015}} GE has also been used with a classic [[predator-prey model]] to explore the impact of parameters such as predator efficiency, niche number, and random mutations on [[ecological stability]].<ref>{{cite journal|last1=Alfonseca|first1=Manuel|last2=Soler Gil|first2=Francisco José|title=Evolving a predator-prey ecosystem of mathematical expressions with grammatical evolution|journal=Complexity|date=2 January 2015|volume=20|issue=3|pages=66–83|doi=10.1002/cplx.21507|bibcode=2015Cmplx..20c..66A|hdl=10486/663611|hdl-access=free}}</ref>
It is possible to structure a GE grammar that for a given function/terminal set is equivalent to genetic programming.
== Criticism ==
Despite its successes, GE has been the subject of some criticism. One issue is that as a result of its mapping operation, GE's genetic operators do not achieve high locality<ref name="rothlauf:2006">[https://doi.org/10.1007%2F11729976_29 DOI.org]</ref><ref>{{Cite web|url=http://www.cs.kent.ac.uk/pubs/2010/3004/index.html|title = Publication: Positional Effect of Crossover and Mutation in Grammatical Evolution - School of Computing - University of Kent}}</ref> which is a highly regarded property of genetic operators in evolutionary algorithms.<ref name="rothlauf:2006" />
== Variants ==
Although GE was originally described in terms of using an Evolutionary Algorithm, specifically, a Genetic Algorithm, other variants exist. For example, 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.)
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. Other work showed that, with biased grammars that leverage domain knowledge, even random search can be used to drive GE.<ref>{{Citation |last=O’Sullivan |first=John |title=An Investigation into the Use of Different Search Strategies with Grammatical Evolution |date=2002 |url=http://link.springer.com/10.1007/3-540-45984-7_26 |work=Genetic Programming |volume=2278 |pages=268–277 |editor-last=Foster |editor-first=James A. |place=Berlin, Heidelberg |publisher=Springer Berlin Heidelberg |doi=10.1007/3-540-45984-7_26 |isbn=978-3-540-43378-1 |access-date=2022-08-08 |last2=Ryan |first2=Conor |editor2-last=Lutton |editor2-first=Evelyne |editor3-last=Miller |editor3-first=Julian |editor4-last=Ryan |editor4-first=Conor}}</ref>
== Related Work ==
GE was originally a combination of the linear representation as used by the Genetic Algorithm for Developing Software (GADS)<ref>{{Cite web |title=Download Limit Exceeded |url=https://citeseerx.ist.psu.edu/messages/downloadsexceeded.html |access-date=2022-08-08 |website=citeseerx.ist.psu.edu}}</ref> and Backus Naur Form grammars, which were originally used in tree-based GP by Wong and Leung<ref>{{Cite journal |last=Wong |first=Man Leung |last2=Leung |first2=Kwong Sak |date=November 1995 |title=Applying logic grammars to induce sub-functions in genetic programming |url=https://ieeexplore.ieee.org/document/487477 |journal=Proceedings of 1995 IEEE International Conference on Evolutionary Computation |volume=2 |pages=737–740 vol.2 |doi=10.1109/ICEC.1995.487477}}</ref> in 1995 and Whigham in 1996.<ref>{{Cite web |last=Whigham |first=P. |date=1996 |title=Search Bias , Language Bias and Genetic ProgrammingP |url=https://www.semanticscholar.org/paper/Search-Bias-%2C-Language-Bias-and-Genetic-Whigham/cd03bef64249da53a9c7f328205f0f36977a536f |access-date=2022-08-08 |website=www.semanticscholar.org |language=en}}</ref> Other related work noted in the original GE paper was that of Frederic Gruau,<ref>{{Citation |last=Gruau |first=Frédéric |title=Neural Network Synthesis Using Cellular Encoding And The Genetic Algorithm |date=1994 |url=https://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.29.5939 |access-date=2022-08-08}}</ref> who used a conceptually similar "embryonic" approach, as well as that of Keller and Banzhaf,<ref>{{Cite web |last=Kellere |first=Robert E. |date=1996 |title=Genetic Programming Using Mutation, Reproduction and Genotype-phenotype Mapping from Linear Binary Genomes into Linear Lalr(1) Phenotypes Paper Category: Genetic Programming (gp) |url=https://www.semanticscholar.org/paper/Genetic-Programming-Using-Mutation%2C-Reproduction-Kellere/d2d2cbda1472501f379f79a3a48b63b5d71277d9 |access-date=2022-08-08 |website=www.semanticscholar.org |language=en}}</ref> which similarly used linear genomes.
==See also==
* [[Genetic programming]]
* [[Java Grammatical Evolution]]
* [[Cartesian genetic programming]]
* [[Gene expression programming]]
* [[Linear genetic programming]]
* [[Multi expression programming]]
==Notes==
<references/>
=== Resources ===
* [https://web.archive.org/web/20110721124315/http://www.grammaticalevolution.org/tutorial.pdf Grammatical Evolution Tutorial].
* [http://ncra.ucd.ie/geva Grammatical Evolution in Java].
* [https://web.archive.org/web/20101129085227/http://www.bangor.ac.uk/~eep201/jge/ jGE - Java Grammatical Evolution].
* [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.
* [https://web.archive.org/web/20161107073933/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.
* [http://geret.org/ GERET], Grammatical Evolution Ruby Exploratory Toolkit.
* [https://cran.r-project.org/web/packages/gramEvol/index.html gramEvol], Grammatical Evolution for [[R (programming language)|R]].
{{DEFAULTSORT:Grammatical Evolution}}
[[Category:Evolutionary algorithms]]' |
New page wikitext, after the edit (new_wikitext ) | '{{Evolutionary algorithms}}
'''Grammatical evolution (GE)''' is an [[evolutionary computation]] and, more specifically, a [[genetic programming]] (GP) technique (or approach) pioneered by Conor Ryan, JJ Collins and Michael O'Neill in 1998<ref>{{Cite web|url=http://www.cs.bham.ac.uk/~wbl/biblio/gp-html/ryan_1998_geepal.html|title=Grammatical Evolution: Evolving Programs for an Arbitrary Language}}</ref> at the [http://bds.ul.ie BDS Group] in the [[University of Limerick]].
As in any other GP approach, the objective is to find an executable program, program fragment, or function, which will achieve a good fitness value for a given [[objective function]]. In most published work on GP, a [[LISP]]-style tree-structured expression is directly manipulated, whereas GE applies [[genetic operator]]s to an integer string, subsequently mapped to a program (or similar) through the use of a grammar, which is typically expressed in [[Backus–Naur form]]. One of the benefits of GE is that this mapping simplifies the application of search to different programming languages and other structures.
== Problem addressed ==
In type-free, conventional [[John Koza|Koza]]-style GP, the function set must meet the requirement of closure: all functions must be capable of accepting as their arguments the output of all other functions in the function set. Usually, this is implemented by dealing with a single data-type such as double-precision floating point. While modern Genetic Programming frameworks support typing, such type-systems have limitations that Grammatical Evolution does not suffer from.
== GE's solution ==
GE offers a solution to the single-type limitation 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 model is more in line with how genetics work in nature, where there is a separation between an organism's genotype and the final expression of phenotype in proteins, etc.
Separating genotype and phenotype allows a modular approach. 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 those 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 rating]]s, and other financial applications.{{citation needed|date=January 2015}} GE has also been used with a classic [[predator-prey model]] to explore the impact of parameters such as predator efficiency, niche number, and random mutations on [[ecological stability]].<ref>{{cite journal|last1=Alfonseca|first1=Manuel|last2=Soler Gil|first2=Francisco José|title=Evolving a predator-prey ecosystem of mathematical expressions with grammatical evolution|journal=Complexity|date=2 January 2015|volume=20|issue=3|pages=66–83|doi=10.1002/cplx.21507|bibcode=2015Cmplx..20c..66A|hdl=10486/663611|hdl-access=free}}</ref>
It is possible to structure a GE grammar that for a given function/terminal set is equivalent to genetic programming.
== Criticism ==
Despite its successes, GE has been the subject of some criticism. One issue is that as a result of its mapping operation, GE's genetic operators do not achieve high locality<ref name="rothlauf:2006">[https://doi.org/10.1007%2F11729976_29 DOI.org]</ref><ref>{{Cite web|url=http://www.cs.kent.ac.uk/pubs/2010/3004/index.html|title = Publication: Positional Effect of Crossover and Mutation in Grammatical Evolution - School of Computing - University of Kent}}</ref> which is a highly regarded property of genetic operators in evolutionary algorithms.<ref name="rothlauf:2006" />
== Variants ==
Although GE was originally described in terms of using an Evolutionary Algorithm, specifically, a Genetic Algorithm, other variants exist. For example, 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.)
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. Other work showed that, with biased grammars that leverage domain knowledge, even random search can be used to drive GE.<ref>{{Citation |last=O’Sullivan |first=John |title=An Investigation into the Use of Different Search Strategies with Grammatical Evolution |date=2002 |url=http://link.springer.com/10.1007/3-540-45984-7_26 |work=Genetic Programming |volume=2278 |pages=268–277 |editor-last=Foster |editor-first=James A. |place=Berlin, Heidelberg |publisher=Springer Berlin Heidelberg |doi=10.1007/3-540-45984-7_26 |isbn=978-3-540-43378-1 |access-date=2022-08-08 |last2=Ryan |first2=Conor |editor2-last=Lutton |editor2-first=Evelyne |editor3-last=Miller |editor3-first=Julian |editor4-last=Ryan |editor4-first=Conor}}</ref>
== Related Work ==
GE was originally a combination of the linear representation as used by the Genetic Algorithm for Developing Software (GADS)<ref>{{Cite web |title=Download Limit Exceeded |url=https://citeseerx.ist.psu.edu/messages/downloadsexceeded.html |access-date=2022-08-08 |website=citeseerx.ist.psu.edu}}</ref> and Backus Naur Form grammars, which were originally used in tree-based GP by Wong and Leung<ref>{{Cite journal |last=Wong |first=Man Leung |last2=Leung |first2=Kwong Sak |date=November 1995 |title=Applying logic grammars to induce sub-functions in genetic programming |url=https://ieeexplore.ieee.org/document/487477 |journal=Proceedings of 1995 IEEE International Conference on Evolutionary Computation |volume=2 |pages=737–740 vol.2 |doi=10.1109/ICEC.1995.487477}}</ref> in 1995 and Whigham in 1996.<ref>{{Cite web |last=Whigham |first=P. |date=1996 |title=Search Bias , Language Bias and Genetic ProgrammingP |url=https://www.semanticscholar.org/paper/Search-Bias-%2C-Language-Bias-and-Genetic-Whigham/cd03bef64249da53a9c7f328205f0f36977a536f |access-date=2022-08-08 |website=www.semanticscholar.org |language=en}}</ref> Other related work noted in the original GE paper was that of Frederic Gruau,<ref>{{Citation |last=Gruau |first=Frédéric |title=Neural Network Synthesis Using Cellular Encoding And The Genetic Algorithm |date=1994 |url=https://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.29.5939 |access-date=2022-08-08}}</ref> who used a conceptually similar "embryonic" approach, as well as that of Keller and Banzhaf,<ref>{{Cite web |last=Kellere |first=Robert E. |date=1996 |title=Genetic Programming Using Mutation, Reproduction and Genotype-phenotype Mapping from Linear Binary Genomes into Linear Lalr(1) Phenotypes Paper Category: Genetic Programming (gp) |url=https://www.semanticscholar.org/paper/Genetic-Programming-Using-Mutation%2C-Reproduction-Kellere/d2d2cbda1472501f379f79a3a48b63b5d71277d9 |access-date=2022-08-08 |website=www.semanticscholar.org |language=en}}</ref> which similarly used linear genomes.
== Implementations ==
There are several implementations of GE. These include the following.
{| class="wikitable"
|+
|'''Project name'''
|'''Language'''
|'''Year'''
|'''Location'''
|-
|GELab
|Matlab
|2018
|<nowiki>https://github.com/adilraja/GELAB</nowiki>
|-
|PonyGE2
|Python
|2017
|<nowiki>https://arxiv.org/abs/1703.08535</nowiki>
|-
|gramEvol
|R
|2016
|<nowiki>https://cran.r-project.org/web/packages/gramEvol/vignettes/ge-intro.pdf</nowiki>
|-
|PyNeurGen
|Python
|2012
|<nowiki>http://pyneurgen.sourceforge.net/</nowiki>
|-
|Grammatical_ evolution
|Ruby
|2011
|<nowiki>http://www.cleveralgorithms.com/nature-inspired/evolution/grammatical_evolution.rb</nowiki>
|-
|AGE
|C, Lua
|2011
|<nowiki>http://nohejl.name/age/pdf/AGE-Documentation-1.0.2.pdf</nowiki>
|-
|PonyGE
|Python
|2010
|<nowiki>https://code.google.com/archive/p/ponyge/downloads</nowiki>
|-
|GERET
|Ruby
|2010
|<nowiki>https://github.com/bver/GERET/</nowiki>
|-
|GEVA
|Java
|2008
|<nowiki>http://ncra.ucd.ie/Site/GEVA.html</nowiki>
|-
|ECJ
|Java
|2008
|<nowiki>https://cs.gmu.edu/~eclab/projects/ecj/</nowiki>
|-
|GENN
|C++
|2007
|<nowiki>https://ritchielab.org/research/past-research/52-grammatical-evolution-neural-networks</nowiki>
|-
|libGE
|C++, S-Lang, tinycc
|2004
|<nowiki>http://bds.ul.ie/libGE/</nowiki>
|}
==See also==
* [[Genetic programming]]
* [[Java Grammatical Evolution]]
* [[Cartesian genetic programming]]
* [[Gene expression programming]]
* [[Linear genetic programming]]
* [[Multi expression programming]]
==Notes==
<references/>
=== Resources ===
* [https://web.archive.org/web/20110721124315/http://www.grammaticalevolution.org/tutorial.pdf Grammatical Evolution Tutorial].
* [http://ncra.ucd.ie/geva Grammatical Evolution in Java].
* [https://web.archive.org/web/20101129085227/http://www.bangor.ac.uk/~eep201/jge/ jGE - Java Grammatical Evolution].
* [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.
* [https://web.archive.org/web/20161107073933/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.
* [http://geret.org/ GERET], Grammatical Evolution Ruby Exploratory Toolkit.
* [https://cran.r-project.org/web/packages/gramEvol/index.html gramEvol], Grammatical Evolution for [[R (programming language)|R]].
{{DEFAULTSORT:Grammatical Evolution}}
[[Category:Evolutionary algorithms]]' |
Unified diff of changes made by edit (edit_diff ) | '@@ -30,4 +30,74 @@
== Related Work ==
GE was originally a combination of the linear representation as used by the Genetic Algorithm for Developing Software (GADS)<ref>{{Cite web |title=Download Limit Exceeded |url=https://citeseerx.ist.psu.edu/messages/downloadsexceeded.html |access-date=2022-08-08 |website=citeseerx.ist.psu.edu}}</ref> and Backus Naur Form grammars, which were originally used in tree-based GP by Wong and Leung<ref>{{Cite journal |last=Wong |first=Man Leung |last2=Leung |first2=Kwong Sak |date=November 1995 |title=Applying logic grammars to induce sub-functions in genetic programming |url=https://ieeexplore.ieee.org/document/487477 |journal=Proceedings of 1995 IEEE International Conference on Evolutionary Computation |volume=2 |pages=737–740 vol.2 |doi=10.1109/ICEC.1995.487477}}</ref> in 1995 and Whigham in 1996.<ref>{{Cite web |last=Whigham |first=P. |date=1996 |title=Search Bias , Language Bias and Genetic ProgrammingP |url=https://www.semanticscholar.org/paper/Search-Bias-%2C-Language-Bias-and-Genetic-Whigham/cd03bef64249da53a9c7f328205f0f36977a536f |access-date=2022-08-08 |website=www.semanticscholar.org |language=en}}</ref> Other related work noted in the original GE paper was that of Frederic Gruau,<ref>{{Citation |last=Gruau |first=Frédéric |title=Neural Network Synthesis Using Cellular Encoding And The Genetic Algorithm |date=1994 |url=https://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.29.5939 |access-date=2022-08-08}}</ref> who used a conceptually similar "embryonic" approach, as well as that of Keller and Banzhaf,<ref>{{Cite web |last=Kellere |first=Robert E. |date=1996 |title=Genetic Programming Using Mutation, Reproduction and Genotype-phenotype Mapping from Linear Binary Genomes into Linear Lalr(1) Phenotypes Paper Category: Genetic Programming (gp) |url=https://www.semanticscholar.org/paper/Genetic-Programming-Using-Mutation%2C-Reproduction-Kellere/d2d2cbda1472501f379f79a3a48b63b5d71277d9 |access-date=2022-08-08 |website=www.semanticscholar.org |language=en}}</ref> which similarly used linear genomes.
+
+== Implementations ==
+There are several implementations of GE. These include the following.
+{| class="wikitable"
+|+
+|'''Project name'''
+|'''Language'''
+|'''Year'''
+|'''Location'''
+|-
+|GELab
+|Matlab
+|2018
+|<nowiki>https://github.com/adilraja/GELAB</nowiki>
+|-
+|PonyGE2
+|Python
+|2017
+|<nowiki>https://arxiv.org/abs/1703.08535</nowiki>
+|-
+|gramEvol
+|R
+|2016
+|<nowiki>https://cran.r-project.org/web/packages/gramEvol/vignettes/ge-intro.pdf</nowiki>
+|-
+|PyNeurGen
+|Python
+|2012
+|<nowiki>http://pyneurgen.sourceforge.net/</nowiki>
+|-
+|Grammatical_ evolution
+|Ruby
+|2011
+|<nowiki>http://www.cleveralgorithms.com/nature-inspired/evolution/grammatical_evolution.rb</nowiki>
+|-
+|AGE
+|C, Lua
+|2011
+|<nowiki>http://nohejl.name/age/pdf/AGE-Documentation-1.0.2.pdf</nowiki>
+|-
+|PonyGE
+|Python
+|2010
+|<nowiki>https://code.google.com/archive/p/ponyge/downloads</nowiki>
+|-
+|GERET
+|Ruby
+|2010
+|<nowiki>https://github.com/bver/GERET/</nowiki>
+|-
+|GEVA
+|Java
+|2008
+|<nowiki>http://ncra.ucd.ie/Site/GEVA.html</nowiki>
+|-
+|ECJ
+|Java
+|2008
+|<nowiki>https://cs.gmu.edu/~eclab/projects/ecj/</nowiki>
+|-
+|GENN
+|C++
+|2007
+|<nowiki>https://ritchielab.org/research/past-research/52-grammatical-evolution-neural-networks</nowiki>
+|-
+|libGE
+|C++, S-Lang, tinycc
+|2004
+|<nowiki>http://bds.ul.ie/libGE/</nowiki>
+|}
==See also==
' |
New page size (new_size ) | 11096 |
Old page size (old_size ) | 9812 |
Size change in edit (edit_delta ) | 1284 |
Lines added in edit (added_lines ) | [
0 => '',
1 => '== Implementations ==',
2 => 'There are several implementations of GE. These include the following.',
3 => '{| class="wikitable"',
4 => '|+',
5 => '|'''Project name'''',
6 => '|'''Language'''',
7 => '|'''Year'''',
8 => '|'''Location'''',
9 => '|-',
10 => '|GELab',
11 => '|Matlab',
12 => '|2018',
13 => '|<nowiki>https://github.com/adilraja/GELAB</nowiki>',
14 => '|-',
15 => '|PonyGE2',
16 => '|Python',
17 => '|2017',
18 => '|<nowiki>https://arxiv.org/abs/1703.08535</nowiki>',
19 => '|-',
20 => '|gramEvol',
21 => '|R',
22 => '|2016',
23 => '|<nowiki>https://cran.r-project.org/web/packages/gramEvol/vignettes/ge-intro.pdf</nowiki>',
24 => '|-',
25 => '|PyNeurGen',
26 => '|Python',
27 => '|2012',
28 => '|<nowiki>http://pyneurgen.sourceforge.net/</nowiki>',
29 => '|-',
30 => '|Grammatical_ evolution',
31 => '|Ruby',
32 => '|2011',
33 => '|<nowiki>http://www.cleveralgorithms.com/nature-inspired/evolution/grammatical_evolution.rb</nowiki>',
34 => '|-',
35 => '|AGE',
36 => '|C, Lua',
37 => '|2011',
38 => '|<nowiki>http://nohejl.name/age/pdf/AGE-Documentation-1.0.2.pdf</nowiki>',
39 => '|-',
40 => '|PonyGE',
41 => '|Python',
42 => '|2010',
43 => '|<nowiki>https://code.google.com/archive/p/ponyge/downloads</nowiki>',
44 => '|-',
45 => '|GERET',
46 => '|Ruby',
47 => '|2010',
48 => '|<nowiki>https://github.com/bver/GERET/</nowiki>',
49 => '|-',
50 => '|GEVA',
51 => '|Java',
52 => '|2008',
53 => '|<nowiki>http://ncra.ucd.ie/Site/GEVA.html</nowiki>',
54 => '|-',
55 => '|ECJ',
56 => '|Java',
57 => '|2008',
58 => '|<nowiki>https://cs.gmu.edu/~eclab/projects/ecj/</nowiki>',
59 => '|-',
60 => '|GENN',
61 => '|C++',
62 => '|2007',
63 => '|<nowiki>https://ritchielab.org/research/past-research/52-grammatical-evolution-neural-networks</nowiki>',
64 => '|-',
65 => '|libGE',
66 => '|C++, S-Lang, tinycc',
67 => '|2004',
68 => '|<nowiki>http://bds.ul.ie/libGE/</nowiki>',
69 => '|}'
] |
Lines removed in edit (removed_lines ) | [] |
All external links added in the edit (added_links ) | [] |
All external links removed in the edit (removed_links ) | [] |
All external links in the new text (all_links ) | [
0 => 'http://www.cs.bham.ac.uk/~wbl/biblio/gp-html/ryan_1998_geepal.html',
1 => 'https://ui.adsabs.harvard.edu/abs/2015Cmplx..20c..66A',
2 => '//doi.org/10.1002%2Fcplx.21507',
3 => '//hdl.handle.net/10486%2F663611',
4 => 'https://doi.org/10.1007%2F11729976_29',
5 => 'http://www.cs.kent.ac.uk/pubs/2010/3004/index.html',
6 => 'http://link.springer.com/10.1007/3-540-45984-7_26',
7 => '//doi.org/10.1007%2F3-540-45984-7_26',
8 => 'https://citeseerx.ist.psu.edu/messages/downloadsexceeded.html',
9 => 'https://ieeexplore.ieee.org/document/487477',
10 => '//doi.org/10.1109%2FICEC.1995.487477',
11 => 'https://www.semanticscholar.org/paper/Search-Bias-,-Language-Bias-and-Genetic-Whigham/cd03bef64249da53a9c7f328205f0f36977a536f',
12 => 'https://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.29.5939',
13 => 'https://www.semanticscholar.org/paper/Genetic-Programming-Using-Mutation,-Reproduction-Kellere/d2d2cbda1472501f379f79a3a48b63b5d71277d9',
14 => 'http://bds.ul.ie',
15 => 'http://lancet.mit.edu/ga/',
16 => 'https://web.archive.org/web/20110721124315/http://www.grammaticalevolution.org/tutorial.pdf',
17 => 'http://ncra.ucd.ie/geva',
18 => 'https://web.archive.org/web/20101129085227/http://www.bangor.ac.uk/~eep201/jge/',
19 => 'http://www.ul.ie',
20 => 'http://www.grammatical-evolution.org',
21 => 'https://web.archive.org/web/20161107073933/http://drp.rubyforge.org/',
22 => 'http://geret.org/',
23 => 'https://cran.r-project.org/web/packages/gramEvol/index.html'
] |
Links in the page, before the edit (old_links ) | [
0 => '//doi.org/10.1002%2Fcplx.21507',
1 => '//doi.org/10.1002%2Fcplx.21507',
2 => '//doi.org/10.1007%2F3-540-45984-7_26',
3 => '//doi.org/10.1007%2F3-540-45984-7_26',
4 => '//doi.org/10.1109%2FICEC.1995.487477',
5 => '//doi.org/10.1109%2FICEC.1995.487477',
6 => '//hdl.handle.net/10486%2F663611',
7 => '//hdl.handle.net/10486%2F663611',
8 => 'http://bds.ul.ie',
9 => 'http://geret.org/',
10 => 'http://lancet.mit.edu/ga/',
11 => 'http://link.springer.com/10.1007/3-540-45984-7_26',
12 => 'http://ncra.ucd.ie/geva',
13 => 'http://www.cs.bham.ac.uk/~wbl/biblio/gp-html/ryan_1998_geepal.html',
14 => 'http://www.cs.kent.ac.uk/pubs/2010/3004/index.html',
15 => 'http://www.grammatical-evolution.org',
16 => 'http://www.ul.ie',
17 => 'https://citeseerx.ist.psu.edu/messages/downloadsexceeded.html',
18 => 'https://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.29.5939',
19 => 'https://cran.r-project.org/web/packages/gramEvol/index.html',
20 => 'https://doi.org/10.1007%2F11729976_29',
21 => 'https://ieeexplore.ieee.org/document/487477',
22 => 'https://ui.adsabs.harvard.edu/abs/2015Cmplx..20c..66A',
23 => 'https://web.archive.org/web/20101129085227/http://www.bangor.ac.uk/~eep201/jge/',
24 => 'https://web.archive.org/web/20110721124315/http://www.grammaticalevolution.org/tutorial.pdf',
25 => 'https://web.archive.org/web/20161107073933/http://drp.rubyforge.org/',
26 => 'https://www.semanticscholar.org/paper/Genetic-Programming-Using-Mutation,-Reproduction-Kellere/d2d2cbda1472501f379f79a3a48b63b5d71277d9',
27 => 'https://www.semanticscholar.org/paper/Search-Bias-,-Language-Bias-and-Genetic-Whigham/cd03bef64249da53a9c7f328205f0f36977a536f'
] |
Whether or not the change was made through a Tor exit node (tor_exit_node ) | false |
Unix timestamp of change (timestamp ) | '1660069706' |