As with many other methods of artificial intelligence, the concept behind genetic algorithms is that nature has
successfully created intelligence in the human race and so, if we follow as closely as possible the way intelligence
forms in nature, we may possibly create something that can solve the sort of problems that "true intelligence" is
required for. The aim of genetic programming is to 'evolve' an algorithm to suit a particular problem by random
alterations and a system similar to cross-breeding of plants and animals.
In real life, most organisms (that is, those which consist of more than a single cell) have a number of chromosomes
which contain many genes, blocks of DNA that store all the required information for the body to synthesize proteins.
(Proteins are required to build muscles and other body tissues, as well as the plasma membranes which surround every cell
in our bodies).
Humans have 46 chromosomes that code for every required protein in the body and contain all the
information required to create an entirely new human being. The reason that all humans are different is that when gametes
(sperm or eggs) are created (through the process called meiosis), a process called 'crossing over' occurs. This is where
different chromosomes from an individual are 'blended' together, creating entirely new chromosomes which are still valid,
and contain a mixture of many different characteristics from the individual.
Genetic algorithms use this concept to create programs that change in a semi-random fashion in order to
work towards a particular goal. Firstly a series of programs are randomly created, and the ones that work the best
(produce results the closest to the required ones) are "bred" together (their genetic material combined) and another
series of programs is created. As before, the best-performing programs are picked out and the required qualities eventually
become more and more focussed as more "generations" of programs are created.
If you think of what has happened in nature, where an entire race of intelligent, thinking and feeling beings has been created by a very similar method, starting with nothing but a mixture of various atmospheric gases and lightning (it has been shown that it is possible to create amino acids, the building blocks of proteins, by passing electric current through a mixture of gases thought to exist on the world millions of years ago), who knows what might appear though the genetic algorithm system?
It's very good at finding solutions to problems that are difficult or impossible to solve using "traditional" programming - things along the lines of the "travelling salesman" problem and factoring large prime numbers, where there is no obvious solution other than just intuitively trying various values that may be correct.
Hmm, that's a harder question ! Well, all of the above problems have applications in real life!
- The stock market prediction should speak for itself! <grin>
- If a perfect solution to the "travelling salesman" problem could be found, this should lead to a method to factorise large primes, and thus break the currently most sophisticated encryption algorithms.
- Chess has always been seen to be a measure of intellect and strategic ability. Skills learnt in the process of playing games such as chess and the Japanese "go" are meant to translate well into leadership ability or the ability to command well in a war or another strategic exchange - a large-scale version of the game. When the perfect unbeatable chess-playing program evolves, is trained or whatever, it may turn out to be effective in world war three ... or whatever !
When applied to problems more complicated than playing tic-tac-toe or navigating a vehicle around a single maze, the program required begins to get more and more complicated, and as its length increases arithmetically, the number of possible programs increases geometrically. Thus the process of evolving solutions to complex problems can take a huge amount of time: the probability of randomly hitting the correct solution if you generate a program decreases as the problem increases in complexity, and thus the process of iterating towards a perfect solution can take a much longer time.
As with all artificial intelligence, genetic algorithms show a lot of promise for the future, even though they may not be particularly helpful at the moment. Stock market predictions and control mechanisms for robotics stand to benefit from these, as genetic algorithms have already made amazing "discoveries" (how to make a robot 'limbo' under a pole and so on ... see above) and as computers get faster they should continue in this manner.