Natural evolution has produced a stunning variety of organisms and thereby invented a tremendous number of highly efficient solutions to complex problems. What an intriguing idea to imitate the mechanism behind nature's evolution process to solve different engineering tasks. Well, nature did not accomplish its achievements from nothing. It took loads of time and a massively parallel approach to get to the world we experience today. The question, to which extent a process of artificial evolution is useful to solve complex design problems is not answered yet, but within the field of evolvable hardware it is attempted to push these limits.
The idea behind artificial evolution is the following: Take an ensemble of syntactically correct solutions and change these solutions by means of genetic operators like mutation or crossover of a pair of solutions. After applying these alterations to every individual of the population, a fitness criterion evaluates how good these individuals are at solving the problem at hand (in nature, this would be the fitness to survive and reproduce within its environment). Now, one goes for another round of genetic operations, favoring the individuals with the higher fitness scores. This is done until either the candidate solutions meet the fitness goal, or the exerimenter is running out of time.
The application of evolutionary algorithms (EAs) to engineering and optimization problems dates back to the sixties, where three types of evolutionary algorithms originated: Evolutionary Strategies (Hans-Paul Schwefel and Ingo Rechenberg), Evolutionary Programming (Lawrence J. Fogel) and Genetic Programming (John H. Holland). During the last four decades evolutionary algorithms have been widely used for parameter optimization in engineering tasks. Within the field of evolvable hardware - a field that emerged in the 1990s - however, it is attempted to use EAs to creatively design hardware. In the most strict sense a piece of evolvable hardware would be a device that can adapt itself to solve the problem at hand in the environment. Most approaches so far consist either of a hardware-in-the-loop system or systems that use softare simulations for their fitness evaluations. In the former case they consist of an algorithmic side (software running on a computer) and some sort of configurable hardware that can assume many different states.
The design of analog electronic circuits is a complex and difficult design problem. Compared to its digital counterpart, analog design automation is still in its infancy. Only very recently, commercial software has entered the market that allows to automatically optimize the transistor channel dimensions of a given topology. The problem of automatically synthesizing circuits from scatch is far from being solved. However, since any physical signal requires electronic circuitry to sense or produce it, there is and always will be demand for analog circuitry.
Comparison of the classical top down
The Heidelberg FPTA project tries to meet the challenge of analog topological synthesis by employing evolutionary algorithms to find analog circuits on a Field Programmable Transistor Array (FPTA). The FPTA chip provides an array of 256 transistors that are programmable in their channel dimensions as well as in the way they are interconnected. The FPTA can thus host a huge variety of different circuits. Since the design process of an evolutionary algorithm is fundamentally different from the human divide and conquer approach, it may lead to fundamentally different solutions that may be better at directly exploiting the transistor physics in order to work more efficiently.