16.01.2013 Views

An Introduction to Genetic Algorithms - Boente

An Introduction to Genetic Algorithms - Boente

An Introduction to Genetic Algorithms - Boente

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Evolving Cellular Au<strong>to</strong>mata<br />

Chapter 2: <strong>Genetic</strong> <strong>Algorithms</strong> in Problem Solving<br />

A quite different example of au<strong>to</strong>matic programming by genetic algorithms is found in work done by James<br />

Crutchfield, Rajarshi Das, Peter Hraber, and myself on evolving cellular au<strong>to</strong>mata <strong>to</strong> perform computations<br />

(Mitchell, Hraber, and Crutchfield 1993; Mitchell, Crutchfield, and Hraber 1994a; Crutchfield and Mitchell<br />

1994; Das, Mitchell, and Crutchfield 1994). This project has elements of both problem solving and scientific<br />

modeling. One motivation is <strong>to</strong> understand how natural evolution creates systems in which "emergent<br />

computation" takes place—that is, in which the actions of simple components with limited information and<br />

communication give rise <strong>to</strong> coordinated global information processing. Insect colonies, economic systems, the<br />

immune system, and the brain have all been cited as examples of systems in which such emergent<br />

computation occurs (Forrest 1990; Lang<strong>to</strong>n 1992). However, it is not well unders<strong>to</strong>od how these natural<br />

systems perform computations. <strong>An</strong>other motivation is <strong>to</strong> find ways <strong>to</strong> engineer sophisticated emergent<br />

computation in decentralized multi−processor systems, using ideas from how natural decentralized systems<br />

compute. Such systems have many of the desirable properties for computer systems mentioned in chapter 1:<br />

they are sophisticated, robust, fast, and adaptable information processors. Using ideas from such systems <strong>to</strong><br />

design new types of parallel computers might yield great progress in computer science.<br />

One of the simplest systems in which emergent computation can be studied is a one−dimensional binary−state<br />

cellular au<strong>to</strong>ma<strong>to</strong>n (CA)—a one−dimensional lattice of N two−state machines ("cells"), each of which<br />

changes its state as a function only of the current states in a local neighborhood. (The well−known "game of<br />

Life" (Berlekamp, Conway, and Guy 1982) is an example of a two−dimensional CA.) A one−dimensional CA<br />

is illustrated in figure 2.5. The lattice starts out with an initial configuration of cell states (zeros and ones) and<br />

this configuration changes in discrete time steps in which all cells are updated simultaneously according <strong>to</strong> the<br />

CA "rule" Æ. (Here I use the term "state" <strong>to</strong> refer <strong>to</strong> refer <strong>to</strong> a local state si—the value of the single cell at site<br />

i. The term "configuration" will refer <strong>to</strong> the pattern of local states over the entire lattice.)<br />

Figure 2.5: Illustration of a one−dimensional, binary−state, nearest−neighbor (r = 1) cellular au<strong>to</strong>ma<strong>to</strong>n with<br />

N = 11. Both the lattice and the rule table for updating the lattice are illustrated. The lattice configuration is<br />

shown over one time step. The cellular au<strong>to</strong>ma<strong>to</strong>n has periodic boundary conditions: the lattice is viewed as a<br />

circle, with the leftmost cell the right neighbor of the rightmost cell, and vice versa.<br />

A CA rule Æ can be expressed as a lookup table ("rule table") that lists,<br />

for each local neighborhood, the update state for the neighborhood's central cell. For a binary−state CA, the<br />

update states are referred <strong>to</strong> as the "output bits" of the rule table. In a one−dimensional CA, a neighborhood<br />

consists of a cell and its r ("radius") neighbors on either side. The CA illustrated in figure 2.5 has r = 1. It<br />

34

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!