|
Constituent Grammatical Evolution (CGE) is a new innovative evolutionary automatic programming algorithm which is based on Grammatical Evolution
Constituent Grammatical Evolution (CGE) extends the standard Grammatical Evolution algorithm by incorporating the
concepts of constituent genes and conditional behaviour-switching. CGE builds from elementary and more complex
building blocks a control program, which dictates the behaviour of an agent, and it is applicable to the class of problems
where the subject of search is the behaviour of an agent in a given environment. It takes advantage of the powerful
Grammatical Evolution feature of using a BNF grammar definition as a plug-in component to describe the output language
to be produced by the system.
Experimental results show that the new algorithm significantly outperforms Grammatical Evolution in all problems it has been benchmarked
when the original search spaces, as defined by the problems in question, are used:
- Santa Fe Trail;
- Los Altos Hills;
- Hampton Court Maze; and
- Chevening House Maze.
The tools that have been used for the implementation and benchmarking of CGE are as follows:
the jGE Library; the jGE NetLogo extension; and the CGE implementation models in NetLogo.
|
|
The CGE implementation models in NetLogo is free software released under the GNU General Public License v3
"It is not the strongest of the species that survive, nor the most intelligent,
but the one most responsive to change."
Charles Darwin, On the Origin of Species
Grammatical Evolution
Grammatical Evolution is an evolutionary algorithm that can evolve complete programs in an arbitrary language using a
variable-length binary string. The binary string (genome) determines which production rules in a Backus Naur Form (BNF)
grammar definition are used in a genotype-to-phenotype mapping process to generate a program.
|
| |
|
|
jGE Library
The main goal of the Java GE (jGE) project at Bangor is the implementation of an Evolutionary Algorithms (EA)
framework which will facilitate further research into Evolutionary Algorithms (and especially Grammatical Evolution).
Grammatical Evolution was chosen as the main Evolutionary Algorithm of the jGE Project because it facilitates,
due the use of a BNF Grammar, the evolution of arbitrary structures and programming languages.
Other objectives of the jGE Library (and some further reasons as to why Java was chosen as the implementation language)
are as follows:
- An open and extendable framework for the experimentation with EAs;
- The creation of an Agent-Oriented Evolutionary System (an agent-based framework);
- Bootstrap project for further research on the application of the principles of the Evolutionary Synthesis theory in machines;
- Integration and interoperability with other projects such as evolutionary algorithms with knowledge sharing;
- Integration with other open source and free Java projects like Robocode (e.g. evolution of simulated robots using GE).
|
|
jGE NetLogo extension
jGE NetLogo is an extension of jGE for NetLogo. One of the goals for the development of this extension (it is a subproject of the jGE project) was to allow both NetLogo users to get familiar with and use Grammatical Evolution
within their models, and people interested in Evolutionary Computation to use Evolutionary Algorithms (like Grammatical Evolution) directly within a modelling
environment like NetLogo for the evolution of the morphology and behaviour of agents.
In order to install the extension, download the archive file from the download page of the jGE Library web site and just unzip it to the extensions folder of the NetLogo installation. Then you can use the Grammatical Evolution algorithm in your NetLogo models.
The archive file includes also:
- The Documentation and Manual.
- The source code of the extension.
- A Demonstration model of how to use the jGE NetLogo extension.
- The jGE Library.
- Some demo BNF grammars.
|
|