While talking about natural selection, the person who inevitably comes into the scene is none but the most renowned, and simultaneously criticized British Naturalist of eighteenth century, Charles Darwin. Most of us know him for his connection with evolution. In reality, the birth of the concept of evolution took place far earlier. However he added a very exquisite insight to explain evolution that is Natural Selection. The diversity of organisms on earth follows the rule of natural selection and is determined by interactions of living organisms among themselves and with non-living world.
There may be long debates on evolution, but there is no doubt about the strength and power of the theory of natural selection. It states that in a given population, during competition between the individuals, the ones with the maximum fitness will survive and be able to reproduce. This fact can be compared to a simpler example, suppose four princes once went hunting together. Suddenly they entered into a cursed dark forest and lost their way to the outside. There lived a beautiful lady in the forest; she was the only human there. All of the princes wanted to get the lady. But the lady would marry only one. So they got into a fight. Finally one stood while the others got killed and the lady married him. They gave birth to children and passed their genes to them. Thus only their genes survived and other went extinct. The one lucky prince is selected by the competition or fights between all of them. In nature, this competition may be between the same species or between different species of organisms.
A competition arises always from the imbalance between demand and supply of resources. This is a limiting factor for the population. Based on this principle many of the most efficient algorithms are formulated. They are called Genetic Algorithm.
An algorithm is a collection of mathematical steps for solving a problem. Algorithms are used widely for formulating computer programs. Every command you make in your computer is a set of instructions which are implemented by the computer using algorithms. However, the use of algorithm is not only confined in computer programs. A very simple algorithm can be given for adding two numbers (3 and 5).
Step 1. Take the first number, 3
Step 2. Add 1 to 3.
Step 3. Repeat the step for more four times.
Step 4. Get the answer.
You must be thinking what the need for algorithm is if you can do the addition directly saying 3 + 5 = 8. If you ask yourself how do you know 3 and 5 make 8, you will realize that you actually take 3 and then add five 1's to it. Algorithms are usually used to solve the difficult mathematical problems. Traveling salesman problem is one of the many. In this problem, a salesman has to travel to a definite number of cities (it may be 10, 50 and so on). Suppose he has to travel through 30 cities. He has to cover all the cities, every city once, so that the total path he travels is minimum. How will he decide which one is the shortest path? Think about it. Is it possible to answer this in seconds?!
Testing every possibility for an N city tour would be N! math additions. A 30 city tour would have to measure the total distance of be 2.65 X 1032 different tours. Assuming a trillion additions per second, this would take 252,333,390,232,297 years. Adding one more city would cause the time to increase by a factor of 31. Obviously, this is an impossible solution.
The solution can be found using algorithm. If a genetic algorithm is used the result of a complex problem would be obtained in few minutes which would otherwise require a huge time. Genetic Algorithm is a kind of algorithm that uses the theory of Natural Selection as its core logic. Here some random results are produced first which are called parents. Then the parents are crossed to find their child which would be a better result. Iteration of the process yields the final result in the end. Thus the fittest population is identified.
Genetic algorithm can give some approximate results which are not exactly same as the result. This is an advantage of genetic algorithm over other algorithms. During a search user not only want the exact result but also the results close to it which can be easily done by a genetic algorithm.
This kind of algorithms has found their use widely for the development of software to analyze biologic information. The software generates solutions for problems related to the analysis of mutation, inheritance, mutation, selection, and crossover. Thus natural selection is applied not only in the area of biology to understand evolution but also in fundamental areas like mathematics and practical area like computer science as well.