Based on ideas and principals of biological evolution a genetic algorithm (GA) is the most popular type of evolutionary computation.  GA is used for optimization purposes. It can be illustrated by the following example: if to present a problem in functional form, its` solutions will have functional values. Having evaluated the function the algorithm selects the best solutions and then starts to create new ones based on required ones. The process of solution developing will not be stopped till GA`s finding the correct one. It can also be described in terms of “On the Origin of Species” written by Charles Darwin. Thus a solution of the problem is an “individual”, a function is “adaptation index” (shows the adaptation to the environment), the algorithm is “natural selection”.

“Dealing with these problems one should take into account variety of solutions. Evolutionary computation results in unexpected solutions, most of them cannot be developed by humans. For example, it helped to invent a new type of antenna – evolved antenna, which  has irregular shape; it would take much more time if a human tried to develop it by himself,” noted Maksim Buzdalov.

However evolutionary computation cannot be applied for all kinds of problems. For instance, if to make it develop a computer program using a source code the GA will invent many wrong versions before to offer correct one because this type of algorithms is based on trial-and-error  method.

Genetic algorithms are self-adaptive. However different types of problems require specific algorithms because “multi-purpose” GAs are not very effective.

The more individuals one tries to analyze the worth the algorithm works. Usually a generation consists of about 100 individuals. Analyzing 10, 000 ones the algorithm spends a lot of time for developing new individuals and updating instead of function`s evaluating.

According to Mr. Buzdalov, modification of internal implementation is needed to improve the efficiency of genetic algorithms. It is necessary to join forces of experts in theoretical computer science and developers specialized in evolutionary computing. For a long time these experts had been working separately. It means that theorists didn`t research evolutionary algorithms` properties while developers didn`t use the results of fundamental studies that could help to improve their functioning.

“I want to discuss with my international colleagues the importance of collaboration. Teamwork is the main tool of algorithms and data structures` improving. I am going to charge specialists of theoretical computer science with new interesting tasks connected with evolutionary computing,” said Maksim Buzdalov. 

Learn more about the workshop.