Evolution using genetic programming of a low-distortion, 96 decibel operational amplifier
The field of engineering design offers a practical yardstick for evaluating automated techniques because the design process is usually viewed as requiring human intelligence and because design is a major activity of practicing engineers. In the design process, the design requirements specify "what needs to be done." A satisfactory design tells us "how to do it." In the field of electrical engineering, the design process typically involves the creation of an electrical circuit that satisfies user-specified design goals. Considerable progress has been made in automating the design of certain categories of purely digital circuits; however, the design of analog circuits and mixed analog-digital circuitshas not proved to be as amenable to automation (Rutenbar 1993). In discussing "the analog dilemma," O. Aaserud and I. Ring Nielsen (1995) (not to be confused with Ivan Riis Nielsen cited later) observe, "Analog designers are few and far between. In contrast to digital design, most of the analog circuits are still handcrafted by the experts or so-called 'zahs' of analog design. The design process is characterized by a combination of experience and intuition and requires a thorough knowledge of the process characteristics and the detailed specifications of the actual product. "Analog circuit design is known to be a knowledge-intensive, multiphase, iterative task, which usually stretches over a significant period of time and is performed by designers with a large portfolio of skills. It is therefore considered by many to be a form of art rather than a science." Of course, engineers employ human reasoning abilities and intelligence in designing complex structures. In contrast, nature employs an entirely different approach to design. In nature, complex structures are designed by means of evolution and natural selection. This suggests the possibility of applying the techniques of evolutionary computation in order to automate the design of complex structures. Genetic algorithms have been applied to the problem of circuit synthesis. A CMOS operational amplifier (op amp) circuit was designed using a modified version of the genetic algorithm (Kruiskamp and Leenaerts 1995); however, the topology of each op amp was one of 24 pre-selected topologies based on the conventional human-designed stages of an op amp. Thompson (1996) used a genetic algorithm to evolve a frequency discriminator on a Xilinx 6216 reconfigurable digital gate array operating in analog mode. Holland (1975) described how an analog of the naturally-occurring evolutionary process can be applied to solving scientific and engineering problems using what is now called the