'The
malleability of configurable processors means that they can adapt at the
hardware level. Does the term adaptation ring a bell? Over the past few years,
researchers working on bio-inspired systems have begun using configurable
processors; after all, they reasoned, what could be better suited to implement
adaptive systems than soft hardware? And what do you get when you marry
configurable processors with evolutionary computation?
Evolvable hardware' (M. Sipper (2002), Machine Nature).
In a typical device having a microprocessor, e.g. a
washing machine or a digital camera, the control part comprises a hardware and
a software. The hardware is usually fixed and unchangeable. The software has
been written by somebody and is therefore fixed (although new software can be
loaded), and the user can only key-in his/her preferences about some
operational parameters. Computational science has been progressively moving
towards a scenario in which the hardware is no longer absolutely hard; it is changeable,
even evolvable.
Evolutionary ideas have permeated a whole host of
scientific and engineering disciplines, and computational science is no
exception. I discussed the evolutionary aspects of software in Part 76. On-the-job changeability and evolution of hardware
configurations offers exciting possibilities.
Conventional general-purpose stored-program computers
have a fixed hardware, and they are programmable through software. Their
microprocessors can be led through just about any conceivable logical or
mathematical operations by writing a suitable set of instructions. Since their general-purpose, low-cost, hardware
configuration is not fine-tuned for any specific task, they tend to be
relatively slow.
For major specialized jobs involving a very large
amount of number-crunching, it is more efficient to design application-specific
ICs (ASICs), but then the overall long-term cost goes up, particularly if
there is a need for upgradation or alteration from time to time.
An intermediate and very versatile approach is to have
reconfigurable computers (RCs). A
computer has a memory and a processor. The software is loaded into the memory;
and the processor normally has a fixed, unalterable, configuration. By
‘configuration’ we mean the way the various components of the processor are
interconnected, and the logical and mathematical operations they perform. If we
can make these interconnections and operations (gate arrays) alterable, without
having to physically change them by hand, we get an alterable or
reconfigurable hardware. This is equivalent to having customized hardware which
can be reconfigured at will (within limits), without incurring additional
costs.
In RCs one makes use of 'field-programmable gate
arrays' (FPGAs), the logic structure of which can be altered and
customized by the user. The generic architecture of such RCs has four major
components connected through a programmable interconnect: multiple
FPGAs; memories; input/output channels; and processors.
FPGAs are highly tuned hardware circuits that can be
altered at almost any point during use. They comprise of arrays of reconfigurable
logic blocks that perform the functions of logical gates. The logic functions
performed within the blocks, as well as the connections among the blocks, can
be changed by sending control signals. A single FPGA can perform a variety of
tasks in rapid succession, reconfiguring itself as and when instructed to do
so.
Villasenor and Mangione-Smith (1997) made a
single-chip video transmission system that reconfigures itself four times per
video frame: It first stores an incoming video signal in the memory; then it
applies two different image-processing transformations; and then becomes a
modem to send the signal onward. FPGAs are ideally suited for algorithms
requiring rapid adaptation to inputs.
Such softening of the hardware raises visions of autonomous
adaptability, and therefore evolution. It should be possible to make the
soft hardware evolve to the most desirable (fittest)
configuration. That would be a remarkable Darwinian evolution of computing
machines, a marriage of adaptation and design.
Self-healing
machines
Biological systems are robust because they are
fault-tolerant and because they can heal themselves. Machines have been
developed that can also heal themselves to a certain extent. The new field of embryonic electronics has drawn its
sustenance from ontogeny (i.e. the development of a multicellular being from a
single fertilized cell, namely the zygote) and embryogenesis observed in
Nature. One works with a chessboard-like assembly of a large number of
reconfigurable computer chips described above. This is like a multicellular
organism in Nature. The chips or cells are blank-slate cells to start
with. We specify a task for the assembly; say, to show the time of the day. We
also wish to ensure that the artificial organism is robust enough to heal
itself; i.e. it should repair itself if needed. Such a BioWatch has indeed been
built.
Ontogeny in Nature
involves cell division and cell differentiation, with the all-important feature
that each cell carries the entire genome. The BioWatch borrows these
ideas. The genome, of course, comprises of the entire sequence of instructions
for building the watch. One starts by implanting the genome (the zygote) in
just one cell. Cell division is simulated by making the zygote transfer its
genome to the neighbouring cells successively. When a cell receives the genome
from one of its neighbours, information about its relative location is also
recorded. In other words, each of the cells knows its relative location in the
assembly.
This information determines how that cell will
specialize by extracting instructions from the relevant portion of the genome. Thus
each cell or chip, though specialized (‘differentiated’) for doing only a part
of the job, carries information for doing everything, just as a biological cell
does. The BioWatch is now ready to function. Its distinctive feature is that it
can repair itself. How?
Suppose one of the cells malfunctions, or stops
functioning. There are kept some undifferentiated (and therefore unused) cells
in the same assembly. Repair or healing action amounts to simply ignoring the
dead cell after detecting its relative position, and transferring its job to
one of the fresh cells which already has the complete genome, and has to only
undergo differentiation for becoming
operational.
One can do even better than that by making the system hierarchical.
Each cell can be given a substructure: Each cell comprises of an identical set
of ‘molecules’. When one of the molecules malfunctions, its job is transferred
to a fresh molecule. Only when too many molecules are non-functional does the
entire cell become dead, and the services of a fresh cell are requisitioned.
Hardware
you can store in a bottle
Adamatzky and coworkers (2005) have been
developing chemical-based processors that are run by ions rather than
electrons. At the heart of this approach is the well-known Belousov-Zhabotinsky
or BZ reaction. A BZ reaction is a repeating cycle of three sets of
chemical reactions. After the ingredients have been brought together, they only
need some perturbation (e.g. a catalyst, or a local fluctuation of
concentration) to trigger the first of the three sets of reactions. The
products of this reaction initiate the second set of reactions, which then set
off the third reaction, which then restart the first reaction. And so on,
cyclically.
The BZ reaction is self-propagating. Waves of
ions form spontaneously and diffuse through the solution, inducing neighbouring
regions to start the reactions.
Adamatzky has been developing liquid logic gates
(for performing operations like ‘not’ and ‘or’) based on the BZ reaction. It is
expected that an immensely powerful parallel processor (a liquid robot brain)
can be constructed, which will be a blob of jelly, rather than an assembly of
metal and wire. Such a system would be highly reconfigurable and self-healing.
A possible host material for this blobot is a
jelly-like polymer called PAMPS, an electroactive gel. It expands or contracts when
an electric field is applied. BZ waves can travel through it without getting
slowed down substantially, and the waves can be further manipulated
interactively by internal or external electric fields. One day we may end up
having an intelligent, shape-changing, crawling blob based on such
considerations.
Who
would have thought that the FPGA-chip idea would one day find a direct analogue
in the way the human brain has evolved? But that is exactly what has happened.
As explained in a recent and highly successful theory of the human brain, a
child starts out with a huge number of 'connections-in-waiting' to which the
'pattern recognition modules' can hook up. I look forward to telling you all about
it in a future set of posts when I discuss learning, memory, intelligence etc.
No comments:
Post a Comment