Computational Intelligence Using Genetic Programming
I just returned from the IXth Genetic Programming Theory and Practice Workshop held by the Center for the Study of Complex Systems at the University of Michigan. This is an invitation only workshop that brings together theorists and practitioners interested in the development and application of computer systems that can solve complex problems by developing their own programs (i.e. automatic programming). This group focuses on the use of genetic programming or GP to discover useful computer programs using the principles of evolution by natural selection. The proceedings from this workshop are published each year in a book that can be found on Amazon. The proceedings from this year will be published in late 2011 or early 2012.
The real value of this workshop is the large amount of time dedicted to open-ended discussion about how solve complex problems in medicine, industry, finance, etc. My own motivation for working with GP is to teach the computer how to solve a complex human genetics problem as I would. I do not believe that naive computer programs or analysis strategies such as those used in the agnostics genome-wide association study (GWAS) paradigm will be successful in addressing the complexity of the genotype-phenotype relationship. We, as human analysis engines, don't ignore the pathobiology of disease when we look at data. Why should we instruct the computer to do the same? Given infinite time, each of us would tinker and try new and different things with the data until we found a good answer that made biological sense. We would use our knoweldge of biochemistry, genomics, molecular biology, pathology and physiology to both frame the analysis and interpret the results. Our series of papers published as part of GPTP since 2006 have focused on adaptive computer programs that harness this kind of biological and biomedical knowledge to explore the space of computer programs that can build models of genetic architecture.
One of the more interesting and extended discussions at GPTP this year was about novelty-seeking. Ken Stanley gave a great talk about rewarding computer programs that explore new and different solutions to a problem (read more). His Picbreeder program is a nice example of novelty search in the sense that you can discover and develop interesting pictures without a clear initial objective in mind (e.g. evolve a picture of a car). An analogy in human genetics would be to reward computer program that generate genetic models of disease by exploring new biochemical pathways. I am working on approaches to try this within our own genetic analysis system. I like Ken's quote: "To achieve your highest goals, you must be willing to abandon them."
It is very clear that GP has been used to solve problems that humans or other computer programs haven't been able to. For example, Moshe Sipper has developed computer game players that rival human players (read more). Some of the participants (e.g. Michael Korns) even invest and make money using GP. This is a powerful way to do automatic programming and should be part of the broader toolbox of any complex problem-solver. I would be happy to send you a pre-print of our current GPTP paper.