Last updated July 8, 2007
Job for scientific research programmer at Genetic Programming Inc. (posted July 8, 2007)
Genetic programming (GP) is an automated method for creating a working computer program from a high-level problem statement of a problem. Genetic programming starts from a high-level statement of “what needs to be done” and automatically creates a computer program to solve the problem.
There are now 36 instances where genetic programming has automatically produced a result that is competitive with human performance, including 15 instances where genetic programming has created an entity that either infringes or duplicates the functionality of a previously patented 20th-century invention, 6 instances where genetic programming has done the same with respect to a 21st-centry invention, and 2 instances where genetic programming has created a patentable new invention.
Given these results, we say that “Genetic programming now routinely delivers
high-return human-competitive machine intelligence.” Click here for our
definitions of “human-competitive,” ”high return” and
the “AI ratio” (“artificial-to-intelligence” ratio), “routine,” and “machine
intelligence.” This statement is the most important point of the 2003
book Genetic
Programming IV: Routine
Human-Competitive Machine Intelligence. Click here to read chapter 1 of Genetic
Programming IV in PDF format. Click here for 2004 awards for
human-competitive results (based on presentations at the GECCO-2004
conference in
The fact that genetic programming can evolve entities that are competitive with human-produced results suggests that genetic programming can be used as an automated invention machine to create new and useful patentable inventions. In acting as an invention machine, evolutionary methods, such as genetic programming, have the advantage of not being encumbered by preconceptions that limit human problem-solving to well-troden paths. Genetic programming has delivered a progression of qualitatively more substantial results in synchrony with five approximately order-of-magnitude increases in the expenditure of computer time (over the 15-year period from 1987 to 2002).
Genetic programming has 16 important attributes that one would reasonably expect of a system for automatic programming (sometimes also called program synthesis or program induction). Genetic programming has seven important differences from conventional approaches to artificial intelligence (AI) and machine learning (ML). For additional information, click here for PowerPoint (PPT) presentation on genetic programming (about 5 Megabytes) similar to that presented at the 2003 Accelerating Change Conference on September 13, 2003 and similar to the overview lecture given on September 24, 2003 in John Koza’s course at Stanford University on genetic algorithms (GA) and genetic programming (GP).
Genetic programming starts with a primordial ooze of thousands of randomly created computer programs. This population of programs is progressively evolved over a series of generations. The evolutionary search uses the Darwinian principle of natural selection (survival of the fittest) and analogs of various naturally occurring operations, including crossover (sexual recombination), mutation, gene duplication, gene deletion. Genetic programming sometimes also employs developmental processes by which an embryo grows into fully developed organism. Old Chinese saying says “animated gif is worth one mega-word,” so click here for short tutorial of “What is GP?” including about two dozen animated gifs. This short tutorial contains a discussion of the preparatory steps of a run of genetic programming, the executional steps (that is, the flowchart of genetic programming), an illustrative simple run of genetic programming for a problem of symbolic regression of a quadratic polynomial, a discussion of developmental genetic programming for the automatic synthesis of both the topology and sizing of analog electrical circuits (potentially also including placement and routing), and the use of a turtle to draw complex structures (such as antenna). In addition, genetic programming can automatically create, in a single run, a general (parameterized) solution to a problem in the form of a graphical structure whose nodes or edges represent components and where the parameter values of the components are specified by mathematical expressions containing free variables. That is, genetic programming can automatically create a general solution to a problem in the form of a parameterized topology.
The technique of genetic programming (GP) is one of the techniques of the field of genetic and evolutionary computation (GEC) which, in turn, includes techniques such as genetic algorithms (GA), evolution strategies (ES), evolutionary programming (EP), grammatical evolution (GE), and machine code (linear genome) genetic programming.
· For May 2003 IEEE Intelligent Systems article “What’s AI done for me lately? Genetic programming’s human-competitive results”, visit IEEE Intelligent Systems. Click here for PDF file.
·
For February 2003 Scientific American article “Evolving inventions” on genetic
programming by John Koza, Martin A. Keane, and Matthew J. Streeter, visit Scientific
American.
· For Salon article on "Software that Writes Software" by Alexis Willihnganz (August 10, 1999)
· For E. E. Times article on automatic synthesis of analog electrical circuits using genetic programming.
· For article in Computerbits on genetic programming.
· For Scientific American article by W. Wayt Gibbs on genetic programming.
· For Business Week article (June 23, 1997) entitled "Stanford Eggheads and Entrepreneurs"
· For Business Week article (August 25, 1997) entitled "What Matters is How Smart You Are"
· For U. S. News and World Report article on evolutionary computation and genetic programming.
· For Slashdot.org posting (August 10, 1999).
· For the451.com article entitled "Re-inventing the 'invention machine" (April 14, 2000).
There are numerous applications of genetic programming including
We are constantly looking for new domain areas in which to apply the techniques of genetic programming to achieve human-competitive machine intelligence.
In July 1999, Genetic Programming Inc. started operating a new 1,000-node Beowulf-style parallel cluster computer consisting of 1,000 Pentium II 350 MHz processors and a host computer. Click here for technical discussion of parallel genetic programming and building the 1,000-Pentium Beowulf-style parallel cluster computer. About half of the 36 human-competitive results produced by genetic programming were obtained using computing systems that were substantially smaller than the 1,000-Pentium computer mentioned above. Fifteen of these human-competitive results were obtained on a 1995-vintage parallel computer system composed of 64 PowerPC 80 MHz processors with a spec95fp rating. This 1995-vintage computer has total computational power equal to only about 1/60 of that of the 1000-Pentium machine mentioned above. Five of these results were obtained on a 70-Alpha machine (whose spec95fp rating is 1/9 of that of the 1,000-Pentium machine mentioned above). One of these human competitive results were obtained with a 1994-vintage machine (whose spec95fp rating is 1/1,320 of that of the 1,000-Pentium machine mentioned above). The individual processors in the1,000-Pentium machine have (as of July 2003) about 1/8 the speed of processors contained in commercially available $999 laptops, so that the 1,000-Pentium machine is approximately equivalent to a 125-processor machine with 2003-vintage processors.
For picture of
uninterruptable power supply (UPS)
for new 1000-Pentium computer. Design and contracting
of site for 1000-Pentium computer by Gordon
Prill Inc. of
Click here for list of patents.
Please send corrections or additions to this page to:
Post Office Box K
OFFICE PHONE: 650-960-8180
FAX: 650-941-9430
E-mail: koza@stanford.edu
E-mail: koza@genetic-programming.com
E-mail: koza@genetic-programming.org
· For information about the annual Genetic and Evolutionary Computation Conference (GECCO) operated by the Association for Computing Special Interest Group on Genetic and Evolutionary Computation (SIGEVO)
· For information about the annual Human-Competitive Awards (the “humies”) in genetic and evolutionary computation offered at the annual Genetic and Evolutionary Computation Conference (GECCO)
· The home page of Genetic Programming Inc. at www.genetic-programming.com.
· The home page of John R. Koza (including online versions of most published papers)
·
For information about John Koza’s course on genetic
algorithms and genetic programming at Stanford University
·
For information about National Popular Vote
· Information about the 1992
book Genetic
Programming: On the Programming of Computers by Means of Natural Selection,
the 1994 book Genetic
Programming II: Automatic Discovery of Reusable Programs, the 1999
book Genetic
Programming III: Darwinian Invention and Problem Solving, and the
2003 book Genetic
Programming IV: Routine Human-Competitive
Machine Intelligence. Click here to read chapter 1 of Genetic
Programming IV book in PDF format.
· 4,000+
published papers on genetic programming (as of November 28, 2003) in a
searchable bibliography (with many on-line versions of papers) by over 880
authors maintained by William Langdon’s and Steven M. Gustafson.
· For information on the Genetic Programming and Evolvable Machines journal
· For information on the Genetic Programming book series, see the Call For Book Proposals