Pages

Friday, 20 December 2013

111. Reconfigurable Computers and Machines That Can Evolve


'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.