Human-Competitive Machine Intelligence by Means of Genetic Algorithms
The subtitle of John Holland's pioneering 1975 book Adaptation in Natural and Artificial Systems correctly anticipated that the genetic algorithm described in that book would have "applications to.. .artificial intelligence." When the entities in the evolving population are computer programs, Holland's genetic algorithm can be used to perform the task of searching the space of computer programs for a program that solves, or approximately solves, a problem. This variation of the genetic algorithm (called genetic programming) enables the genetic algorithm to address the long-standing challenge of getting a computer to solve a problem without explicitly programming it. Specifically, this challenge calls for an automatic system whose input is a high-level statement of a problem's requirements and whose output is a satisfactory solution to the given problem. Paraphrasing Arthur Samuel [33], this challenge concerns "How can computers be made to do what needs to be done, without being told exactly how to do it?" This challenge is the common goal of such fields of research as artificial intelligence and machine learning. Arthur Samuel [32] offered one measure for success in this pursuit, namely "The aim [is].. .to get machines to exhibit behavior, which if done by humans, would be assumed to involve the use of intelligence." Since a problem can generally be recast as a search for a computer program, genetic programming can potentially solve a wide range of problems, including problems of control, classification, system identification, and design. Section 2 describes genetic programming. Section 3 states what we mean when we say that an automatically created solution to a problem is competitive with the product of human creativity. Section 4 discusses the illustrative problem of automatically synthesizing both the topology and sizing for an analog electrical circuit. Section 5 discusses the problem of automatically determining the placement and routing (while simultaneously synthesizing the topology and sizing) of an electrical circuit. Section 6 discusses the problem of automatically synthesizing both the topology and tuning for a controller. Section 7 discusses the importance of illogic in achieving creativity and inventiveness.