Professional Documents
Culture Documents
Hardware Evolution
Automatic design of electronic circuits in
recongurable hardware by articial evolution.
April 8, 1998
Springer-Verlag
Evolution through natural selection has been going on for a very long time.
Evolution through articial selection has been practiced by humans for a
large part of our history, in the breeding of plants and livestock. Articial
evolution, where we evolve an artifact through articial selection, has been
around since electronic computers became common: about 30 years.
Right from the beginning, people have suggested using articial evolution
to design electronics automatically.1 Only recently, though, have suitable re-
congurable silicon chips become available that make it easy for articial
evolution to work with a real, physical, electronic medium: before them, ex-
periments had to be done entirely in software simulations. Early research
concentrated on the potential applications opened-up by the raw speed ad-
vantage of dedicated digital hardware over software simulation on a general-
purpose computer. This book is an attempt to show that there is more to
it than that. In fact, a radically new viewpoint is possible, with fascinating
consequences.
This book was written as a doctoral thesis, submitted in September 1996.
As such, it was a rather daring exercise in ruthless brevity. Believing that
the contribution I had to make was essentially a simple one, I resisted being
drawn into peripheral discussions. In the places where I deliberately drop a
subject, this implies neither that it's not interesting, nor that it's not relevant:
just that it's not a crucial part of the tale I want to tell here.
1
Thanks to Moshe Sipper and Ed Rietman for the following early references:
Atmar, J. W. (1976). Speculation on the evolution of intelligence and its possible
realization in machine form. Doctor of Science thesis. Las Cruces: New Mexico
State University, April, 1976.
Wolfram, S. (1986). Approaches to Complexity Engineering. Physica 22D,
pp. 385{399.
vi Preface
Since writing the thesis, things have been going nicely. In the Centre for
Computational Neuroscience & Robotics at the University of Sussex, we now
have a small `evolutionary electronics' group, and others around the world
are taking interest and starting related research projects. The `Future Work'
chapter of this book is not idle talk: it's now current work, and is starting
to produce interesting and promising results. Rather than try to update my
1996 writing, I refer the interested reader to our World Wide Web pages,
which are permanently up to date:
http://www.cogs.susx.ac.uk/users/adrianth/
2014: Not any more. Try:
https://sites.google.com/site/thompsonevolvablehardware/
I owe it all to Phil Husbands and the School of Cognitive and Computing
Sciences. Special thanks also to the following people and organisations: Dave
Cli, Harry Barrow, Inman Harvey; Steve Trimberger, Dennis Segers, Raj
Patel, John Watson, Bart Thielges, Dennis Rose et al. at Xilinx, Inc. (San
Jose, California); Jerry Mitchell, Tony Simpson, Martin Nock, Paul Swan,
David Fogel, Giles Mayley, Tony `Monty' Hirst, EPSRC, Chris Winter and
British Telecom, Graeme Proudler and Hewlett Packard Ltd., Ian Macbeth
and Motorola Inc., Jon Stocker and Zetex plc.
I'm especially grateful for the kindness, support, and silicon of John Gray
and all at the Xilinx Development Corp. (Edinburgh, Scotland): without
them this book would have to have been about something else.
I think that's enough prefacing. Enjoy the book!
Adrian Thompson
University of Sussex, UK
Spring 1998
Summary
Preface : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : v
Summary : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : vii
Acronyms : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : xvii
1. Introduction : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 1
1.1 Topic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 Hardware Evolution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2.1 An Example of Recongurable Hardware . . . . . . . . . . . . 2
1.2.2 Evolving the Circuit Conguration . . . . . . . . . . . . . . . . . 4
1.2.3 Intrinsic/Extrinsic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.3 Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.4 The Thesis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2. Context : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 9
2.1 Inspiration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.1.1 Mead et al.: Analog neural VLSI . . . . . . . . . . . . . . . . . . . 9
2.1.2 Pulse-stream Neural Networks . . . . . . . . . . . . . . . . . . . . . 11
2.1.3 Other Neural Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.1.4 Recongurable Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.1.5 Self-Timed Digital Design . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.1.6 Analogies with Software: Ray's Tierra . . . . . . . . . . . . . . . 16
2.1.7 A Dynamical Systems Perspective . . . . . . . . . . . . . . . . . . 16
2.2 Evolutionary Algorithms for Electronic Design:
Other approaches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.2.1 ETL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.2.2 de Garis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.2.3 EPFL & CSEM: `Embryonics' . . . . . . . . . . . . . . . . . . . . . 23
2.2.4 A Sophisticated Extrinsic Approach: Hemmi et al. . . . . 24
2.2.5 Evolving Analogue Circuits . . . . . . . . . . . . . . . . . . . . . . . . 25
2.2.6 A Silicon Neuromorph { The First Intrinsic Hardware
Evolution? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.2.7 Loosely Related Evolutionary Hardware Projects . . . . . 27
x Table of Contents
All acronyms are dened where rst used, either in the main text or (when
the reader is likely to be familiar with it already) in a footnote.
AI Articial Intelligence
ALN Adaptive Logic Network
ASIC Application-Specic Integrated Circuit
ATR HIP Advanced Telecommunications Research institute,
Human Information Processing laboratories
CAD Computer Aided Design
CAM Cellular Automaton Machine
CCD Charge-Coupled Device
CMOS Complementary Metal Oxide Semiconductor
CSEM Centre Suisse d'Electronique et de Microtechnique SA
DFG Data Flow Graph
DSM Dynamic State Machine
EA Evolutionary Algorithm
EEPROM Electrically Erasable and Programmable Read Only Memory
EHW Evolvable HardWare
ETL Electrotechnical Laboratory
FPGA Field-Programmable Gate Array
FSM Finite State Machine
GA Genetic Algorithm
HDL Hardware Description Language
IC Integrated Circuit
IOB Input/Output Block (of an FPGA)
ISA Industry Standard Architecture
KL Kernighan & Lin (graph-partitioning heuristic)
LSL EPFL Logic Systems Laboratory,
Ecole Polytechnique Federale de Lausanne
MIMD Multiple Instruction, Multiple Data
NEWS North, East, West, South
PLD Programmable Logic Device
PLN Probabilistic Logic Neuron
RAM Random Access Memory
ROM Read Only Memory
xviii Acronyms
1.1 Topic
There exist recongurable VLSI1 silicon chips for which the behaviours and
interconnections of the constituent electronic primitives can be repeatedly
changed. Articial evolution can be used to derive a conguration causing the
device to exhibit a pre-specied desired behaviour, without the intervention
of a human designer. This book will argue that if, during evolution, each new
variant conguration is assigned its tness score according to the behaviour
it induces in the real recongurable hardware, then evolution can be allowed
to explore new kinds of circuits that are not within the scope of conventional
design methods.
More strongly, I shall argue that evolution should be allowed to explore
circuits having a richer structure and dynamical behaviour than usual, and
having more respect for the physical properties of the medium in which they
are implemented. By removing constraints on circuit structure and dynamics
normally applied to make simulation or the use of designers' abstract models
viable, evolution can be allowed to exploit the entire repertoire of behaviours
that the hardware can manifest. The full power of the available silicon is
thus released { even the detailed semiconductor physics of the components
{ to be brought to bear on the problem at hand. We shall see examples of
small evolved circuits displaying surprisingly sophisticated behaviours, which
would take conventional design more silicon to achieve.
The evolution of circuit designs that are inherently tolerant to hardware
faults, and the evolution of parsimonious (area-ecient) circuits, will both
be investigated. Under certain conditions, evolutionary population dynamics
can have a positive in
uence on these without any special measures being in-
troduced, and in the case of fault tolerance several other evolutionary mecha-
nisms will be demonstrated. Fault tolerance is an example of a non-functional
requirement that is dicult to integrate within conventional design method-
ologies, but using evolution it can exert an in
uence at all times during the
automatic design process.
This introduction will provide the necessary background to state the above
claims in precise terms. They are simple claims, but it is hard to believe that
1
VLSI = Very Large Scale Integration.
2 1. Introduction
they could be true and of practical use. Electronic circuits of the rich struc-
ture and dynamics advocated here have not existed before, and can appear
bizarre to those schooled in design techniques. For this reason, the theoretical
arguments will be reinforced with extensive experiments, to illustrate their
practical worth.
N EW F
N
S N S EW
W W
F
N N
S S
E E
W W
N
F S
E
E
F
S EWF
Fig. 1.1. A simplied view of the XC6216 FPGA. Only those features used later
in the experiments are shown. Top: A 10 10 corner of the 64 64 array of blocks;
Below: the internals of an individual cell, showing the function unit at its centre.
The symbol represents a multiplexer { which of its four inputs is connected
to the output (via an inversion) is controlled by the conguration memory. Similar
multiplexers are used to implement the user-congurable function F.
4 1. Introduction
At any time, the conguration of the chip is determined by the bits held
in an on-chip memory, which can be written to by software running on a host
computer. By controlling the multiplexers shown in the gure, these bits
regulate the function performed in each cell and how the cells are connected
together. By changing these bits from software, the setting of the electronic
switches distributed throughout the chip is altered to form a new circuit.
Even though the structure of that circuit has been determined by software,
it is physically instantiated on the chip and behaves in real-time according
to the laws of physics. Thus the chip is congured not programmed : the
conguration bits do not specify a program of instructions to be executed by
a xed processor, but actually cause a new circuit to be created on the chip
which then behaves according to semiconductor physics.2 Remember that
the XC6216 FPGA described here is just one example of a recongurable
hardware system { several quite dierent types will be described in the next
chapter.
1.2.2 Evolving the Circuit Conguration
To evolve a circuit to perform some pre-specied task, each individual in the
population of an evolutionary algorithm corresponds to a setting of the con-
guration bits, and hence to a physical circuit. In the examples I will show,
a simple genetic algorithm was used, with the conguration bits directly
encoded bit-for-bit onto the linear bit-string genotype of an individual. An
overview of the evolutionary process is given in Figure 1.2. A population of
typically 50 individuals was maintained, the genotypes of which were initially
generated completely at random. Then the evolutionary tness of each in-
dividual was evaluated in turn, by taking the matrix of conguration bits
derived from an individual's genotype and using it to congure a real FPGA.
The circuit now instantiated on the FPGA was then automatically given a
score according to how closely it approximated the desired behaviour, and
that score was the individual's tness. I will use the word `phenotype' to refer
to the instantiated circuit.3
Once the tness of each individual had been evaluated, an entire new
population (the `Next Generation' in the gure) was formed. First, the single
best scoring individual's genotype was copied once into the next generation,
without any alterations at all (this is called `elitism'). The remaining mem-
bers of the new population were formed by stochastically selecting (with
replacement) parents from the old population with a probability determined
by a linear function of their rank within the population, as given by the
2
It is possible to attack this distinction, but it seems more useful to retain it.
Reconguration and programming are two dierent viewpoints, which should be
adopted appropriately for the system in question.
3
The use of the word `phenotype' to refer to behaviour (Dawkins, 1990) can be
useful in other discussions of hardware evolution (Harvey & Thompson, 1997),
but here it means the circuit itself.
Fig. 1.2. Evolving an FPGA conguration using a simple genetic algorithm.
Fitness
A population of Population Scores Next Generation
A new
(initially random) 0 1 1 1 0 0 0 1 1 4.851 population is
bit-string
1 0 1 0 0 0 1 0 0 9.001 formed, made
genotypes is
0.000 of the offspring
maintained, 1 1 0 0 1 1 1 0 0
of the fitter
each individual 0 1 1 0 1 0 0 1 1 3.942 (on average)
coding for a
0.030 members of the
possible FPGA
old one.
configuration.
0 1 0 0 0 0 1 1 1
Fitness Evaluation: 0 1 0 0 0 1 0 0 0
1 0 1 0 0 0 1 1 1
Each individual is
taken in turn and 1
used to configure 1 0 1 0 0 0 1 1 1
a real FPGA, which
is then scored at Higher scoring individuals are more likely
how well it performs to parent offspring (selection). Offspring are
the desired task. formed by stochastically combining segments
from each parent (crossover), and by
randomly inverting a few bits (mutation).
5
6 1. Introduction
ordering of the tness scores (`linear rank selection'). The least t individ-
ual had zero probability of being selected, while the most t individual had
twice the probability of the median. When a `parent' had been selected in
this way, an ospring was formed by copying it into the new population
with the addition of random mutations: each bit of its genotype was inverted
with a certain small `mutation probability' (or rate) applied independently at
each bit position (or locus). Alternatively, with a certain `crossover probabil-
ity' (or rate), this ospring individual was formed by selecting two parents,
randomly selecting a `crossover point' between two loci, and taking the bits
before this point from one parent, and the bits after the crossover point from
the other. Only after this `sexual recombination' was mutation then applied
and the ospring inserted into the new population. The cycle of evaluation
and `breeding' was repeated until either a satisfactory circuit was found or
the experiment was abandoned.
This is a fairly standard genetic algorithm (GA), with the fundamentally
important novelty that tnesses are evaluated according to the behaviour of
physically real genetically specied circuits. A conventional GA was chosen
so that any results would be of general relevance, rather than being artifacts
of clever problem-specic `hacks' to the evolutionary algorithm. See Goldberg
(1989) for more details of the standard GA terms and techniques used.
Numerous other evolutionary algorithms are in common use: as well as Ge-
netic Algorithms (Holland, 1975), the main families are Genetic Programming
(Koza, 1992), Evolutionary Programming (Fogel, Owens, & Walsh, 1966), and
Evolution Strategies (Schwefel & Rudolph, 1995). Much of this book applies
to many of these techniques, if properly applied. In the author's view, how-
ever, it is Harvey's Species Adaptation Genetic Algorithm (SAGA) (Harvey,
1992b) framework which is best suited to the evolution of electronic systems.
This theory (covered in the next chapter) was used here merely to set the
mutation rate of the basic GA described above. For clarity, the name `Evo-
lutionary Algorithm' (EA) will be used to refer to SAGA in particular, but
with the understanding that another evolutionary technique could have been
used. It is left to the reader to infer from context which evolutionary algo-
rithms would be appropriate, and where this is of particular importance it
will be explicitly stated.
1.2.3 Intrinsic/Extrinsic
What I have just described has been dubbed `Intrinsic' hardware evolution
(de Garis, 1993b). In the contrasting `Extrinsic' case, the phenotype circuits
are evaluated in a software simulation during evolution, and only the nal
product is eventually implemented as a real circuit. If all of the detailed char-
acteristics of the implementation could be simulated perfectly, then these two
approaches would be equivalent, except for practical considerations such as
speed/cost trade-os, and the availability of suitable recongurable hardware.
Such a simulation { which I will call a physical simulation because it captures
1.3 Motivation 7
1.3 Motivation
The aim is to use articial evolution to produce electronic circuits that are
useful, and in such a way that it is preferable to conventional design methods.
Nothing will be said about intelligence, cognitive science, articial life, natural
evolution or biology, though many concepts will be taken from these elds.
This work may have consequences for those areas, but it is not the purpose
of this book to identify them. This is an engineering enterprise.
In this chapter, I rst show how the approach I will develop grows from roots
outside of what has been considered in other studies of hardware evolution.
After this `Inspiration' section, I go on to consider the existing body of re-
search directly concerning hardware evolution. Following that, the next major
section considers multi-criteria evolution with multiple constraints, which is
of general importance to hardware evolution. Fundamental evolutionary is-
sues are then discussed before nally summing up the position of this book
and clarifying its originality.
2.1 Inspiration
2.1.1 Mead et al.: Analog neural VLSI
Many of the ideas in this book are a fusion of articial evolution with two key
factors in the design philosophy developed by Mead et al. for `analog neural
VLSI' (Mead, 1989):
{ Respect for the physics of the medium. Rather than deciding what functions
will be required and then coming to implement them in silicon, the way
in which the system is designed is driven by the behaviours that are natu-
rally exhibited by various small silicon structures. Design is the process of
composing these natural physical behaviours such that the required overall
system behaviour emerges through their interactions. This is contrary to
standard top-down methodologies, where detailed implementation issues
are mainly not considered until the very last stages, after the structure of
the system has already been decided. By taking the properties of the im-
plementation medium into account at all stages during the design process,
there is the opportunity for it to be used more eectively or eciently.
{ Emphasis on the role of time. The system's temporal dynamics arises from
the coupling together of the natural dynamical behaviours of the compo-
nent silicon structures, rather than by implementing abstract atemporal
computations derived through top-down design (in which, perhaps, time
would be represented as a variable like any other, and on which dynam-
ics might be articially enforced through mechanisms like clocking). This
10 2. Context
releases the full power of the available resources: they are physical compo-
nents that behave over time, and now the full behaviours are put to use in
performing the desired function.
(The above is partially a re-interpretation of the work from my own view-
point.)
Of course, designing in this way is extremely dicult: that is why con-
ventional top-down design proceeds dierently. Mead et al. attain successful,
impressive and useful systems by modelling neural mechanisms associated
with the early stages of vision and audition in particular species of animals.
This modelling is done to a greater degree of biological realism than is typi-
cal in the eld of articial neural networks, especially with respect to neural
dynamics, but yet with regard for the natural behaviours of small congura-
tions of silicon components as described above. Natural evolution has done a
large part of the design, which is then re-cast into the new implementation
medium. Thus natural evolution was crafting a structure suited for the bi-
ological medium, not for VLSI: the physics of the silicon medium were not
taken into account at all stages of the design process, but these are cleverly
incorporated by humans at the last minute.
The resulting silicon systems are successful because the behaviours of
certain groups of silicon components resemble important aspects of the rele-
vant neural dynamics. However, the great dierences between the biological
and VLSI media are explicitly analysed (Faggin & Mead, 1990), especially in
terms of speed and connectivity of the components. These dierences become
crucial if one wishes to build VLSI analogues of neural structures other than
those with a rather regular structure and short-range connections between
components, as has been done so far. Multiplexing schemes are then proposed
in order to use the speed of silicon to compensate for the limited connectivity
(Douglas, Mahowald, & Mead, 1995; Craven, Curtis, & Hayes-Gill, 1994),
eectively making one fast physical wire operate as many slower virtual ones
(particularly important in multi-chip systems, where the number of pins on
a chip is limited (Tessier, Babb, Dahl, et al., 1994)). The fact remains that
biological neural structures evolved with regard to a dierent implementation
medium than silicon VLSI, so are not best suited to it.
At the heart of this book is the observation that intrinsic hardware evo-
lution is the solution to the problem. It proceeds by taking account of the
overall physical behaviour of the real silicon as new variant congurations
are tried. The philosophy of considering the properties of the medium at all
stages of the `design' process and of exploiting the natural coupled dynam-
ics of the components can be followed to the full. While this is too dicult
for a human designer to do, it is the way that intrinsic hardware evolution
naturally works. This argument and its radical implications will be
eshed
out in the next chapter, and will be seen in action in the demonstration of
Chapter 5.
2.1 Inspiration 11
The use of a ne-grain recongurable device (meaning that there are no
large predened building-blocks, neural or otherwise) allows evolution, rather
than human prejudice, to solve the problem, as will be advocated in 2.4.1 be-
low. However, the only suitable ne-grain recongurable devices currently
available are digital FPGAs, so the relationship between logic systems and
articial neural networks (which are undeniably useful) is of interest. In fact,
feedforward logic networks have been shown to share some of the desirable
properties of binary feedforward neural networks (Andree, Barkema, Lourens,
et al., 1993). This has long been practically demonstrated by Armstrong's
Adaptive Logic Networks (ALNs) (Armstrong, 1991; Armstrong & Thomas,
1994; Armstrong, Chu, & Thomas, 1995), where there is also a learning pro-
cedure that operates on the ALN tree structure. These results suggest that,
given an appropriate structuring mechanism (in our case, evolution), feed-
forward networks of logic gates can perform behaviours normally associated
with non-recurrent neural networks. The issue of recurrent networks will be
considered in 2.4.1 below.
Another successful line of research relating logic circuits to neural net-
works is the RAM-based3 approach championed by Aleksander, and typied
by The WISARD4 (Aleksander & Morton, 1990). Here, the logic functions
are implemented in look-up tables stored in o-the-shelf RAM chips. In later
work, by modifying the binary RAM model to include a third state in which
a 0 or a 1 is emitted at random (a `Probabilistic Logic Neuron (PLN)'), the
learning procedure has been extended to operate on multi-layer associative
PLN networks (Kan & Aleksander, 1989) of broad applicability in neural net-
work applications. RAM-based neural networks were the inspiration behind
the evolvable RAM-based architecture to be presented in one of the studies
of Chapter 3.
2.1.4 Recongurable Hardware
There are many recongurable devices on the market (Oldeld & Dorf, 1995),
and many more architectures are conceivable. However, the requirements for
intrinsic hardware evolution are dierent to the intentions behind many com-
mercial products designed for use in the electronics industry:
{ Recongurable an Unlimited Number of Times. Clearly, write-once devices
based on fuse or anti-fuse technologies are not suitable. Even some products
with a seemingly large limit upon the number of recongurations are still
unsuitable. For example, Intel's 80170NX Electrically Trainable Analog
Neural Network chip uses
oating-gate transistors (EEPROM5 technology)
to store the synaptic strengths: these are only specied for 104 weight
changing cycles per synapse (Intel Corp., 1993). Beyond this, there is the
3
RAM = Random Access Memory.
4
WISARD = `WIlkie, Stonham and Aleksander's Recognition Device.'
5
EEPROM = Electrically Erasable and Programmable Read Only Memory.
2.1 Inspiration 13
{ Fine Grain Recongurability. Section 2.4.1 will argue against enforcing the
use of large predened building-blocks. Note that such building-blocks do
not directly correspond to the `coarse' or `ne' grain-size of recongurable
cells referred to in FPGA parlance. A recongurable cell could be large, but
yet have its properties controllable at a ne level of detail, so not presenting
a large predened building-block to evolution. In such cases, the boundaries
of recongurable cells can appear more as part of a hierarchy of dierent
types of interconnections between components.
{ Low Cost. Not only is this desirable for academic researchers, but it broad-
ens the range of commercial applications towards which the research can
be aimed.
The preferences above are not completely shared by the traditional uses of
FPGAs, so commercial FPGA chips tend to be ill-suited to our purpose. How-
ever, recent theoretical and technological advances in the concept of custom
and dynamically recongurable computing (Oldeld & Dorf, 1995; DeHon,
1994; Tau, Chen, Eslick, et al., 1995) are beginning to stimulate the pro-
duction of new devices with suitable characteristics for evolution. In custom
computing, computations are performed by special purpose circuits imple-
mented on general purpose devices: one or more FPGAs. In the dynamic
reconguration case, the FPGA is used to instantiate dierent circuits at
various stages of the computation, perhaps being used as a recongurable
co-processor to a host microprocessor: circuits are rapidly `swapped' in and
out of hardware (see Eldredge and Hutchings (1994) for an example). The
requirements of these paradigms have much in common with those of intrinsic
hardware evolution, and are beginning to prompt the production of suitable
commercial FPGAs. The XC6216 used in this book is such a chip, and it can
be expected that more will follow. At the time of writing, the XC62xx family
are by far the best suited commercially available devices.
Although evolvable FPGAs have only recently become available, it has
long been possible to construct evolvable hardware systems out of other read-
ily available components. We saw in Section 2.1.3 how systems resembling
neural networks could be constructed with RAM chips; by placing the RAM
contents under evolutionary control, these become evolvable hardware. Ad-
ditionally, some of the interconnections between components at the circuit-
board level can be placed under evolutionary control by using analogue switch
ICs7 (e.g. the 4053 chip in the long-standing 4000 CMOS series) or by using
more recent digital `eld programmable interconnect' devices (I-Cube, Inc.,
1996; Aptix Corp., 1996). The rst part of the work reported in this book
was done before the XC6216 became available (even then, a -test part was
used), so in the next chapter we will indeed study a RAM/analogue-switch
based evolvable system. Other architectures based on RAM chips and/or re-
7
IC = Integrated Circuit.
2.1 Inspiration 15
congurable board-level interconnect are possible, and this may still be a
fruitful line of research even now suitable FPGAs are available.
By using analogue switch ICs interconnecting analogue components, an
evolvable analogue hardware system could be constructed. Of greater interest
are the VLSI analogue counterparts of the FPGA that are emerging; variously
known as the `Electrically Programmable Analog Circuit' (IMP, Inc., 1996),
the `Field Programmable Analog Array' (Bratt & Macbeth, 1996; Motorola,
Inc., 1998) and the `Totally Recongurable Analog Circuit' (Zetex plc, 1996).
The elementary repeated unit in these devices is an operational amplier
(op-amp), and the conguration determines attributes of each op-amp and
its local circuitry (for instance, to determine its frequency response) as well
as some aspects of how the op-amps are interconnected. While evolutionary
experiments with these devices would undoubtedly be informative, they are
not used in this book because the op-amps present large predened building
blocks, which is against the evolutionary philosophy I chose to follow (see 2.4.1
below for the justication). However, a digital gate is just a simple high-gain
amplier made of a few transistors (a much smaller unit than an op-amp),
normally kept in saturation by observing various design constraints: these
are absent in the evolutionary experiments to be presented, and the XC6216
operates as an analogue device made of these high-gain ampliers, rather
than in the digital way intended by the manufacturers.
The main points of this book are independent of the choice of recong-
urable medium: what is important is that evolution is intrinsic { individuals
are evaluated as congurations of the real medium (or a highly accurate
physical simulation of it if this is possible), not in an abstract simulation.
I will concentrate on digital FPGAs as these are the most suitable and so-
phisticated recongurable devices currently available, but with an open mind
even to radically new architectures (e.g. the Evolvable Electro-Biochemical
Systems proposed by Kitano (1996b)).
sible than a neural network with its weights adapted to perform the same
task.
In the character recognition task, their variable-length GA (which they
call VGA) was again used in preference to the less compact encoding scheme
(which they call a Simple GA, SGA). The two are compared by Iwata et al.
(1996):
\The main advantage of VGA in pattern recognition is that we can
handle larger inputs than using SGA. For example, EHW could learn three
patterns of 16 inputs by SGA with the chromosome length of 840. On the
other hand, by VGA, EHW can learn three patterns of 64 inputs with the
chromosome length of 187.6 in average. In addition, the learning by VGA
is much faster than SGA; 416.7 generation [sic] by VGA, 4053 by SGA."
A radically dierent solution to the perceived genotype-length problem is
proposed by Higuchi et al. (1996b), stating:
\Present EHW research [is] all based on gate-level evolution. However,
the size of a circuit allowed at gate-level evolution is not so large because
of the increase of GA execution time. Low-level hardware functions given
by such an EHW would be insucient for practical applications
However, if hardware is genetically synthesized from higher level hard-
ware functions (e.g. adder, subtracter, sine generator, etc.) than primitive
gates (e.g. AND gates) in gate-level evolution, more useful hardware func-
tions can be provided by EHWs. Thus, function-level EHWs aim at more
practical applications than gate-level EHWs."
This response may indeed permit immediate application in industrial
problems. However, I disagree with the damnation of gate-level (and, in gen-
eral, ne-grain) evolution. In Chapter 5, I demonstrate successful evolution at
the gate level with a genotype length of 1800 bits over the course of 5000 gen-
erations. There were no indications that an upper bound on genotype length
was being approached. The evolutionary algorithm was a Species Adaptation
Genetic Algorithm (see 2.4.2 below): a standard GA is not suitable for the
evolution of complex systems. In addition, the structure being evolved was
very dierent from ETL's EHW feedforward logic functions, and it may be
of a more `evolvable' nature (see 2.4.1). I will present a general argument in
favour of ne-grain evolution in 2.4.1 below, taking the view that biassing
or more gently restricting the genetic encoding scheme is a more appropriate
way to give domain knowledge to the EA than enforcing the use of large
predened building-blocks.
Nevertheless, the function-level architecture proposed is interesting in its
own right, and may have useful applications. The project is to build as an
ASIC a very coarse-grained FPGA which can then be used with evolutionary
methods (Murakawa, Yoshizawa, Kajitani, et al., 1996). The basic repeated
unit can perform one of seven 16-bit
oating point functions: add, subtract,
if-then, sine, cosine, multiply, divide. These are arranged in columns ve units
high, and the columns are interconnected by crossbar switches. The genotype
will be used to encode which function is to be performed by each unit, and
20 2. Context
circuit, where the clock speed can easily be varied. There is a constraint
that only hardware structures with a controllable speed of behaviour can
be evolved: this may have an impact on the evolvability of the system
(see 2.4.1), which may end up increasing the number of tness evaluations
required.
A second constraint is that it must actually be possible to sim-
ulate/emulate the circuit's environment adequately, so that the nal
evolved (slowed down) circuits work in the real world. For many elec-
tronic applications, this will be possible, but de Garis concentrates on
the most problematic case conceivable: the evolution of control systems
for autonomous mobile robots. For this robot case, there exists a school
of thought that only the use of real robots (no simulation of the robot-
environment interactions) will be sucient in the long term (Mondada
& Floreano, 1996), but there is no general agreement on this question.
A third constraint is that if the maximum speed at which the hard-
ware can operate is Smax , and the speed at which it must nally operate
in the real world to perform the task it was evolved for is Sneeded , then
the maximum factor by which the tness evaluations can be accelerated
is k = Smax /Sneeded . Thus, a speed-up can only be achieved if the full
speed of the hardware is not required during nal operation in the real
world. As an example, consider the evolution of a synchronous digital
circuit as a conguration of the XC6216 FPGA. Say that the nal circuit
is required to operate with a clock speed of 1MHz in the real-world ap-
plication, and that the maximum depth of combinatorial logic between
clocked elements is constrained to be 10 function units. Allowing 5ns per
function unit, this gives a maximum clock frequency of 20MHz. Hence the
maximum speedup that can be obtained through the use of a high-speed
environment emulation is k = 20MHz/1MHz = 20 in this application.
This was a rather arbitrary example, but not unrealistic.
Factors 1{3 taken together do give a considerable increase in the speed
of the evolutionary process (by a factor of about 104 { but note that this
is based on very vague guesses indeed), but none of them seem to constitute
the image given by `evolution at electronic speeds.'
A nal alternative, explored by de Garis' earlier work (de Garis, 1990), is
to evolve separately subcircuits (or neural modules) for separate components
of the behaviour of the nal desired system. Once these components have
been evolved (perhaps in parallel), they are `frozen' and used as building
blocks in the next stage of evolution; there could be many stages, leading to
a hierarchy of building blocks. This approach is dependent on the ability to
decompose the desired behaviour into independent elements that can later be
combined: it depends on the application and on the human experimenter's
skills and understanding of it. The speed-up factor in the evolutionary process
obtained through the simultaneous evolution of subsystems is equal to the
number of subsystems being evolved in parallel, with a potential penalty
2.2 Evolutionary Algorithms for Electronic Design: Other Approaches 23
when it is time to integrate them if they have evolved in such a way as not
to piece together easily (i.e. the elements were not truly independent).
2.2.3 EPFL & CSEM: `Embryonics'
The word `embryonics' was coined by de Garis (1993a) to mean `embryolog-
ical electronics'; in other words electronic systems that are in some respects
analogous to embryology in nature. In a collaboration between LSL EPFL
(Logic Systems Laboratory, Ecole Polytechnique Federale de Lausanne) and
CSEM (Centre Suisse d'Electronique et de Microtechnique SA, Neuch^atel),
a large group have explored possibilities for new FPGA architectures pos-
sessing `quasi-biological' properties of self-repair and self-reproduction. The
techniques used are strongly inspired by nature, where the level of analogy is
to compare the repeated blocks of the FPGA with the cells of a multi-cellular
organism.
The basic idea is that the description of the circuit to be implemented
on the FPGA is like the genotype of a multi-cellular organism. In the organ-
ism/FPGA, each cell dierentiates (that is, becomes committed { not nec-
essarily irreversibly { to a specic mode of behaviour out of its repertoire)
according to both the context in which it is situated, and to information from
the genotype relating to that context. In the FPGA case, the context is the
state of neighbouring cells; in biology it is more complicated. By construct-
ing a circuit specication in terms of what each cell should do depending on
the state of its neighbours, rather than on its absolute physical position, the
possibility for highly robust self-repair mechanisms is introduced. Cells are
equipped with built-in self-test, and if a faulty region of silicon is identied,
the circuit can dynamically redistribute over the remaining functional cells
(assuming there were some unused cells that can be recruited). This is sim-
plied by having a (row, column) index as part of the state of each cell: this
index gives the position of the cell within the circuit design , not its absolute
position, and when a fault is detected, a whole row and/or column of the
FPGA can be skipped by not incrementing the appropriate counter in the
faulty row/column. If the index arithmetic is done modulo n for one or both
of the counters, then the circuit will be repeated every n non-faulty FPGA
cells in that direction, giving the possibility for multiple-mode redundancy
as well as self-repair within each repetition.
The FPGA architectures developed are aimed towards the implementa-
tion of logic circuits described as binary decision trees (Akers, 1978) and
their derivatives. This description could be placed under the control of ar-
ticial evolution, and intrinsic (or extrinsic) hardware evolution performed.
The resulting evolved system would possess the high level of robustness given
by the self-repair mechanisms of the medium. In this way, the Embryonics
approach is complementary to the evolutionary fault-tolerance mechanisms
I will develop in Chapter 4, where robustness evolved into the design it-
self can build on top of the robustness of the medium. For full details of
24 2. Context
the Embryonics project, see Mange (1993), Mange, Stauer, Sanchez, et al.
(1993), Durand and Piguet (1994), Marchal and Stauer (1994), Marchal,
Piguet, Mange, et al. (1994b, 1994a), Mange and Stauer (1994), Marchal,
Nussbaum, Piguet, et al. (1996), Mange, Goeke, Madon, et al. (1996).
2.2.4 A Sophisticated Extrinsic Approach: Hemmi et al.
Hemmi et al. (also at ATR) have been working to push forward the bound-
aries of the extrinsic approach to hardware evolution. The aim is to evolve a
description of circuit behaviour , and then to use existing automatic synthesis
tools to produce a circuit schematic, an FPGA conguration, or the masks
to make an ASIC (Hemmi, Mizoguchi, & Shimohara, 1996b). A variant of
the Genetic Programming EA technique is used (Koza, 1992, 1994) to ma-
nipulate tree-structured genotypes. These genotypes, through a sophisticated
process of development using formal grammar theory, map to a behaviour-
level Hardware Description Language (HDL) description of the circuit. The
tness is then evaluated by feeding the behavioural-HDL description into a
behavioural digital logic simulator, which already exist as part of CAD suites.
The process of grammatical development of the genotype has been carefully
contrived so as to allow regularities of the task to be exploited through the
repetition of substructures within the whole design: see Hemmi, Mizoguchi,
and Shimohara (1994, 1996a), Mizoguchi, Hemmi, and Shimohara (1994),
Hikage, Hemmi, and Shimohara (1996) for details. (See also the independent
work of Seals and Whapshott (1994) for the problems encountered if an HDL
description is encoded directly onto the genotype.)
If, for every tness evaluation, the genotype was expressed to produce the
HDL description, this was then run through the automatic synthesis tools to
produce an FPGA conguration, and the tness assigned according to the
behaviour of the real FPGA, then this would be intrinsic hardware evolu-
tion. The transformation between HDL description and FPGA conguration
would be subsumed as part of the genotype!phenotype mapping (although it
may be nondeterministic, because automatic synthesis tools can use methods
like simulated annealing (van Laarhoven & Aarts, 1987)). In this hypotheti-
cal case, evolution would be manipulating the primitives of the real FPGA,
but via the mapping imposed by the genotype!HDL!FPGA process. In
practice, automatic synthesis tools are too slow for this to be practical.
I raised the above imaginary intrinsic version to illustrate the dierence
with Hemmi's actual extrinsic technique, where the individuals receive a t-
ness score according to the performance of a digital logic behavioural simu-
lator operating from the HDL description. The advantages of the extrinsic
approach are rstly that there is the potential for the behavioural simula-
tion (which includes no details of electronic timings) to be executed very
quickly { faster than real-time { on a powerful computer; the second advan-
tage is that the nal design could be implemented in a variety of dierent
silicon technologies. The disadvantage is that evolution never `sees' any of the
2.2 Evolutionary Algorithms for Electronic Design: Other Approaches 25
peak power consumption, high speed (low delay through combinatorial sec-
tions), and testability (being able to identify internal faults by applying test
inputs). The ability to do this will probably be an important part of all
approaches to hardware evolution.
Martin and Knight (1993, 1995) use a GA to perform high-level be-
havioural synthesis tasks. Taking a Data Flow Graph (DFG) representation
of the system and a library of predened modules, the GA assigns modules
to operations in the DFG. There are many alternative modules for each op-
eration, and each alternative gives dierent characteristics of area, delay, and
power use. The GA must also perform scheduling, whereby the same physi-
cal module implements more than one operation in the DFG by being used
at dierent times. The tness function is a requirement to minimise delay,
area, average power, peak power, or weighted sums of the latter three. Ad-
ditionally, multiple constraints can be placed on these factors: in the case
of a constraint violation, a xed penalty plus a penalty increasing with the
degree of violation is given to the tness. Bright and Arslan (1996) describe
how a GA can also be used to manipulate the DFG itself, inserting delays
and parallel branches to achieve various kinds of re-timing, pipelining, and
parallelism.
Moving to a lower level, Hill and Kang (1994) show how a GA can select
modules from a standard-cell library for individual logic gates, again subject
to multiple criteria and constraints. There, the logic network is xed and the
GA selects the implementation of each gate; Arslan, Ozdemir, Bright, et al.
(1996c), Arslan, Horrocks, and Ozdemir (1996b, 1996a) go a stage further and
put the structure of the logic network itself under genetic control as well. The
tness function then not only has weighted components for area and delay
(resulting from the library cell selection and from the network structure),
but also for the correctness with which the desired pre-specied Boolean
function is performed by the network. Drechsler, Becker, and Gockel (1996)
demonstrate that a metric of testability can be included in a multi-criteria
tness function.
There is a consensus that holistic approaches are best: ideally, the criteria
(functionality, power, area, etc.) should be taken into account at all stages of
design and implementation. Intrinsic hardware evolution gives an opportu-
nity to do this. There is no distinction between design and implementation:
evolution constructs the circuits as physical objects. Criteria such as power
consumption can be directly measured during the tness evaluations, and
included in the tness function. These criteria will then be respected in all
aspects of the nal evolved system, from its use of the components available
through to the mechanisms by which the task is accomplished. In the case of
the criterion of fault-tolerance , there are practical diculties in this scheme,
but these are identied and resolved (at least partially) in Chapter 4.
2.4 A Philosophy of Articial Evolution 29
genetic change are not suciently correlated to guide evolution. This could
start to occur if the phenotypic primitives eectively manipulated by the
genetic operators are too large, as noted by Cli, Harvey, and Husbands
(1993):
\Any high-level semantic groupings. . . necessarily restrict the possibil-
ities available to the evolutionary process insofar as they favor particular
paths at the expense of others, compared to letting the lowest-level prim-
itives be manipulated by genetic operators. The human designer's preju-
dices are incorporated with his or her choice of high-level semantics, and
these restrictions give rise to a much more coarse-grained tness landscape,
with steeper precipices. It might be thought that the use of low-level primi-
tives necessitates very many generations of evolution with vast populations
before any interesting high-level behaviour emerges, but our simulations
show that this is not necessarily the case."
So the imposition of large predened building-blocks could impede evolu-
tion { reduce the system's evolvability { by causing the tness landscape to
be too rugged.
The way in which the genetic operators eectively manipulate the pheno-
typic primitives is determined by the genetic encoding scheme { the mapping
between genotype and phenotype. This mapping is therefore of crucial in
u-
ence on the tness landscape, and hence on evolvability. In direct encoding,
there is a one-to-one mapping between phenotypes and genotypes. In unre-
stricted direct encoding every possible phenotype (hardware conguration) is
represented by exactly one genotype. Jakobi (1996a) shows that by restrict-
ing or biasing the genotype!phenotype mapping, domain knowledge can be
given to the evolutionary process.
In a restricted encoding, there is still a one-to-one mapping from geno-
types to phenotypes, but there are fewer possible genotypes than possible
phenotypes: some of the phenotypes have no corresponding genetic repre-
sentation, so can never be generated by the evolutionary process. In a biased
encoding, the genotype!phenotype mapping is many-to-one, so that if a ran-
dom genotype is selected then it is more likely to code for some phenotypes
than others. Domain knowledge can be introduced by using one or both of
these: restriction to exclude some phenotypes (presumed bad) altogether, and
biasing to make some phenotypes (presumed to be on average better than
the others) more likely.
The enforcement of large predened building blocks is eectively an ex-
treme form of restriction: it is impossible for a genotype to represent a circuit
that is not entirely constructed from them. Jakobi (1996a) recommends en-
coding schemes that are both biased and restricted, and I agree. Restriction
can be used to exclude phenotypes that the experimenter is absolutely sure
are not of interest; biasing can be used to give evolution `hints' that certain
kinds of phenotypes may be more interesting than others. I do not think that
the state of knowledge in hardware evolution is sucient to justify the im-
2.4 A Philosophy of Articial Evolution 31
lution (see below), and perhaps the injection of noise could help to smooth
the tness landscape (Thompson, Harvey, & Husbands, 1996; Higuchi et al.,
1996a). However, it could be that continuous time analogue dynamical sys-
tems (e.g. the continuous-time recurrent networks of logic gates demonstrated
later) are inherently more evolvable than discrete-time digital computational
systems. More research is needed to clarify this issue.
2.4.2 Species Adaptation Genetic Algorithms (SAGA)
It would be dicult to develop a tness evaluation technique that allowed a
gradual path of improvements starting from an initial random population and
nally arriving at a very complex pre-specied target behaviour. One way to
incorporate human skill in such cases is to break the target behaviour down
into a sequence of tasks of increasing complexity and diculty: incremental
evolution. Harvey, Husbands, and Cli (1994) give a good example: the task
was to evolve a neural controller and a visual morphology that caused a
robot to navigate towards a white triangle, avoiding a white rectangle, while
not bumping into the black walls of the rectangular arena (the two shapes
were xed on one of the walls). First, a random population was formed,
and a single individual was picked out by human judgement as displaying
vaguely `interesting' (but totally stupid) behaviour. The initial population
of the evolutionary experiment was then made up of clones of that single
individual. Starting from this population, the rst subtask was to navigate
robustly towards an entire wall of the arena coloured white. The next subtask,
starting from the nal population of the previous one, was to navigate towards
a much smaller rectangular target. Finally, the task was to nd the triangle
and avoid the rectangle.
In the long term, incremental evolution must be the paradigm for the arti-
cial evolution of complex systems. It allows an experiment to start from the
best previous result rather than always starting from zero each time, partly
side-stepping criticisms about the time taken by the evolutionary approach.
However, as pointed out by Jakobi (1996b),
\A GA based on or requiring one-way change (such as population con-
vergence) contains a built in stopping point where that one-way change
goes to its limit. If we are after an open-ended evolutionary process that
is truly limitless in terms of the behavioural complexity it is capable of
producing, therefore, we cannot rely on traditional GA optimization tech-
niques."
During a run of either a conventional Genetic Algorithm, or of Genetic
Programming, the amount of genetic variation in the population decreases.
It is a maximum in the initial random population, and eventually decreases
to a small value, at which time evolution ceases and the experiment is over
(whether or not the goal was reached). These EAs are therefore not suitable
for the long-term open-ended incremental evolution of arbitrarily complex
systems. If the goal is reached just as the population becomes genetically
2.5 The Position of this Book Within the Field 33
converged, then a slightly more complex problem { requiring a few more gen-
erations { could not be solved using the same experimental parameters; most
denitely this nal population could not be used as the starting population
of the next most complex task in an incremental sequence.
Inman Harvey's Species Adaptation Genetic Algorithm (SAGA) (Harvey,
1992b, 1992a; Harvey, Husbands, & Cli, 1993; Harvey, 1995) was devel-
oped as an extension to the GA and as a conceptual framework specically
to deal with this issue. It casts articial evolution as a process of contin-
ual adaptation of a relatively genetically converged `species.' In this process,
mutation is the primary genetic operator: crossover, though still useful, does
not play the fundamental role that it does in conventional GAs. The per-bit
mutation probability in SAGA is set with an aim to nd an optimal balance
between mutation (which increases exploration and population divergence)
and selection (which maintains progress made so far, and increases popula-
tion convergence). Theoretical and empirical investigations show the optimal
rate of mutation to be one which makes, on average, of the order of one
mutation that aects tness per genotype. (This applies to common experi-
mental conditions used with GAs, but see the references for full and general
details.) SAGA theory also gives a way for the genotypes to increase gradu-
ally in size, to match the increasing complexity of an incremental evolution
scenario. Putting aside the possibility of increasing genotype size, the only
modication to the standard GA algorithm needed by SAGA is to maintain
a constant selection pressure (e.g. by using rank-based selection), to set the
mutation rate appropriately, and to allow the experiment to continue after
any initial transient phase in the amount of genetic convergence.
In my view, SAGA is the most suitable EA for the evolution of complex
systems. It may be that other kinds of EA can be modied in a similar way
to how SAGA modies the conventional GA, but this remains to be seen.
However, most of the points of this book are independent of the choice of EA,
as long as it works. In the experiments, I use SAGA ideas to set the mutation
rate of a completely standard GA with rank selection, which is allowed to
continue after the initial phase of genetic convergence. I will not focus on
SAGA further, because I do not want my arguments to be predicated on the
choice of EA. See Thompson et al. (1996) and Harvey and Thompson (1997)
for a detailed discussion of SAGA applied to hardware evolution, including
analysis of the experiments seen in this book from an evolutionary theory
perspective.
hardware evolution projects { there are many avenues to be explored, and this
book walks down just one. The central idea of allowing `Natural evolution
in an articial medium' of recongurable hardware, by means of removing
conventional constraints on structure and dynamics (see next chapter) is, to
my knowledge, original. I am not aware of other work placing an empha-
sis on the use of evolution to exploit the natural physical properties of the
silicon medium: usually the recongurable hardware is merely viewed as a
high-speed implementation of logic that could easily be done more slowly in
software. The engineering use of population-dynamic eects to be introduced
in Chapter 4 is also new, though it builds on previous work in theoretical
biology. The concept of intrinsic hardware evolution is not mine, but the
experiments to be presented do achieve some milestones: the rst real ex-
periment in intrinsic hardware evolution deliberately performed as such, the
rst evolved hardware robot control system, and the rst intrinsic evolution
of the conguration of an FPGA.
3. Unconstrained Structure and Dynamics
the whole system can be readily understood using knowledge of the individ-
ual gates. This restriction is to demand that the logic gates are arranged in
entirely feedforward networks: there must be no recurrent (feedback) connec-
tions. The behaviour of these feedforward networks can then be understood
using Boolean logic.
Having composed feedforward networks out of logic gates made out of
transistors, we now want to build something out of a collection of feedforward
networks. Again, though, an arbitrary composition of feedforward networks
(allowing recurrent connections) would be too complex to understand. This
time we allow recurrent paths to exist, but insist that they operate only in
discrete time, on the ticking of a global clock.
We have now arrived at a situation where the system is compartmentalised
into feedforward modules, which are only allowed to communicate with each
other at the discrete instants given by the global clock. When the clock ticks,
the inputs to a feedforward module can change. There is then a
urry of
dynamical activity at the level of the logic gates (known as hazards and races
(Green, 1985)), and within each gate as the transistors follow the analogue,
continuous-time laws of semiconductor physics. However, all this dynamical
activity is not allowed to aect the rest of the system, because it is not until
the next clock tick that the feedforward module's output is used by any other
module, and by then all of this `transient' activity has died away, leaving the
module's output at a digital logic state predictable by Boolean logic.
To allow the designer to work at the abstract level of Boolean logic, in-
stead of thinking about the physics of every transistor, the possible circuits
have become highly constrained. There is the structural constraint that the
system must be constructed of modules, each being a feedforward network of
primitive subcircuits called logic gates. Then there is the temporal constraint
that these modules must only in
uence each other at the discrete time in-
stants given by the ticking of the global clock. In asynchronous or self-timed
logic design (Section 2.1.5), a slightly less rigid temporal constraint is used
to the same eect: a module is allowed to in
uence the rest of the system as
soon as its internal transients have died away.
Digital logic is just one example. It is universally the case that if a system
is to be designed without always having to think about the detailed physics
of the semiconductor components, then the abstraction steps 1{3 above must
be followed, resulting in constraints on the circuit's structure and/or dy-
namics. So for anything but tiny circuits, the need for design abstractions
imposes circuit constraints that are there for the designer's benet and may
not be necessary to the application or to the operation of electronic circuits
in general.
Heretofore, all electronic circuits have been designed. Thus, general con-
ceptions about what sort of a thing an electronic circuit can be are heavily
biased by the constraints resulting from the design methodologies that have
been developed. Intrinsic hardware evolution never uses abstractions: there
3.2 Unconstrained Structure 37
real-valued time being held to double precision accuracy. The logic simulator
program was written especially for this experiment. An equivalent time-slicing
simulation would have had a time-slice of 10 24 seconds, so the underlying
synchrony of the simulating computer was only manifest at a timescale 15
orders of magnitude smaller than the node delays, allowing the asynchronous
dynamics of the network to be seen in the simulation. A low-pass lter mech-
anism meant that pulses shorter than 0.5ns never happened anywhere in the
network.
The objective was for node number 100 to produce a square wave oscilla-
tion of 1kHz, which means alternately spending 0:5 10 3 seconds at logic 1
and at logic 0. If k logic transitions were observed on the output of node 100
during the simulation, with the nth transition occurring at time tn seconds,
then the average error in the time spent at each level was calculated as :
k
average error = k 1 1
X
(tn tn ) 0:5 10
1
3
(3.1)
n=2
For the purpose of this equation, transitions were also assumed to occur
at the very beginning and end of the trial, which lasted for 10ms of simulated
time. The tness was simply the reciprocal of the average error. Networks
that oscillated far too quickly or far too slowly (or not at all) had their
evaluations aborted after less time than this, as soon as a good estimate of
their tness had been formed. The genetic algorithm was the one described
in the introduction,2 with population size 30, crossover probability 0.7, and
mutation probability 6:0 10 4 per bit. At the time, this mutation rate was
found through trial and error, but later calculations showed it to be in line
with SAGA theory (Section 2.4.2).
Figure 3.1 shows that the output of the best individual in the 40th gen-
eration (Figure 3.2) was, at 4kHz, approximately 4 21 thousand times slower
than the best of the random initial population, and was six orders of mag-
nitude slower than the propagation delays of the nodes. In fact, tness was
still rising at generation 40 when the experiment was stopped because of
the excessive processor time needed to simulate this kind of network. This
result suggests that it is possible for evolution to arrange for a network of
high-speed components to generate much slower behaviour, without having
to have constraints applied to the dynamics.
The evolved oscillators produced spike trains rather than the desired
square wave. (A square wave could have been produced by the addition of
a toggling
ip-
op to the output, but this did not arise within the 40 gen-
erations.) Probing internal nodes indicated that beating between spike trains
of slightly dierent frequencies was being used to generate a much lower fre-
quency; beating only works for spikes, not for square waves. This does not
2
For no good reason, in this experiment the rank-selection method included trun-
cation of the ve least-t individuals (they never have ospring). This is not
thought to be signicant, and was dropped on all later experiments.
42 3. Unconstrained Structure and Dynamics
logic ‘1’
~
~ 18MHz
logic ‘0’
Two millionths of a second
logic ‘1’
~ 4kHz
~
logic ‘0’
Two thousandths of a second
Fig. 3.1. Output of the oscillator evolved in simulation. Top: Best of the initial
random population of 30 individuals; Below: best of generation 40. Note the dif-
ferent time axes. A visible line is drawn for every output spike, and in the lower
picture each line represents a single spike.
mean that the task was easy: it is dicult for beats to reduce the frequency by
the massive factor required and yet produce an output as regular as that seen
in Figure 3.1. Beating does not just occur at a few nodes, but is distributed
throughout the network: I was unable to attribute functions to particular
subnetworks of components. By examining the causative chain of events be-
ing scheduled by the logic simulator, it was seen that soon after initialisation
all of the 68 gates seen in the gure had aected the output.
The layout of the circuit diagram, Figure 3.2, was done by hand. It would
be quite possible for there to be interesting structures in the topology of the
network, without these being apparent to the eye from this diagram. There
do exist methods for automatic network-diagram layout that could draw bet-
ter diagrams (e.g. Kosak, Marks, and Shieber (1991)). Rather than concen-
trating on visual analysis, the well-known Kernighan & Lin (KL) heuristic
graph-partitioning algorithm (Kernighan & Lin, 1970) was adapted to search
directly for substructures with properties that could aid an understanding of
the circuit. The modied KL algorithm was used to divide the evolved net-
work into two subnetworks (A and B, with A containing fewer nodes than B),
while attempting to maximise a measure of the quality of this bipartition.
Two dierent quality measures were used:
Type 1: The quality of a partition was the total number of links between
nodes within A, plus the total number of links between nodes within B,
minus the number of nodes in A having output connections to B, minus
the number of nodes in B having output connections to A. An output
link from one subnetwork that fanned-out to connect to more than one
input in the other subnetwork was counted as a single crossing of the
partition. This quality metric was intended to cause the network to be
divided into two parts, each with high internal connectivity, but with few
3.3 Unconstrained Dynamics 43
Output
100
86
19
67
72
42
36
1
43
97
44
23
3
10
53
13
34
33
64
68
37
4
9
85
24
98
61
25
12
87
66
21
81
30
16
47
41
94
69
55
46
89
2
45
51
75
5
74
52
32
38
62
57
35
71
17
90
83
15
48
92
8
78
79
91
58
56
11
Fig. 3.2. The 4kHz oscillator circuit evolved in simulation. Gates having no con-
nected path by which they could in
uence the output are not shown, leaving the 68
seen above. The index of the genotype segment coding for a node is written inside
its symbol.
44 3. Unconstrained Structure and Dynamics
High-frequency
counter.
Desktop
configuration Computer
(PC)
1e+6 1e+6
1e+5 1e+5
1e+4 1e+4
1e+3 1e+3
1e+2 1e+2
Frequency (Hz)
1e+1 1e+1
1e+0 1e+0
0 10 20 30 40 0 10 20 30 40
1e+6 1e+6
1e+5 1e+5
1e+4 1e+4
1e+3 1e+3
1e+2 1e+2
1e+1 1e+1
1e+0 1e+0
0 10 20 30 40 0 10 20 30 40
Generations
Fig. 3.4. Frequency of oscillation of individuals over the GA run (real FPGA).
The objectives were: Top left - 10Hz; Top right - 1kHz; Bottom left - 100kHz;
Bottom right - 1MHz. Individuals with constant output (frequency = 0Hz) are
not shown. Frequencies higher than 1MHz appear as exactly 1MHz due to the
limited rate of the counter. Where many points are overlaid, they appear as one.
Note that the frequencies are shown on a logarithmic scale. Each of these runs took
just a few minutes to complete, due to the shortness of the evaluations.
48 3. Unconstrained Structure and Dynamics
Virtual
World
Simulator
Sonar
Emulator
Evolvable
Hardware
Sonars
Wheels
Rotation
Sensors
gured under the control of each individual's genotype in turn. There would
be little benet in evolving this architecture as hardware, however, because
the electronics is constrained to behave in accordance with the FSM design
abstraction: all of the signals are synchronised to a global clock to give clean,
deterministic state-transition behaviour as predicted by the model. Conse-
quently, the hardware would behave identically to a software implementation
of the same FSM.
What if the constraint of synchronisation of all signals is relaxed and
placed under evolutionary control? Although supercially similar to the FSM
implementation, the result (shown in Figure 3.6), is a machine of a funda-
mentally dierent nature. Not only is the global clock frequency placed un-
der genetic control, but the choice of whether each signal is synchronised
(latched) by the clock or whether it is asynchronous (directly passed through
as an analogue voltage) is also genetically determined. These relaxations of
temporal constraints { constraints necessary for a designer's abstraction but
not for intrinsic evolution { endow the system with a rich range of potential
dynamical behaviour, to the extent that the sonar echo pulses can be fed
directly in, and the motors driven directly by the outputs, without any pre-
or post-processing: no timers or pulse-width modulators. (The sonar ring
cycle is asynchronous to the evolved clock).
Sonars Evolved RAM Contents
1k by 8 bits RAM
10 Address inputs 8 Data outputs
1 1 10 6 1 1
G.L.
G.L.
Evolved M M
Clock
Motors
Fig. 3.6. The hardware implementation of the evolvable DSM robot controller.
`G.L.' stands for a bank of genetic latches: it is under genetic control whether each
signal is passed straight through asynchronously as an analogue voltage, or whether
its digital value is latched according to the global clock of evolved frequency.
3.3 Unconstrained Dynamics 51
tness = T1
e kxcx(t)2 + e ky cy (t)2 s(t) dt (3.2)
0
kx and ky were chosen such that their respective Gaussian terms fell from
their maximum values of 1.0 (when the robot was at the centre of the room)
52 3. Unconstrained Structure and Dynamics
LEFT RIGHT
MOTORS M M
LOGIC LOGIC
FUNCTION FUNCTION
LEFT RIGHT
SONARS
Fig. 3.7. An alternative representation of the evolvable Dynamic State Machine,
as used in the experiment. Each is a `Genetic Latch' (see previous gure).
to a minimum of 0.1 when the robot was actually touching a wall in their
respective directions. The function s(t) has the value 1 when the robot is
stationary, otherwise it is 0: this term is to encourage the robot always to
keep moving. Each individual was evaluated for four trials of 30 seconds each,
starting with dierent positions and orientations. The worst of the four scores
was taken as the tness (Harvey et al., 1993). For the nal few generations,
the evaluations were extended to 90 seconds, to nd controllers that were not
only good at moving away from walls, but also staying away from them.
For convenience, evolution took place with the robot in a kind of `virtual
reality.' The real evolving hardware controlled the real motors, but the wheels
were just spinning in the air. The photograph of Figure 3.5 was taken during
an actual evolutionary run of this kind. The wheels' angular velocities were
3.3 Unconstrained Dynamics 53
Fig. 3.8. Wall avoidance in virtual reality and (bottom right) in the real world,
after 35 generations. The top pictures are of 90 seconds of behaviour, the bottom
ones of 60.
Left motor ON Left motor ON
Right motor ON Right motor OFF
01 00,10
11 01 01,11
01,11 11
00,01
Fig. 3.9. A representation of one of the wall-avoiding DSMs. Asynchronous tran-
sitions are shown dotted, and synchronous transitions solid. The transitions are
labelled with (left, right) sonar input combinations, and those causing no change
of state are not shown. There is more to the behaviour than is seen immediately
in this state-transition diagram, because it is not entirely a discrete-time system,
and its dynamics are tightly coupled to those of the sonars and the rest of the
environment.
3.3 Unconstrained Dynamics 55
bination is present, but the solid transitions only happen when their input
combinations are present at the same time as a rising clock edge. Since both
motor outputs are synchronous, the state can be thought of as being sampled
by the clock to become the motor outputs.
This state-transition representation is misleadingly simple in appearance,
because when this DSM is coupled to the input waveforms from the sonars
and its environment, its dynamics are subtle, and the strategy being used
is not at all obvious. It is possible to convince oneself that the diagram is
consistent with the behaviour, but it would have been very dicult to pre-
dict the behaviour from the diagram, because of the rich feedback through
the environment and sensorimotor systems on which this machine seems to
rely. The behaviour even involves a stochastic component, arising from the
probabilities of the asynchronous echo inputs being present in certain com-
binations at the clocking instant, and the probability of the machine being
in a certain state at that same instant (remember that one of the feedback
loops is unclocked).
Even this small system is non-trivial, and performs a dicult task with
minimal resources, by means of its rich dynamics and exploitation of the real
hardware.5 After relaxing the temporal constraints necessary to support the
designers' FSM model, a tiny amount of hardware has been able to display
rather surprising abilities. As a control experiment, three GA runs were per-
formed under identical conditions, but with all of the genetic latches set to
`clocked' irrespective of the genotype. All three runs failed completely, con-
rming that new capabilities have been released from the architecture by
relaxing the dynamical constraints. In another set of three control runs, all
the genetic latches were set to `unclocked.' These runs succeeded but the be-
haviour was not so reliable: from time to time the robot would head straight
for a wall and crash into it.
It seems that the clock allowed the mixed synchronous/asynchronous con-
trollers to move with a slight `waggle' (just visible in the bottom-right pic-
ture in Figure 3.8), and that this prevented them from being disastrously
fooled by specular sonar re
ections. This suggests that while removing an
enforced clock can widen the repertoire of dynamical behaviours, providing
an optional clock of evolvable frequency to be used under genetic control
at dierent points in the system can expand the repertoire of dynamics still
further. The clock becomes a resource, not a constraint.
5
Historical Note: The idea of making a highly ecient control system for an
autonomous mobile robot by allowing electronic components to interact with
each other (and the environment) more freely than is conventional dates back at
least as far as Grey Walter's electromechanical `tortoises' in 1949 (Holland, 1996).
Then, the active components were thermionic valves and relays, and ingenious
design by hand was used rather than articial evolution.
56 3. Unconstrained Structure and Dynamics
This chapter investigates how the nature of the evolutionary process itself can
be exploited for engineering purposes. In the rst section, a phenomenon orig-
inally observed in molecular evolution { namely, the evolution of insensitivity
to genetic mutations { is explored in the context of engineering GAs. Having
seen that the eect is signicant, the second section describes how it can be
exploited by the engineer to give a tendency for parsimonious solutions, or
solutions robust to certain kinds of variation. A particularly important in-
stance of robustness to variations is fault tolerance, and the remainder of the
chapter goes on to study other evolutionary mechanisms by which it can be
achieved.1
tness(i) = >
<
9
>
5 if h(i) = 4
:
0 otherwise
The `tness landscape' of an evolutionary problem is the assignment of tness
values over the space of all possible genotypes. Here, the tness landscape
consists of two local optima. The rst is a global optimum of 10 for the geno-
type 00000, which is an isolated optimum: all genotypes near it in Hamming
space (within three bit-
ips) give zero tness. The second optimum is for the
sequence 11111, and has the slightly inferior tness of 9, but is surrounded
by a region of medium tness, such that all ve possible 1-bit mutants of the
optimum have tness 5. All other genotypes confer zero tness. To initialise
the population, all of the genotypes were set to the 00000 global optimum,
and then the GA was let to run. Elitism was not used, the population size
was 30, and the bitwise mutation probability was set to give an expectation
of 1:0 mutations per genotype. After 200 generations, the distribution of the
population was measured by counting the number of individuals at each of
h(i) = 0; 1; 2; 3; 4; 5. The measurements were averaged over 100 runs of the
GA.
The results (Figure 4.1) show that the population nearly always moved
away from the isolated global optimum, in favour of the slightly inferior
tness peak, with its surrounding 1-bit mutant region of medium tness. In
the gure, the bar for h(i) = 5 is not the highest, even though the population
is converged around this point, because there is only one possible genotype
(11111) for h(i) = 5, but there are more possibilities for h(i) = 4; 3; 2; 1, as
indicated. The outcome was similar even when the elitism mechanism was
re-introduced, as long as there was more than 10% noise added to the tness
evaluations, or if the two optima were set to be of equal tness.
In this contrived example, the population abandoned the global optimum
in favour of a slightly less-t optimum at which the detrimental eects of
genetic mutations were smaller. Can such a tendency to seek smooth regions
4.1 Insensitivity to Genetic Mutations 59
number of possible
Mean number of different genotypes
individuals
10 1
1
8 1
0 1
6 0 1
0
4 0
0
2
0
0 1 2 3 4 5
Hamming distance h(i) from 00000
Fig. 4.1. Mean population distribution after evolution.
N bits
K (here = 2) epistatic
interactions per bit
0 1 0 0 1 0 1 1 1
Fitness contribution
000 0.23346
001 0.20974
The fitness table for 010 0.97353
each bit is filled with 011 0.77497
random values [0...1] 100 0.98986
101 0.47629
110 0.95221
111 0.03163
that bit in
uences the tness contributions of few other bits. In the limit
of K=0, there is a single global tness optimum with no other local optima.
Conversely, for high values of K a genetic mutation is likely to have a large ef-
fect on tness (`rugged' landscapes). In the limit of K=N-1, a single mutation
changes the tness of a genotype to a value which is completely uncorrelated
with the unmutated tness. For 0 < K < N-1, any particular random land-
scape is likely to have some regions which are more rugged than others, and
the value of K determines on average how rugged it is overall.
The experimental method was as follows. With N=20, a random landscape
was generated for a particular value of K. Starting from a randomly gener-
ated population of 100 genotypes, the basic GA was run for 1000 generations
with a particular selection scheme, mutation rate and single-point crossover
probability. At the end of this run, the ttest individual in the population
was taken, and a check was made that it was at a local optimum with respect
to single mutations. If not, then the GA was started again with a new random
population on a new random landscape until the nal ttest individual was
a local optimum. We now wish to answer the questions, `Is this evolved opti-
mal individual less sensitive to single mutations than one would statistically
expect for a local optimum of this tness, given the current landscape? If so,
by how much?'
4.1 Insensitivity to Genetic Mutations 61
Taking the evolved optimal individual, the mean tness decrease fd caused
by a single mutation was measured, averaged over all N possible single mu-
tations. The algorithm given in Figure 4.3 was then applied to assign new
random tnesses to the single-mutation neighbours of the optimum, but such
that (a) local-optimality is preserved and (b) the statistical correlation be-
tween the tness of the optimum and the tnesses of its single-mutation
neighbours is preserved. If we now re-measure the mean tness decrease fd
caused by single mutations to the optimum, it will (on average) be typical
of an optimum of this tness on a landscape of the current N, K and choice
of in
uencers. The dierence in mutation-sensitivity between the optimum
found through evolution and this random typical optimum of the same tness
is e = fd fd .
For each particular setting of K and the GA parameters, the entire pro-
cedure of the previous two paragraphs was repeated at least 200 times2 and
the values of e averaged to give e. The value e gives the expected dierence
between the tness drop when a single mutation is applied to an evolved op-
timal individual and the tness drop that one would statistically expect on
optima of the same tness under the same conditions. Below, we will express
e as a percentage e^ of the mean tness of the nal optimal solutions found
by the GA (averaged over all the runs). So where a tness drop of k% would
normally be expected on optima of a particular tness when a single muta-
tion is applied, if such optima are found through evolution then the actual
tness drop will only be (k e^)% on average. In summary, e^ is the percentage
of unmutated tness by which the single-mutants of an evolved optimum are
better than one would expect, on average.
This experiment has been performed for over a hundred combinations
of K, mutation rate, crossover probability and selection method. Figure 4.4
2
Often as many as 1000 runs were performed, as deemed necessary by monitoring
the standard error of the nal mean value.
62 4. Parsimony and Fault Tolerance
shows the results for K=9, crossover probability=1.0, using linear rank se-
lection without elitism. e^ increases with the mutation rate until the `error
threshold' is reached: beyond this the mutation rate is too high for the GA
to work properly and both e^ and the actual tness attained decrease. Very
similar results are obtained when the selection method is tness proportional
with linear scaling. It seems to be generally true that e^ peaks at the max-
imum mutation rate for which the GA still works well (before the tness
starts to decrease due to the `error catastrophe'). Fortunately, this maximum
rate of mutation { which depends on the tness landscape and the selection
pressure { is also the mutation rate which would normally be used for best
performance. The maximum e^ observed under any conditions is that seen in
this gure: 11.1%.
For low or high K, the maximum value of e^ is smaller: the eect occurs
most on landscapes of intermediate smoothness/ruggedness, peaking at K=9
in these experiments with N=20. As the crossover probability is reduced
from 1.0, e^ is also reduced, with the maximum value of e^ without crossover
being about half of that with crossover probability 1.0. If elitism was in-
troduced into the rank selection method, then although the tness obtained
by the GA was greatly improved, the maximum e^ was reduced to around a
quarter of what it would otherwise be.
In truncation selection with threshold T , the T % best individuals have
equal probability of reproducing, and the others have zero probability. When
truncation selection was used, e^ was at least as great as for the other selection
methods, and was maximised at the largest value of T that could be used
without the tness suering. Under the particular conditions used, e^ was
maximised at T =60%. As T was reduced to 5%, e^ fell to around a tenth of
its maximum value even though the tness obtained was unaected.
To sum up: for NK landscapes of intermediate smoothness/ruggedness,
and when elitism is not used, evolved optima have been observed to be around
11% less degraded by single mutations than would be statistically expected
for that problem. The GA parameters did not have to be set in an unusual
way to achieve this, although there are common conditions for which the
eect is much attenuated. The magnitude of the eect is not known outside
of the NK model, but it is reasonable to suppose it could be signicant for
many (but not all) implementations of GAs for engineering applications.
12.0
e (%)
10.0
8.0
6.0
4.0
2.0
0.0
0.0 0.2 0.4 0.6 0.8 1.0 1.2 1.4 1.6
mutation rate (expected bits/string)
0.75
Fitness
0.74
0.73
0.72
0.71
0.70
0.69
0.68
0.0 0.2 0.4 0.6 0.8 1.0 1.2 1.4 1.6
mutation rate (expected bits/string)
Fig. 4.4. e^ (top) and the mean tness of evolved optima (bottom) as the bit-
wise mutation probability is varied. K=9, crossover probability=1.0, linear rank
selection, no elitism. The error bars indicate the standard error.
64 4. Parsimony and Fault Tolerance
No Faults
Mean Faulty
Mean
Fitness
Mean Random
much is due to the eect described above, and how much is simply a property
of the DSM architecture. The 32 possible adverse SSA faults were each emu-
lated in turn by writing the opposite value to that specied by the genotype
to the RAM bit in question. For each fault, the DSM was then used to control
the robot (in the virtual environment) for sixteen 90-second runs from the
same starting position, and the average tness was measured to give the data
in the gure. It would be too time-consuming to conduct comparative studies
to ascertain whether the mutation-insensitivity eect really is at play here,
but the results seem consistent with it.
Fault-tolerance and graceful degradation are important. In a harsh envi-
ronment, an inaccessible situation, or a safety critical application, a system
might be required to retain a certain level of ability even if a computer's
memory becomes slightly corrupted, or hardware defects develop. Tolerance
to semiconductor defects also increases both yield and feasible chip size, and
is a necessity for wafer-scale integration (Yasunaga, Masuda, Yagyu, et al.,
1991). Evolution can integrate an ability to function in the presence of faults
into the design itself, rather than relying on the use of spare parts, as is
conventional. If an evolutionary approach to fault-tolerance is to be used,
however, it must operate at the same level of abstraction as the faults to
be tolerated manifest themselves: it would be a mistake to evolve a neural
network to tolerate perturbations to its structure, simulate it on a digital
66 4. Parsimony and Fault Tolerance
computer, and expect the system to cope with failures of the computer {
the simulation program would just crash. This makes hardware evolution a
signicant part of an evolutionary route to fault tolerance, because hardware
defects are often of primary importance.
Graceful degradation with respect to certain faults, arising out of evolved
mutation insensitivity, can be used to augment other means of fault toler-
ance in engineering applications: it arises `for free' out of the nature of the
evolutionary process, without any special measures having to be taken. How-
ever, the eect is limited both in magnitude and in the range of faults to
which it can apply (as determined by the genetic encoding). The next section
considers how evolution can be more explicitly incited to meet pre-specied
fault-tolerance requirements.
without having to test every individual with every fault; fortunately small
errors of prediction are unlikely to be disastrous to the evolutionary process.
To illustrate this idea, we evolve the RAM-based robot controller exam-
ple to give satisfactory wall-avoidance behaviour in the presence of any of
the 32 possible adverse SSA faults in its RAM chip. First, the wall-avoider
was evolved as normal, using the basic GA with rank selection, elitism, and a
population size of 50. After 85 generations the GA had stabilised at a good so-
lution. Then the consensus sequence was generated: the genotype formed by,
for each locus, taking whichever of the values f0, 1g was most common in the
population at that position. The robot controller coded for by this consensus
sequence was then tested in the presence of each of the 32 possible adverse
SSA faults in turn. The fault that caused the consensus individual to behave
the most poorly (lowest tness score) was nominated as the `current fault.'
Another generation of evolution was then performed, but with the current
fault being present during all of the tness evaluations. After this generation
the new consensus individual was constructed, tested, and a (possibly) new
current fault nominated for the next generation. The process continued in
this way, with a single fault being present throughout all evaluations within
a generation { this fault being the one that caused the worst performance in
the consensus individual of the previous generation.3
Figure 4.6 shows that the maximum and mean tnesses dropped sharply
at generation 85 when faults were rst introduced, but over the course of the
next 150 generations returned to high values. Figure 4.8 shows that when
the faults were rst applied the controller was already tolerant to most SSA
faults, but a few were critical. At various stages afterwards, this tolerance to
most SSA faults is lost in the GA's attempts to improve performance on the
single most serious current fault. Some serious faults are seen to persist over
long periods. Eventually, consensus individuals arose that give satisfactory
performance when any of the SSA faults is present.4 Figure 4.7 compares the
fault tolerance of the conventionally-evolved consensus individual at genera-
tion 85 with that of the rst completely-tolerant consensus which arises at
generation 204. The criterion for `satisfactory performance' was for the real
robot to display what would reasonably be called wall-avoiding behaviour,
and corresponds to a tness score of 1:0.
Returning to the general discussion, we can see that this example has
exploited the similarity between individuals in the population by assuming
that a single fault will be the most serious one for all individuals at a par-
ticular generation. This fault was identied by exhaustively testing a single
`average' individual { the consensus. Though this fault-prediction strategy is
3
It may have been better to have taken the consensus of the current generation
rather than of the previous one.
4
In fact, if the GA was left to run, then these completely-tolerant solutions would
be lost again as the GA concentrated entirely on improving performance in the
presence of the current most serious fault { even if that performance was already
satisfactory.
68 4. Parsimony and Fault Tolerance
Fitness
1.60
1.40
1.20
1.00
0.80
0.60
0.40
0.00 100.00 200.00
Generations
Fig. 4.6. Maximum and mean tness in the population over time. The rst 85
generations were in the absence of faults, thereafter all tness evaluations were in
the presence of the `current fault' (see text).
Fitness
1.6
After
1.4
1.2
Satisfactory performance
1.0
0.8
0.6
0.4
Before
0.2
0.0
235
185
Generation
135
not exact, it had the desired eect of catalysing the evolution of a completely
fault-tolerant individual.
Many other strategies could be used to decide which faults an individual
should encounter during its evaluation: the example above is just intended
as a simple illustration. If there were a very large number of possible faults,
exhaustive testing of even just the single consensus individual per genera-
tion could take too long. Following an earlier idea (Thompson, 1995b), an
attempt was made to co-evolve (Hillis, 1992) a population of faults { the
hope being that evolution could be used to maintain a population of faults
that concentrates on the weak-spots of the co-evolving target population and
tracks them over time. Unfortunately, there was not enough correlation be-
tween the positions of the most serious faults for evolution to identify them
more eciently than random search, and the experiment failed. This may be
a general diculty for such techniques, but more investigation is needed.
Another interesting possibility is the use of a steady-state (rather than
generational) GA (Paredis, 1994). Here, for a successful individual to stay in
the population, it must score well in repeated re-evaluations which could be
used to build up gradually an accurate picture of performance in the presence
of a set of faults. The diculty here is that if relatively few out of a large set of
faults are serious, then the population can be dominated by new individuals
that { by chance { have not yet encountered the faults which aect them. A
further embellishment that has proven useful in a similar problem is the use
of a distributed GA (McIlhagga, Husbands, & Ives, 1996).
What has been shown here is that if some way of targeting the most serious
weak-spots of individuals can be found, then subjecting the individuals to
these faults during their tness evaluations can cause the evolution of systems
tolerant to all of the possible faults. This has been demonstrated in evolving
fault-tolerance in the real-world robot controller. It may be possible to use
an adaptive process such as co-evolution to target the weak-spots, or search
using application-specic heuristics may prove more appropriate.
rather than used , but in general this need not be so. This use of evolution as a
corrective mechanism may prove useful when transferring an evolved system
between pieces of hardware having dierent defects, or to cope with slowly
changing faults in the same hardware. In some applications, it may be possi-
ble to have evolution permanently running `in the background,' to cope with
changing component characteristics automatically. This applies to gradual
drift in component properties (or any other system parameters) as much as
to faults, which are just an extreme case. Schneider and Card (1991) report
an analogous situation in which on-line learning of a VLSI neural network
allowed it to compensate for inaccuracies in the silicon. There are practical
diculties with on-line evolution, however, because highly unt individuals
are unavoidably generated with signicant frequency.
4.6 Summary
The tendency for evolution to nd solutions that are relatively unaected
by genetic mutations has been quantied in the context of engineering GAs,
and found to be of a magnitude and applicability worth considering. De-
pending on the genetic encoding scheme, it can be manifested as a pressure
towards parsimonious systems, or as robustness to certain phenotypic varia-
tions. Hardware faults are an extreme instance of such a variation, and some
degree of graceful-degradation can be achieved. Other evolutionary methods
to deal with fault-tolerance requirements more directly were proposed.
Using this tool-box of techniques, systems can be evolved which by the
nature of their design exhibit fault tolerance or graceful degradation. Con-
ventional design methodologies cannot cope with integrating fault tolerance
requirements into the heart of the design process, and must resort to pro-
viding spare parts (redundancy). Evolution, in contrast, can take account of
fault-tolerance considerations at all stages of the (automatic) design process.
72 4. Parsimony and Fault Tolerance
5. Demonstration
In this chapter, the main ideas of the book are seen in action. The congura-
tion of an FPGA is placed under the direct control of unconstrained intrinsic
hardware evolution, and evolved for a simple but non-trivial task. Evolution
solves the problem well, using a surprisingly small region of the FPGA, with
rich structure and dynamics; it is demonstrated that unusual aspects of the
semiconductor physics are exploited. When rst reported (Thompson, 1996c),
this was the rst case of the intrinsic evolution of an FPGA conguration.1
2
Technical Electronics Notes: All of the electronics ts comfortably on a
single wire-wrapped ISA (Industry Standard Architecture) card (Figure 5.2),
and was designed and constructed by the author for this project. The analogue
integrator was of the basic op-amp/resistor/capacitor type, with a MOSFET
to reset it to zero (Horowitz & Hill, 1989). A MC68HC11A0 micro-controller
operated this reset signal (and that of the FPGA), and performed 8-bit A/D
conversion on the integrator output. A nal accuracy of 16 bits in the integrator
reading was obtained by summing (in software) the result of integration over
256 sub-intervals, with an A/D conversion followed by a resetting of the ana-
logue integrator performed after each sub-interval. The same micro-controller
was responsible for the generation of the tones.
Locations in the conguration memory of the FPGA and in the dual-port
RAM used by the the micro-controller could be read and written by the PC via
some registers mapped into the ISA-Bus I/O space. The XC6216 requires some
small but non-trivial circuitry to allow this; the schematics are subject to change
(a -test chip was used in this work), so are not included here, but are available
from the author.
5.1 The Experiment 75
Output Analogue
(to oscilloscope) integrator
Desktop
configuration
PC
XC6216 FPGA
Tone
generator
Fig. 5.1. The apparatus for the tone discriminator experiment. The 10 10 corner
of cells used is shown to scale with respect to the whole FPGA. The single input
to the circuit was applied as the east-going input to a particular cell on the west
edge, as shown. The single output was designated to be the north-going output of
a particular cell on the north edge.
Fig. 5.2. The circuitry to evolve the tone discriminator. This ISA card plugs di-
rectly into the PC, and no extra circuitry is needed. On the left of the board is the
analogue integrator; in the centre is the micro-controller and its dual-port RAM;
on the right is the FPGA (beneath a fan-cooled heatsink) and its interface chips.
76 5. Demonstration
Let the integrator reading at the end of test tone number t be denoted it
(t=1,2,. . . 10). Let S1 be the set of ve 1kHz test tones, and S10 the set of
ve 10kHz test tones. Then the individual's tness was calculated as:
! !
t2S1 t2S10
:973
(5.1)
This tness function demands the maximising of the dierence between the
average output voltage when a 1kHz input is present and the average out-
put voltage when the 10kHz input is present. The calibration constants
k1 and k2 were empirically determined, such that circuits simply connect-
ing their output directly to the input would receive zero tness. Otherwise,
with k1 = k2 = 1:0, small frequency-sensitive eects in the integration of the
square-waves were found to make these useless circuits an inescapable local
optimum.
It is important that the evaluation method { here embodied in the ana-
logue integrator and the tness function (Equation 5.1) { facilitates an evolu-
tionary pathway of very small incremental improvements. Earlier attempts,
where the evaluation method only paid attention to whether the output volt-
age was above or below the logic threshold, met with failure. It should be
recognised that to evolve non-trivial behaviours, the development of an ap-
propriate evaluation technique can also be a non-trivial task.
5.2 Results
Throughout the experiment, an oscilloscope was directly attached to the out-
put pin of the FPGA (see Figure 5.1), so that the behaviour of the evolving
circuits could be visually inspected. Figure 5.3 shows photographs of the os-
cilloscope screen, illustrating the improving behaviour of the best individual
in the population at various times over the course of evolution.
The individual in the initial random population of 50 that happened to get
the highest score produced a constant +5V output at all times, irrespective
of the input. It received a tness of slightly above zero just because of noise.
Thus, there was no individual in the initial population that demonstrated
any ability whatsoever to perform the task.
After 220 generations, the best circuit was basically copying the input to
the output. However, on what would have been the high part of the square
wave, a high frequency component was also present, visible as a blurred thick-
ening of the line in the photograph. This high-frequency component exceeds
the maximum rate at which the FPGA can make logic transitions, so the
output makes small oscillations about a voltage slightly below the normal
logic-high output voltage for the high part of the square wave. After an-
other 100 generations, the behaviour was much the same, with the addition
of occasional glitches to 0V when the output would otherwise have been high.
5.2 Results 77
1kHz 10kHz
IN
0
220
320
3500 2800 2550 2100 1400 1100 650
Fig. 5.3. Photographs of the oscilloscope screen. Top: the 1kHz and 10kHz input
waveforms. Below: the corresponding output of the best individual in the popula-
tion after the number of generations marked down the side.
78 5. Demonstration
Once 650 generations had elapsed, denite progress had been made. For
the 1kHz input, the output stayed high (with a small component of the
input wave still present) only occasionally pulsing to a low voltage. For the
10kHz input, the input was still basically being copied to the output. By
generation 1100, this behaviour had been rened, so that the output stayed
almost perfectly at +5V only when the 1kHz input was present.
By generation 1400, the neat behaviour for the 1kHz input had been
abandoned, but now the output was mostly high for the 1kHz input, and
mostly low for the 10kHz input. . . with very strange looking waveforms. This
behaviour was then gradually improved. Notice the waveforms at generation
2550 { they would seem utterly absurd to a digital designer. Even though this
is a digital FPGA, and we are evolving a recurrent network of logic gates,
the gates are not being used to `do' logic. Logic gates are in fact high-gain
arrangements of a few transistors, so that the transistors are usually saturated
{ corresponding to logic 0 and 1. Evolution does not `know' that this was the
intention of the designers of the FPGA, so just uses whatever behaviour these
high-gain groups of transistors happen to exhibit when connected in arbitrary
ways (many of which a digital designer must avoid in order to make digital
logic a valid model of the system's behaviour). This is not a digital system,
but a continuous-time, continuous valued dynamical system made from a
recurrent arrangement of high-gain groups of transistors { hence the unusual
waveforms.
By generation 2800, the only defect in the behaviour was rapid glitching
present on the output for the 10kHz input. Here, the output polarity has
changed over: it is now low for the 1kHz input and high for 10kHz. This
change would have no impact on tness because of the absolute value signs
in the tness function (Eqn. 5.1); in general it is a good idea to allow evolution
to solve the problem in as many ways as possible { the more solutions there
are, the easier they are to nd.
In the nal photograph at generation 3500, we see the perfect desired
behaviour. In fact, there were infrequent unwanted spikes in the output (not
visible in the photograph); these were nally eliminated at around generation
4100. The GA was run for a further 1000 generations without any observable
change in the behaviour of the best individual. The nal circuit (which I will
arbitrarily take to be the best individual of generation 5000) appears to be
perfect when observed by eye on the oscilloscope. If the input is changed from
1kHz to 10kHz (or vice-versa), then the output changes cleanly between a
steady +5V and a steady 0V without any perceptible delay.
Graphs of maximum and mean tness, and of genetic convergence, are
given in Figure 5.4. These graphs suggest that some interesting population
dynamics took place, especially at around generation 2660. The experiment is
analysed in depth from an evolution-theoretic perspective in work carried out
jointly with Inman Harvey and reported in (Harvey & Thompson, 1997); I
will not describe that research here. Crucial to any attempt to understand the
5.2 Results 79
0.60 300
0.40 200
0.20 100
0.00
0
0 1000 2000 3000 4000 5000 0 1000 2000 3000 4000 5000
evolutionary process that took place is the observation that the population
had formed a genetically converged `species' before tness began to increase:
this is contrary to conventional GA thinking, but at the heart of SAGA
theory (Section 2.4.2). Evolution was the process of continual adaptation of
this relatively converged species, with genetic mutation playing a key role in
generating new variants.
The entire experiment took 2{3 weeks. This time was dominated by the
ve seconds taken to evaluate each individual, with a small contribution from
the process of calculating and saving data to aid later analysis. The times
taken for the application of selection, the genetic operators, and to congure
the FPGA were all negligible in comparison. It is not known whether the
experiment would have succeeded if the individuals had been evaluated for
shorter periods of time { tness evaluations should be just accurate enough
that the small incremental improvements in performance that facilitate evolu-
tion are not swamped by noise. An interesting aspect of hardware evolution is
that very high-speed tasks can be tackled, for instance in the pattern recog-
nition or signal processing domains, where tness evaluation { and hence
evolution { can be very rapid. The recognition of audio tones, as in this ex-
periment, is a long duration task in comparison to many of these, because
it is reasonable to expect that the individuals will need to be evaluated for
many periods of the (slow) input waveforms, especially in the early stages of
evolution. The author was engaged in a dierent project while the experiment
was running, so it consumed no human time.
80 5. Demonstration
5.3 Analysis
The nal circuit is shown in Figure 5.5; observe the many feedback paths.
No constraining preconceptions were imposed on the circuit, so evolution was
given the freedom to explore the full space of possible designs. A bias in the
encoding scheme favouring the use of repeated structures, though potentially
helpful in other scenarios, would have been inappropriate for such a small
circuit in this application.
Out
In
Fig. 5.5. The nal evolved circuit. The 10 10 array of cells is shown, along with all
connections that eventually connect an output to an input. Connections driven by a
cell's function output are represented by arrows originating from the cell boundary.
Connections into a cell which are selected as inputs to its function unit have a small
square drawn on them. The actual setting of each function unit is not indicated in
this diagram.
5.3 Analysis 81
Parts of the circuit that could not possibly aect the output can be pruned
away. This was done by tracing all possible paths through the circuit that
eventually connect to the output. A `path' not only includes wires, but also
passing from an input to the output of a cell's function unit. It was assumed
that all of a function unit's inputs could aect the function unit output, even
when the actual function performed meant that this should not theoretically
be the case. This assumption was made because it is not known exactly
how function units connected in continuous-time feedback loops actually do
behave. In Figure 5.6, cells and wires are only drawn if there is a connected
path by which they could possibly aect the output, which leaves only about
half of them.
Out
In
Fig. 5.6. The pruned circuit diagram: cells and wires are only drawn if there is a
connected path through which they could possibly aect the output.
82 5. Demonstration
Out
In
Fig. 5.7. The functional part of the circuit. Cells not drawn here can be clamped
to constant values without aecting the circuit's behaviour { see main text.
provided, even being able to exploit the subtle interactions between adjacent
components that are not directly connected. The input/output behaviour
of the circuit is a digital one, because that is what maximising the tness
function required, but the complex analogue waveforms seen at the output
during the intermediate stages of evolution betray the rich continuous-time
continuous-value dynamics that are likely to be internally present.3
Only a core of 32 out of the 100 cells is involved in generating the be-
haviour, even though there was nothing explicitly to encourage small solu-
tions. The previous chapter provided a possible explanation: solutions will
3
It has been suggested (Johnson, 1996) that `The Laws of Form' (Spencer-Brown,
1969) could help in the analysis of this type of circuit. This is currently an
unsubstantiated possibility.
84 5. Demonstration
tend to be favoured for which the deleterious eect of genetic mutations is,
on average, small. One way for that to happen here is for few of the cells
to be implicated in the behaviour: mutations to the parts of the genotype
coding for the unused cells will have no eect on tness (except perhaps for
the cells immediately surrounding the functional core). It is not known if
this mechanism was in fact the cause of the circuit's impressive parsimony.
As noted in Section 4.2, if there is a pressure towards parsimony, then there
need be no fear that evolution will construct inecient circuits if given far
more components (FPGA cells) than are necessary. It was suggested that
networks of mutations that are neutral with respect to tness, percolating
large distances through genotype space, can be facilitated by the presence of
surplus components. Such `neutral networks' can vastly improve the perfor-
mance of an EA like SAGA. It is noticeable that in this experiment, evolution
did not become trapped at a local optimum of poor tness, which is contrary
to common expectations of the performance of a GA under these experimen-
tal conditions. See Harvey and Thompson (1997) for further consideration of
this issue.
So far, we have only considered the response of the circuit to the two
frequencies it was evolved to discriminate. How does it behave when other
frequencies of square wave are applied to the input? Figure 5.8 shows the av-
erage output voltage (measured using the analogue integrator over a period
of 5 seconds) for input frequencies from 31.25kHz to 0.625kHz. For input
frequencies 4.5kHz the output stays at a steady +5V, and for frequen-
cies 1.6kHz at a steady 0V. Thus, the test frequencies (marked F1 and
F2 in the gure) are correctly discriminated with a considerable margin for
error. As the frequency is reduced from 4.5kHz, the output begins to rapidly
pulse low for a small fraction of the time; as the frequency is reduced further
the output spends more time at 0V and less time at +5V, until nally resting
at a steady 0V as the frequency reaches 1.6kHz. These properties might be
considered `generalisation.'
5.4 Interpretation
The results described in this chapter represent the state of the art in intrinsic
hardware evolution at the time of writing. The circuit is small, but denitely
not trivial. For a human designer to solve this problem using only 32 cells
(each with a propagation delay less than 5ns), and no external components at
all, would be very dicult indeed (if feasible at all). There was no indication
that an upper bound on the complexity of circuits that can be evolved was
being approached, even using a very basic GA (within the SAGA framework),
and using direct genetic encoding (no restrictions or biases to incorporate
domain-specic knowledge). The nal circuit occupied only 1% of the total
area of the FPGA, possibly because of the mutation-insensitivity eect of the
previous chapter, so there is great potential. One can only speculate about the
5.4 Interpretation 85
F1 F2
5.0V
Average
output
voltage
2.5V
0.0V
0 0.2 0.4 0.6 0.8 1.0 1.2 1.4 1.6
Input period (ms)
Fig. 5.8. The frequency response of the nal circuit. F1 and F2 are the two frequen-
cies that the circuit was evolved to discriminate; in fact, for ease of implementation,
they happen to be of period 0.096ms (10.416kHz) and 0.960ms (1.042kHz) respec-
tively, rather than exactly 10kHz and 1kHz as mentioned in the main text.
abilities of the entire chip, when used with a process of incremental intrinsic
unconstrained hardware evolution (Section 2.4.2).
The circuit vividly demonstrates the power of unconstrained intrinsic
hardware evolution. With a freedom to explore rich structures and dynam-
ics, intrinsic evolution has been able to exploit the natural behaviours arising
from the physics of the device. It has even been proven that interactions be-
tween components that a designer would consider to be spurious or parasitic
have been put to use in achieving the desired overall behaviour. There is a
practical diculty, though. Some properties of the device are not constant
over time, or between nominally identical chips. If these properties are used in
generating the behaviour, the evolved circuit could stop working when they
vary. This issue is the main subject of the next chapter, which also goes on
to consider application domains.
86 5. Demonstration
6. Future Work
circuit to be t, it must cope with the full variety of conditions under which
it is tested.
The apparatus is not prohibitively dicult to build, and the speed of
evolution would not be reduced because the multiple FPGA chips can be
used to carry out tness evaluations in parallel. It will not be possible to test
the individuals under every possible combination of VLSI process variations
and external parameter variations, nor is this necessary. What is required is
testing under a sucient spectrum of combinations so that it is easier for the
evolving circuits to generalise over them than to become specially tuned to
the particular set of combinations that is present on the chips used. Empirical
investigations will be needed to determine the practicalities of this.
There are two preliminary and inconclusive indications that the method I
have just proposed could work. The rst is the observation that when oscilla-
tors were evolved on an FPGA (Section 3.3.2) in an evolutionary run lasting
only about ve minutes, the resulting circuits were extremely sensitive to tem-
perature variations. So too were the circuits evolved in the early stages of the
tone-discriminator experiment (Chapter 5). However, by the end of the tone-
discriminator run, the circuits operated perfectly over the full 5C range of
temperatures that the evolving population had encountered due to night/day
and sun/cloud temperature cycling during the two-week experiment.
Taking the nal evolved tone-discriminator, Figure 6.1 repeats the fre-
quency response measurement originally shown in Figure 5.8, but this time
at high and low temperatures outside of the range that prevailed during evo-
lution. The high temperature was achieved by placing a 60W light-bulb near
the chip, the low temperature by opening all of the laboratory windows on a
cool breezy evening. Varying the temperature moves the frequency response
curve to the left or right, so once the margin for error is exhausted the circuit
no longer behaves perfectly to discriminate between F1 and F2.
In the examples given here, at 43:0C the output is not steady at +5V
for F1, but is pulsing to 0V for a small fraction of the time. Conversely, at
23:5C the output is not a steady 0V for F2, but is pulsing to +5V for a small
fraction of the time. However, despite the fact that the only time-reference
that the system has is the natural dynamical behaviour of the components {
which is temperature dependent { the circuit operates perfectly over the 10C
range of temperatures to which the population was exposed during evolution.
Taken together, these observations are suggestive { and nothing more {
that circuits will evolve to operate correctly over the range of temperatures
to which they have been exposed during tness evaluations.
The second indication comes from taking the nal population of the tone-
discriminator experiment (generation 5000), and using it to congure a com-
pletely dierent 1010 region of the same FPGA chip, as shown in Figure 6.2.
When used to congure this new region, the individual in the population that
was ttest at the old position deteriorated by 7%. However, there was an-
other individual in the population which, at the new position, was within
6.1 Engineering Tolerances 89
F1 F2
5.0V
Average
output 31.2 Case temperature
voltage 43.0 23.5 (Celsius)
2.5V
0.0V
0 0.2 0.4 0.6 0.8 1.0 1.2 1.4 1.6
Input period (ms)
Fig. 6.1. The frequency response of the evolved tone-discriminator, measured at
three dierent temperatures.
Output Analogue
(to oscilloscope) integrator
configuration Desktop
PC
XC6216 FPGA
Tone
generator
0.1% of perfect tness. Evolution was allowed to continue at the new posi-
tion and after only 100 generations, perfect performance was regained. When
this new population was moved back to the original region of silicon, again
the transfer reduced the tness of the individual that used to be ttest, but
there was another individual in the population that behaved perfectly there.
The ease with which evolution was able to adapt the circuits to a com-
pletely dierent region of the FPGA is suggestive { and nothing more { that
when tness evaluations measure the ability to perform on a wide range of
dierent chips, evolution will be able to nd a single circuit that works on all
of them. One way to reduce the number of FPGA devices needed to induce
generalisation over all chips of a particular type is to use translations and/or
rotations of the circuits upon the same FPGA, as in the experiment above.
Inducing evolution to produce circuits dealing with `engineering toler-
ances,' by actually subjecting the evolving circuits to the conditions with
which they are to cope, gives the maximum opportunity for the stable prop-
erties of the medium to be exploited. In contrast, the design constraints
discussed in Chapter 3 cope with engineering tolerances by precluding large
swathes of the natural behaviour of the medium from being put to use in
achieving the behaviour, in a far more indiscriminate manner.
It is quite possible that the scheme proposed above will prove to be im-
practical for some reason, and in the absence of an alternative it may become
necessary to impose constraints on evolution to ensure sucient robustness
of the evolved circuits. But this will be a matter of adjusting a trade-o
between exploitation and tolerance to variations, and will not be embroiled
with the abstraction issues (and their supporting constraints) that are inher-
ent in conventional design methodologies: more of the natural abilities of the
medium will still be able to shine through. For example, the highly stable
signal from an o-chip crystal oscillator could be provided to the evolving
circuits as an extra input. The evolved circuits would be free to ignore it,
but could use it to stabilise their dynamics if the selection pressure towards
robustness { resulting from the evaluations in dierent conditions { justied
it. The crystal oscillator would truly be a `timegiver' (Moore-Ede, Sulzman,
& Fuller, 1982), and would not be an enforced constraint on the circuit's dy-
namics as is the clock in synchronous digital design. Indeed, the experiments
with the DSM robot controller (Section 3.3.3) showed how a clock provided
as a resource , rather than as a constraint, can actually enrich the available
dynamics.
There is currently no evidence to suggest that the scheme given above for
completely unconstrained evolution will not succeed: the preliminary results
are promising, and the rewards would be great { the full power of uncon-
strained intrinsic hardware evolution would be a commercial practicality.
6.2 Applications 91
6.2 Applications
The application niches of intrinsic hardware evolution are those for which a
highly ecient custom circuit is desirable, but conventional design methods
are found to be inadequate. Characteristics of suitable applications might
be high speed, small size, fault-tolerance, graceful degradation, low power,
low cost, and low component count (high mechanical robustness). What are
currently considered `neural-network' applications are good targets, because
intrinsically evolved circuits may be able to out-perform neural-network im-
plementations on the above criteria. The ability to distribute the circuit on
a
oppy-disk, the internet, or other electronic media, as a conguration for
an o-the-shelf FPGA { with its economies of scale { could broaden the
commercial opportunities.
Of particular interest are very high-speed tasks, where the tness evalu-
ations can be very short, allowing evolution to progress rapidly. High-speed
signal-processing (Sharman, Esparcia-Alcazar, & Li, 1995; Esparcia-Alcazar
& Sharman, 1996) and pattern recognition are promising areas, where a real-
time intrinsic hardware evolution tness evaluation could take just a fraction
of a second. The tone-discriminator experiment of the previous chapter was
a step in this direction, but still relatively slow compared to video image
recognition, for instance.
To exemplify some other application domains, consider intrinsically evolv-
ing a circuit to control an autonomous mobile robot. Even though the task is
of long duration, with the tness evaluations possibly taking minutes, there
are still niches for hardware evolution. Typically, evolutionary roboticists
evolve neural networks simulated in software. But what if the robot is to be
very small, or consume very little battery power, or be highly fault-tolerant
(perhaps the robot is subject to nuclear radiation on a space mission)? Fig-
ure 6.3 shows that intrinsic hardware evolution is possible, even onboard the
`Khepera' miniature robot, which is a commonly used tool in evolutionary
robotics (Mondada & Floreano, 1996).
A simple wall-avoidance behaviour has been evolved for this robot, with
a tness evaluation measuring the behaviour of the real robot moving in the
real world, being controlled by a real genetically specied circuit instanti-
ated in the onboard XC6216 FPGA. The GA was run on a o-board PC
attached to the robot by a serial cable during evolution, which could later
be disconnected. The PC received reports of the Khepera's wheel speeds,
and the tness function was simply to maximise the forward speed of each
wheel. This involves not getting stuck on walls, so a wall-avoiding behaviour
evolved. This is the rst intrinsically evolved FPGA controller for a robot.
Naito et al. (1996) describe a very similar experiment, but with the evolving
logic circuits implemented in a software simulation.
92 6. Future Work
Fig. 6.3. The miniature Khepera robot. The top two layers are an FPGA extension
turret allowing onboard intrinsic hardware evolution of electronic control systems.
They were designed by the author, and constructed in collaboration with the Xilinx
Development Corp.
The fact that intrinsic hardware evolution can be carried out even on-
board this tiny robot illustrates that its benets { based around extreme
eciency through eective exploitation of the silicon { can be brought to
most applications where articial evolution is an appropriate technique.
7. Conclusion
This book has aimed to lay the foundations for the new eld of intrinsic
hardware evolution, by investigating the relationships with existing knowl-
edge: conventional electronics design, and natural evolution. The former is a
dierent process in the same medium, and the latter is a similar process in a
dierent medium. They are both rich sources of techniques and inspiration,
but intrinsic hardware evolution is a new combination of process and medium,
and its full potential can only be realised by exploring the new forms that
are natural to it.
Whether or not the potentially great engineering benets of fully uncon-
strained intrinsic hardware evolution turn out to be completely realisable in
practical applications (Chapter 6), the fundamental groundwork developed
herein must provide the basis for the future development of the eld.
96 7. Conclusion
Appendix A.
Circuit Diagram of the DSM Evolvable
Hardware Robot Controller
This appendix gives the circuit diagram mentioned in Section 3.3.3. Other
hardware details of the `Mr Chips' robot are available from the author: they
are a matter of conventional digital design, so are not of direct importance
to this book.
With reference to the DSM circuit diagram, Figure A.1, the circuit func-
tions as follows. The RAM chip is in fact a MS6130 1k8 dual-port RAM.
One port is used to provide read/write access for the PC, and the other
supports the feedback connections of the DSM. The `Genetic Latches' are
implemented by 74HCT4053 analogue switches, which { depending on their
control bits { select signals either directly, or after they have passed through
one of the 74HCT273 latches driven by the genetically specied clock. A sepa-
rate pair of 74HCT273 registers, which can be written to by the PC, are used
to hold these switch settings. The clock of genetically specied frequency is
generated by a MC68HC811E2 micro-controller (not shown), referenced to
its crystal oscillator by way of a real-time interrupt service routine.
RIGHT SONAR PULSE-TRAIN
Fig. A.1. Circuit diagram for the DSM evolvable hardware robot controller.
98
LEFT SONAR PULSE-TRAIN
SQUARE-WAVE CLOCK
(OF GENETICALLY SPECIFIED FREQUENCY)
1 &
3 1 & 1
ENABLE THE DSM TO RUN 2 3 APPLY POWER TO CLR
LEFT MOTOR 11
2 CLK
74HCT00 2 3
74HCT08 1Q 1D
5 4
2Q 2D
+5V 1 6 7
L 3 = 1:74965
L 4 = 0:162305
L 5 = 0:996823
L = 0:534553
bL = 5:00000
R 1 = 0:899570
R 2 = 0:141250
R 3 = 1:00410
R 4 = 0:0234597
R 5 = 2:45655
R = 0:660710
bR = 5:00000
There is signicant asymmetry in the model: with the wheels spinning at
the same speed in the air, if the robot was placed on the ground it did not
move in a straight line.
= sin rt
However, if the re
ecting surface is very smooth, then the diuse re
ection
will be too weak to be detected, and the sound will take a longer path af-
ter the specular re
ection, nally arriving back at the sonar transducer after
re
ecting o more than one surface. The walls of the robot's arena were
quite smooth, and specular re
ections were common. The physics of sound
(Rayleigh, 1929, pages 89{96) was not found to be a good predictor of this
eect.
Instead, an empirically determined model for the probability of a specular
re
ection as a function of the angle of incidence was formulated. A stochastic
approach was necessary, because the eect was found to be highly dependent
on tiny variations in the texture of the walls. If the angle of incidence was i
radians from the normal, then the probability p of a specular re
ection was
given by:
p = 0:833 if i > 0:698 (B.6)
p = max(0:0; 1:91i 0:417) otherwise
Three rays were traced out from the sonar transducer until each met with
an arena wall, and Equation B.6 was then used to decide if there would be a
specular re
ection for any rays. The range was taken to be the path length of
the shortest ray giving a diuse re
ection. If the beam within the envelope of
rays contained a corner of the arena, then this always gave a diuse re
ection.
If all three rays underwent specular re
ection, then the centre ray was traced
on from the re
ecting surface to the second surface it met. The range was
then deemed to be this total path length. In a similar way to the motor
model, bounded Gaussian noise was added to the range readings according
to the empirically determined error between the model and reality. The noise
on the crude model of multiple re
ections was much greater than the noise
added if one of the rays returned a diuse re
ection from the rst surface.
The noise for when the robot was moving was also treated separately to when
it was stationary. The sonar time of
ight was proportional to the range, and
this time was given to the micro-controller which was synthesising the sonar
echo waveforms being fed into the DSM.
A large amount of eort went into the construction of this simulation.
The test of adequacy of the simulation is for a control system evolved in the
virtual world to work similarly in reality with the real sonars connected. Fig-
ure 3.8 shows that the models described here were adequate for this particular
behaviour and environment.
102 B. Details of the Simulations used in the `Mr Chips' Robot Experiment
References
Harvey, I., Husbands, P., & Cli, D. (1994). Seeing the light : Articial evolu-
tion, real vision. In Cli, D., et al. (Eds.), From Animals to Animats 3:
Proc. 3rd Int. Conf. on simulation of adaptive behaviour, pp. 392{401.
MIT Press.
Harvey, I., & Thompson, A. (1997). Through the labyrinth evolution nds
a way: A silicon ridge. In Higuchi, T., & Iwata, M. (Eds.), Proc. 1st
Int. Conf. on Evolvable Systems: From Biology to Hardware (ICES`96),
Vol. 1259 of LNCS, pp. 406{422. Springer-Verlag.
Hemmi, H., Mizoguchi, J., & Shimohara, K. (1994). Development and evolu-
tion of hardware behaviours. In Brooks, R., & Maes, P. (Eds.), Articial
Life IV: Proc. 4th Int. Workshop on the Synthesis and Simulation of
Living Systems, pp. 371{376. MIT Press.
Hemmi, H., Mizoguchi, J., & Shimohara, K. (1996a). Development and evo-
lution of hardware behaviours. In Sanchez, E., & Tomassini, M. (Eds.),
Towards Evolvable Hardware: The evolutionary engineering approach,
Vol. 1062 of LNCS, pp. 250{265. Springer-Verlag.
Hemmi, H., Mizoguchi, J., & Shimohara, K. (1996b). Evolving large scale
digital circuits. In Langton, C. (Ed.), Articial Life V: Proc. 5th Int.
Workshop on the Synthesis and Simulation of Living Systems, pp. 168{
173. Cambridge, MA: MIT Press.
Higuchi, T., & Hirao, Y. (1995). Evolvable hardware with genetic learning.
In Proc. 2nd Workshop on Synthetic Worlds - Modelizations, Practices,
Societal Impacts Paris.
Higuchi, T., Iba, H., & Manderick, B. (1994a). Applying evolvable hardware
to autonomous agents. In Davidor, Y., Schwefel, H.-P., & Manner, R.
(Eds.), Proc. Parallel Problem Solving from Nature (PPSN) III, Vol.
866 of LNCS, pp. 524{533. Springer-Verlag.
Higuchi, T., Iba, H., & Manderick, B. (1994b). Evolvable hardware. In
Kitano, H. (Ed.), Massively Parallel Articial Intelligence, pp. 195{217.
MIT Press.
Higuchi, T., Iwata, M., Kajitani, I., et al. (1996a). Evolvable hardware and
its application to pattern recognition and fault-tolerant systems. In
Sanchez, E., & Tomassini, M. (Eds.), Towards Evolvable Hardware, Vol.
1062 of LNCS, pp. 118{135. Springer-Verlag.
Higuchi, T., Iwata, M., Kajitani, I., et al. (1996b). Evolvable hardware with
genetic learning. In Proc. of the IEEE Int. Symp. on Circuits and
Systems (ISCAS96) Atlanta, USA.
Higuchi, T., & Iwata, M. (Eds.). (1997). Proc. 1st Int. Conf. on Evolvable
Systems: From Biology to Hardware (ICES`96). Vol. 1259 of LNCS.
Springer-Verlag.
Higuchi, T., Niwa, T., Tanaka, T., et al. (1993a). Evolving hardware with
genetic learning: A rst step towards building a Darwin Machine. In
Proc. 2nd Int. Conf. on the Simulation of Adaptive Behaviour 1992
(SAB92), pp. 417{424. MIT Press.
108 REFERENCES
Higuchi, T., Niwa, T., Tanaka, T., et al. (1993b). A parallel architecture for
genetic based evolvable hardware. In Proc. 13th Int. Joint Conf. on
Articial Intelligence (IJCAI93), Workshop on Parallel Processing for
Articial Intelligence, pp. 46{52.
Hikage, T., Hemmi, H., & Shimohara, K. (1996). Hardware evolution with
genetic diversity. In Langton, C. (Ed.), Articial Life V: Proc. 5th Int.
Workshop on the Synthesis and Simulation of Living Systems, p. 191
(poster paper). Cambridge, MA: MIT Press.
Hill, A. M., & Kang, S.-M. (1994). Genetic algorithm based design opti-
mization of CMOS VLSI circuits. In Davidor, Y., Schwefel, H.-P., &
Manner, R. (Eds.), Proc. Parallel Problem Solving from Nature (PPSN)
III, Vol. 866 of LNCS, pp. 546{555. Springer-Verlag.
Hillis, W. D. (1992). Co-evolving parasites improve simulated evolution as
an optimization procedure. In Langton, C., et al. (Eds.), Articial Life
II, pp. 313{324. Addison-Wesley.
Hirst, A. J. (1996a). Evolving adaptive computer systems. In
Proc. 1st On-line Workshop on Soft Computing (WSC1). See
http://www.bioele.nuee.nagoya-u.ac.jp/wsc1/.
Hirst, A. J. (1996b). Notes on the evolution of adaptive hardware. In Parmee,
I. (Ed.), Proc. 2nd Int. Conf. on Adaptive Computing in Engineering
Design and Control (ACEDC96). Univ. of Plymouth UK.
Holland, J. H. (1975). Adaptation in Natural and Articial Systems. Ann
Arbor: University of Michigan Press.
Holland, O. (1996). Grey Walter: the pioneer of real articial life. In Langton,
C. (Ed.), Articial Life V: Proc. 5th Int. Workshop on the Synthesis
and Simulation of Living Systems, pp. 16{23. Cambridge, MA: MIT
Press.
Horowitz, P., & Hill, W. (1989). The Art of Electronics (2nd edition). Cam-
bridge University Press.
Horrocks, D. H., & Khalifa, Y. M. A. (1994). Genetically derived lter circuits
using preferred value components. In Proc. IEE Colloq. on Analogue
Signal Processing, pp. 4/1 { 4/5 Oxford, UK.
Horrocks, D. H., & Khalifa, Y. M. A. (1995). Genetically evolved FDNR
and leap-frog active lters using preferred component values. In Proc.
Eur. Conf. on Circuit Theory and Design (ECCTD'95), pp. 359{362
Istanbul, Turkey.
Horrocks, D. H., & Khalifa, Y. M. A. (1996). Genetic algorithm de-
sign of electronic analogue circuits including parasitic eects. In
Proc. 1st On-line Workshop on Soft Computing (WSC1). See
http://www.bioele.nuee.nagoya-u.ac.jp/wsc1/.
Horrocks, D. H., & Spittle, M. C. (1993). Component value selection for
active lters using genetic algorithms. In Proc. IEE/IEEE Workshop
on Natural Algorithms in Signal Processing, Vol. 1, pp. 13/1 { 13/6
Chelmsford, UK.
REFERENCES 109
Husbands, P., Harvey, I., & Cli, D. (1995). Circle in the round: State space
attractors for evolved sighted robots. Robotics and Autonomous Sys-
tems, 15, 83{106.
Huynen, M. A., & Hogeweg, P. (1994). Pattern generation in molecular
evolution: Exploitation of the variation in RNA landscapes. J. Mol.
Evol., 39, 71{79.
I-Cube, Inc. (1996). IQX family data sheet. See http://www.icube.com.
IMP, Inc. (1996). IMP50E10 EPAC programmable analog signal-conditioning
circuit: Datasheet. See http://www.impweb.com.
Intel Corp. (1993). 80170NX Electrically Trainable Analog Neural Network.
Data-sheet 290408-003.
Iwata, M., Kajitani, I., Yamada, H., et al. (1996). A pattern recognition
system using evolvable hardware. In Voigt, H.-M., et al. (Eds.), Par-
allel Problem Solving from Nature IV: Proc. of the Int. Conf. on Evo-
lutionary Computation, Vol. 1141 of LNCS, pp. 761{770. Heidelberg:
Springer-Verlag.
Jakobi, N. (1996a). Encoding scheme issues for open-ended articial evo-
lution. In Voigt, H.-M., et al. (Eds.), Parallel Problem Solving From
Nature IV: Proc. of the Int. Conf. on Evolutionary Computation, Vol.
1141 of LNCS, pp. 52{61. Heidelberg: Springer-Verlag.
Jakobi, N. (1996b). Facing the facts: Necessary requirements for the arti-
cial evolution of complex behaviour. CSRP 422, COGS, University of
Sussex, UK.
Johnson, R. C. (1996). Robot `evolves' without programming | FPGAs
controlled by genetic algorithm develop new functions. Electronic En-
gineering Times. Issue 854 (June 6th), p.42.
Kajitani, I., Hoshino, T., Iwata, M., et al. (1996). Variable length chromo-
some GA for evolvable hardware. In Proc. 1996 IEEE Int. Conf. on
Evolutionary Computation (ICEC96), pp. 443{447 Nagoya, Japan.
Kan, W., & Aleksander, I. (1989). A probabilistic logic neuron network
for associative learning. In Aleksander, I. (Ed.), Neural Computing
Architectures: The design of brain-like machines, pp. 156{171. North
Oxford Academic.
Kauman, S. A. (1993). The Origins of Order. Oxford University Press.
Kernighan, B. W., & Lin, S. (1970). An ecient heuristic procedure for
partitioning graphs. Bell System Technical Journal, 49 (2).
Kinget, P., Steyaert, M., & van der Spiegel, J. (1992). Full analog CMOS
integration of very large time constants for synaptic transfer in neural
networks. Analog Integrated Circuits and Signal Processing, 2 (4), 281{
295.
Kitano, H. (1990). Designing neural networks using genetic algorithms with
graph generation system. Complex Systems, 4, 461{476.
110 REFERENCES
Oldeld, J. V., & Dorf, R. C. (1995). Field Programmable Gate Arrays:
Recongurable logic for rapid prototyping and implementation of digital
systems. Wiley.
Oldeld, J. V., & Kappler, C. J. (1991). Implementing self-timed systems:
Comparison of a congurable logic array with a full-custom VLSI cir-
cuit. In Moore, W. R., & Luk, W. (Eds.), FPGAs, pp. 324{331. Abing-
don EE&CS Books, Abingdon, UK.
Paredis, J. (1994). Steps towards co-evolutionary classication neural net-
works. In Brooks, R., & Maes, P. (Eds.), Articial Life IV: Proc. 4th
Int. Workshop on the Synthesis and Simulation of Living Systems, pp.
102{108. MIT Press.
Payne, R. (1995). Self-timed FPGA systems. In Moore, W., & Luk, W. (Eds.),
Proc. 5th Int. Workshop on Field-Programmable Logic and Applications
(FPL'95), Vol. 975 of LNCS. Springer-Verlag.
Prosser, F. P. R., & Winkel, D. W. (1986). The Art of Digital Design : an
introduction to top-down design (2nd edition). Prentice-Hall Englewood
Clis.
Prusinkiewicz, P., & Lindenmayer, A. (1990). The algorithmic beauty of
plants. New York: Springer-Verlag.
Rasmussen, S., Knudsen, C., & Feldberg, R. (1991). Dynamics of pro-
grammable matter. In Langton, C. G., et al. (Eds.), Articial Life
II, SFI Studies in the Sciences of Complexity, Vol. X, pp. 211{253.
Addison-Wesley.
Ray, T. S. (1995). An evolutionary approach to synthetic biology: Zen and
the art of creating life. In Langton, C. G. (Ed.), Articial Life: An
overview, pp. 179{209. MIT Press.
Rayleigh (1929). Theory of Sound, Vol. II. Macmillan & Co., Ltd.
Sanchez, E., & Tomassini, M. (Eds.). (1996). Towards Evolvable Hardware:
The evolutionary engineering approach, Vol. 1062 of LNCS. Springer-
Verlag.
Schnecke, V., & Vornberger, O. (1995). Genetic design of VLSI-layouts. In
Proc. 1st IEE/IEEE Int. Conf. on Genetic Algorithms in Engineering
Systems: Innovations and Applications (GALESIA'95), pp. 430{435.
IEE Conf. Publication No. 414.
Schneider, C., & Card, H. (1991). Analog VLSI models of mean eld net-
works. In Delgado-Frias, J. G., & Moore, W. R. (Eds.), VLSI for Ar-
ticial Intelligence and Neural Networks. Plenum Press, New York.
Schwefel, H.-P., & Rudolph, G. (1995). Contemporary evolution strategies.
In Moran, F., et al. (Eds.), Advances in Articial Life: Proc. 3rd Eur.
Conf. on Articial Life, Vol. 929 of LNAI, pp. 893{907. Springer-Verlag.
Scott, S. D., Samal, A., & Seth, S. (1995). HGA: A hardware-based genetic al-
gorithm. In Proc. ACM/SIGDA 3rd Int Symp. on Field-Programmable
Gate Arrays, pp. 53{59.
114 REFERENCES