Genetic algorithm is an adaptive method of a search that nowadays is frequently used for solving the issues of functional optimization. These algorithms are based on genetic processes of biological organisms: biological populations develop during several generations, submitting to the rules of natural selection and according to the principle "survival of the fittest" that was discovered by Charles Darwin. Imitating this process, genetic algorithms are able to "develop" the solutions of real tasks, if they are correspondingly coded. For example, genetic algorithms can be used to design the structure of a bridge for the search of maximal ratio of strength/weight, or determine the least wasteful placement for cutting forms of cloth. They can be also used for an interactive control of a process, for example, on the chemical plant, or balancing of loading in the multiprocessor computer. A real example is: Israeli company Schema designed a software product "Channeling" for the optimization of cellular communications' work by means of choosing an optimal frequency, on which a communication is possible. As the bases of this software product genetic algorithm was used.
The main principles of genetic algorithms were formulated by John Holland and well described in many of his works. In contrast to evolution, happening in the nature, genetic algorithms only modulate the processes in the populations which are essential for the development.
In the nature individuals in the population compete with each other for different resources, such as food and water. Besides, the members of the population that belong to one kind frequently compete for the attraction of the breeding partner. Such individuals that are used to the surrounding circumstances will have relatively more chances to reproduce offspring. Weakly adjusting individuals either will never produce offspring or their offspring will be very few in numbers. This means that genes from highly adapting individuals will spread in the increasing amounts of offspring in every next population. The combination of good characteristics from different parents sometime may result in the creation of "super adapted" offspring, whose adaptation is better than the adaption of any of his parents. Thus, the kind is developing, better and better adjusting to the environment.
Genetic algorithm uses a direct analogy with this mechanism. These algorithms work with the totality of "individuals" - populations, each of them represents a possible solution of a given problem. Every individual is measured by its adaptation according to how "good" the corresponding solution of a problem is. For example, the measure of adaptation could be a ratio strength/weight for the project of a bridge. In the nature it is equal to the estimation of how efficient the organism in competition for the resources is.
The most adapted individuals get the opportunity to produce offspring with the help of crossbreeding with other individuals in the population. This results in the producing of new individuals who combine some characteristics, inherited from their parents. Least adapted individuals have less possibility to produce offspring, so the qualities that they have will disappear gradually from population in the process of evolution.
Equally, all the new population of acceptable solutions is reproduced - the best representatives of a previous generation are being chosen, crossed and as a result many new individuals are being produced. This new generation has a better correlation of characteristics which successful members of a previous generation have. Hence, from one generation to another, good characteristics apply to the whole population. The crossbreeding of best adapted individuals results in the examining of more perspective sectors of searching space. Finally, the population will bring to an optimal solution of a task.
There are many ways to implement the ideas of biological evolution in the framework of a genetic algorithm. In last years many of genetic algorithms were implemented and many of them are different. That is why nowadays the term "genetic algorithms" includes not a one model, but a rather broad class of algorithms, sometimes very different. The researchers experimented with various types of presentations, operators of crossover and mutations, special operators and different approaches to the reproduction and selection.
Though the model of evolutional development, used in genetic algorithms, is very simplified in comparison with nature analogue, genetic algorithm remains a powerful means and can be successfully applied to a broad class of problems, including those which are difficult and sometimes impossible to solve using other methods. However genetic algorithms like other methods of evolutional calculations don't guarantee the disclosure of global solution at polynomial time. Genetic algorithms don't guarantee that this global solution will be found but they are useful for the search of "rather good" solution "rather fast". There where the task can be solved with the help of special methods, almost always such methods will be more effective than genetic algorithms both in speed of searching and accuracy of founded solutions. The main advantage of genetic algorithm is that it can be applied even for difficult tasks, there no special methods exist. Even where existing methods operate well, one can approach better results by combining these methods with genetic algorithms.
Genetic algorithms in different forms are applied to many scientific and technical problems. Genetic algorithms were used in the creation of other calculating structures, for example, automatic machines. In the machine study they were used in projecting of neuronal nets or in controlling robots. They were also applied to the modeling of development in different subject fields including biological (ecology, immunology, population genetics), social (economics, political systems) and cognitive systems.