BIOLOGICAL INSPIRATION FOR COMPUTING 265
These characteristics are easily obtained by biology and are increasingly true for certain artifacts
that result from today’s chip fabrication technologies. A metaphor with some resonance is that of
“paintable” computers—a paint that can be applied to a surface, in which are suspended millions of
computing and MEMS-like entities that communicate with each other and interact with the surface on
which they are painted. (MEMS is an acronym for microelectromechanical systems.)
The vision presented by Abelson et al.^54 is that smart materials may reduce the need for strength
and precision in mechanical and electrical apparatus, through the application of computation. For
example, coating a building or a bridge with “smart paint’’ may enable it to report on traffic loads and
wind loads, to monitor the integrity of the structure, to resist buckling, or to heal small cracks by shifting
material around. A different kind of smart paint may make it possible to build clean rooms with “active
skins,” lined with cilia that can push dirt and dust into a corner for removal. Still other paints may
enable walls that sense vibration or actively cancel noise. “Smart dust,” with light sensors in each
particle, could be spread over a wide area to recognize shadows or other traffic passing overhead.
In short, the hope is to create systems with unprecedented responsiveness to their environment.
Abelson et al. further argue that the study of amorphous computing has implications for software
design in a more general sense. Specifically, a software problem has long been recognized—the depen-
dence of greater functionality of software on increasingly complex software packages and systems.
Today, software is mostly developed “by hand,” and each line is individually coded. One obtains a high
degree of detailed control in this manner, but reliably abstracting the higher-level behavior of a software
system so developed is highly problematic. Principles of amorphous computing may enable a more top-
down specification of systems that more closely tracks how humans define the functionality they wish
to obtain from software.
Amorphous computing may be applicable to fabrication as well. For example, consider amorphous
computing entities that are capable of some mechanical interaction with the substrate on which they are
painted (e.g., they might expand or contract in certain directions). Nagpal has demonstrated the feasi-
bility of an amorphous computing substrate that is capable of pattern formation (Box 8.1); if the entities
making up this formation have the mechanical property described, it is conceivable that they might be
able to warp a sheet onto which they were painted into a three-dimensional structure.
It is also conceivable that the vision described in amorphous computing and other approaches to
that area could be extended so that appropriately configured microentities could be programmed to
self-assemble into useful physical structures on the nanoscale. These structures might be useful to end
users in and of themselves, or might serve as nanofabrication machinery that could construct other
structures useful to the end user. In particular, the large macromolecules involved in the biochemistry
of life—specifically protein molecules—demonstrate the ability to configure themselves into structures,
and some research seeks to co-opt biochemical machinery to assemble structures designed for entirely
human purposes (as described in Section 8.4.3).
8.3 BIOLOGY AS IMPLEMENTER OF MECHANISMS FOR COMPUTING
8.3.1 Evolutionary Computation^55
8.3.1.1 What Is Evolutionary Computation?
Evolutionary computation is inspired by genetics and evolutionary events.^56 Given a particular
problem for which a solution is desired, evolutionary computation requires three components:
(^54) H. Abelson, T.F. Knight, G.J. Sussman, et al., “Amorphous Computing,” available at http://www.swiss.ai.mit.edu/projects/
amorphous/white-paper/amorph-new/amorph-new.html.
(^55) The discussion in Section 8.3.1 owes much to Melanie Mitchell, now at Portland State University in Oregon.
(^56) Evolutionary computation is a generic name for techniques that are based loosely on evolutionary principles. There are a
number of variants, including evolutionary programming, evolution strategies, genetic programming, and genetic algorithms,
which have somewhat different emphases but share the generic approach.