Held Tuesday, April 11, 2000
Today we investigate techniques of genetic programming and
consider whether any of these techniques may be applicable to the
problems of artificial intelligence.
Question 38 for discussion today:
How might you use genetic algorithms to produce a form of intelligent program? Do you expect this to be a fruitful road to AI?
Question 39 for discussion tomorrow: Find a Web site with an illustrative example of genetic programming or neural networks. Report on the success or failure of the technique to solve the problem described therein.
- Today's questions is a little bit different; let me know if you find it
- I'll do my best to find an appropriate genetic algorithm or neural
network simulator for tomorrow so that we can see how well both
- Genetic Programming
- Evolving solutions
- Evolving algorithms
- Are these appropriate techniques?
- Disclaimer: Although I've classified this technique within our AI
discussions, it is not necessarily an AI technique.
- In the field of genetic algorithms, researchers apply techniques
of genetics to the development of algorithms.
- There are two basic models of genetic programming
- In the simpler one, you evolve a solution to a particular problem
- In the more complex one, you evolve an algorithm that can solve
- In both cases, you need to be able to represent something (the
potential solutions or the potential algorithms) as a sequence
of discrete and range-limited values.
- Similarly, every sequence of values represents either a potential
solution or a potential algorithm.
- These sequences are the ``DNA'' of evolution
- Start with a population of sequences.
- In each round
- Assign a fitness to each sequence (based on its success at answering
- Determine the base population for the next generation. Fitter
individuals are more likely to reproduce or survive.
- ``Cross-breed'' sequences to generate new sequences
- ``Mutate'' sequences to generate new sequences
- Keep doing this until the population stabilizes or an acceptable
- Population size
- How to mutate
- How to breed
- How many copies of each genomre to keep
- Genetic algorithms have come up with some good solutions to
approximation problems, and much faster than ``standard''. algorithms
can. The prototypical example is the travelling salesperson problem.
- Some interesting algorithms have been genetically derived.
- Can we apply them to the same kinds of problems?
- What are similarities/differences?
- Can we apply genetic programming to neural networks?
- Do you consider one more amenable to problems of AI than another?
Why or why not?
- Both of these techniques differ from traditional algorithm development
in that a solution ``grows'' rather than being designed by
- This typically means that we can't necessarily understand the solution
that the process generates. How do we know that a neural network or
genetically evolved algorithm is correct?
- Should we be concerned? (Or how much should we be concerned?)