Gregory S. Hornby hornby@cs.brandeis.edu Dynamic & Evolutionary Machine Organization Lab |
Recent research has demonstrated the ability for the automatic design of basic shapes and the morphology and control of real physical robots using techniques inspired by biological evolution. The main criticism of the evolutionary design approach, however, is that it is doubtful whether it will reach the high complexities necessary for practical engineering. Here we claim that for automatic design systems to scale in complexity the designs they produce must be made of re-used modules. Our approach is based on the use of a generative representation as the method to encode individuals in the population. Unlike a direct representation of a design, a generative representation is an algorithm for creating a design. That is, the data being optimized by the search algorithm is itself a kind of program containing rules and program-like instructions for generating a design, with the ability to re-use parts of the program in a modular way allowing it to create more complex parts from simpler parts and re-use a component multiple times in a design. We describe a system for creating generative specifications capable of hierarchical regularity by using Lindenmayer systems (L-systems) as the generative representation for an evolutionary algorithms. Using this system we demonstrate a system that evolves hierarchically modular tables and locomoting robots (called genobots). |
|
The evolutionary system used to evolve designs consists of the design constructor and simulator, the parsar for the generative representation and the evolutionary algorithm. Each design is constructed from a sequence of construction commands, similar to an assembly procedure, which specify how to construct the design. This string of construction commands is produced by parsing the generative encoding, for which we use Lindenmayer systems (L-systems). The evolutionary algorithm evolves a population of L-systems, using the fitness returned by a user defined fitness function.
A graphical example of an evolved L-system is shown below, along with the sequence of command strings it produces:
An example L-system. |
The sequence of assembly procedures it generates. |
|
|
|
|
|
|
Static Structures |
2D Genobots |
3D Genobots |
The software used for this research is called GENRE,
which stands for GENerative REpresentations.
The source code for GENRE is available under the
GNU GPL:
genre.1.1b.tar.gz (248k).
Note that this source code is for Linux and I have compiled and
run it on RedHat 8.0.
Homepage. | Research Projects. | All publications. |
hornby@cs.brandeis.edu - Last modified: Feb 22, 2005 |
Copyright © Gregory Hornby |