In the field of artificial intelligence, an evolutionary algorithm (EA) is a subset of total population calculations based on metaheuristic optimization. EA uses mechanisms inspired by biological development such as reproduction, mutation, recombination and selection. The candidate solution in the problem of evolutionary optimization algorithms plays the role of individuals in the population. And also the fitness function determines the quality of the answers.
Evolutionary algorithms often approximate solutions to all types of problems well. Because ideally they don't make any assumptions about the underlying fitness landscape. Methods used for evolutionary modeling and genetic algorithms are usually limited to studies of microevolutionary processes and planning models based on cellular stages. In most real EA applications, computational complexity is a prohibitive factor.
Actuallythis issue is related to fitness function estimation. Fitness approximation is one solution to overcome this difficulty. However, a seemingly simple EA can solve often complex problems. Therefore, there can be no direct relationship between the complexity of the sequence and the problem. More details can be found in the books "Evolutionary Algorithms".
Implementation
Step one is to create an initial population of individuals at random.
Step two is to assess the suitability of each individual in this group (time limit, sufficient preparedness, etc.).
Step three - repeat the following regeneration steps to completion:
- Select the most suitable people for breeding (parents).
- Bring new individuals that have passed the evolutionary algorithm using crossover and mutation to get offspring.
- Assess the individual fitness of new people.
- Replace the least fit population with them.
Types
Genetic Algorithm is an evolutionary sequence, the most popular type of Expert Advisor. A solution to the problem is sought in the form of strings of numbers (traditionally binary, although the best representations are usually those that reflect more in the problem being solved) by applying operators such as recombination and mutation (sometimes one, in some cases both). This type of Expert Advisor is often used in optimization problems. Another name for this is fetura (from the Latin for "birth"):
- Genetic programming. It presents solutions as computer codes, and their suitability is determined by their ability to perform computational tasks.
- Evolutionary programming. Similar to the evolutionary genetic algorithm, but the structure is fixed and its numerical parameters can change.
- Programming gene expression. Develops computer applications, but explores the genotype-phenotype system, where projects of different sizes are encoded on fixed-length linear chromosomes.
- Strategy. Works with vectors of real numbers as representations of solutions. Usually uses self-adaptive evolutionary mutation rate algorithms.
- Differential development. Based on vector differences and therefore primarily suitable for numerical optimization problems.
- Neuroevolution. Similar to evolutionary programming and genetic algorithms. But the latter are artificial neural networks, describing the structure and weight of the connections. Genome encoding can be direct or indirect.
Comparison with biological processes
A possible limitation of many evolutionary algorithms is the lack of a clear distinction between genotype and phenotype. In nature, a fertilized egg undergoes a complex process known as embryogenesis in order to become mature. This indirect coding is thought to make genetic searches more reliable (i.e., less likely to cause fatal mutations) and may also improve the organism's ability to develop. Such indirect (in other words,generative or developmental) encodings also allow evolution to exploit regularity in the environment.
Recent work in the field of artificial embryogenesis or developmental systems seeks to solve these problems. When programming gene expression, the genotype-phenotype region is successfully explored, where the first consists of linear multigene chromosomes of fixed length, and the second of many expression trees or computer programs of various sizes and shapes.
Related techniques
Algorithms include:
- Ant colony optimization. It is based on the idea that insects search for food by connecting with pheromones to form paths. Primarily suitable for combinatorial optimization and graph problems.
- Root slider algorithm. The creator was inspired by the function of plant roots in nature.
- Algorithm for artificial bee colonies. Based on the behavior of honey bees. It is primarily proposed for numerical optimization and extended to solve combinatorial, bounded, and multipurpose problems. The bee algorithm is based on the foraging behavior of insects. It has been applied in many applications such as routing and scheduling.
- Particle swarm optimization - based on animal herd behavior ideas. And also primarily suitable for numerical process tasks.
Other popular metaheuristic methods
- Hunting search. A method based on group catching of certain animals, such as wolves, for example, whichdistribute their duties to surround the prey. Each of the members of the evolutionary algorithm relates to the others in some way. This is especially true for the leader. This is a continuous optimization method adapted as a combinatorial process method.
- Search by measurements. Unlike nature-based metaheuristic methods, the adaptive process algorithm does not use metaphor as its main principle. Rather, it uses a simple performance-oriented method based on updating the search dimension ratio parameter at each iteration. The Firefly algorithm is inspired by how fireflies attract each other with their flashing light. This is especially useful for multimodal optimization.
- Search for harmony. Based on the ideas of the behavior of musicians. In this case, evolutionary algorithms are the way to go for combinatorial optimization.
- Gaussian adaptation. Based on information theory. Used to maximize performance and average availability. An example of evolutionary algorithms in this situation: entropy in thermodynamics and information theory.
Memetic
A hybrid method based on Richard Dawkins' idea of a meme. It usually takes the form of a population-based algorithm combined with individual learning procedures capable of performing local refinements. Emphasizes the use of problem-specific knowledge and attempts to organize fine-grained and global searches in a synergistic way.
Evolutionaryalgorithms are a heuristic approach to problems that cannot be easily solved in polynomial time, such as classically NP-hard problems and anything else that would take too long to exhaustively process. When used independently, they are usually used for combinatorial problems. However, genetic algorithms are often used in tandem with other methods, acting as a quick way to find multiple optimal starting places to work with.
The premise of the evolutionary algorithm (known as an adviser) is quite simple given that you are familiar with the process of natural selection. It contains four main steps:
- initialization;
- choice;
- genetic operators;
- end.
Each of these steps roughly corresponds to a certain aspect of natural selection and provides easy ways to modularize that category of algorithms. Simply put, in EA, the fittest members will survive and reproduce, while the unfit members will die and not contribute to the next generation's gene pool.
Initialization
To start the algorithm, you must first create a set of solutions. The population will contain an arbitrary number of possible problem statements, often referred to as participants. They are often generated randomly (within the constraints of the task) or, if some prior knowledge is known, tentatively centered around what is considered ideal. It is important that the population covers a wide range of solutions,because it is essentially a gene pool. Therefore, if one wants to explore many different possibilities within an algorithm, one should strive to have many different genes.
Choice
Once the population has been created, its members must now be evaluated according to the fitness function. The fitness function takes a member's characteristics and gives a numerical representation of how fit the member is. Creating them can often be very difficult. It is important to find a good system that accurately represents the data. This is very specific to the problem. Now it is necessary to calculate the suitability of all participants and select some of the best members.
Multiple objective functions
EAs can also be extended to use these systems. This complicates the process somewhat, because instead of identifying one optimal point, a set is obtained when using them. The set of solutions is called the Pareto frontier and contains elements that are equally suitable in the sense that none of them dominates any other.
Genetic operators
This step includes two sub-steps: crossover and mutation. After selecting the best terms (usually the top 2, but this number can vary), they are now used to create the next generation in the algorithm. By applying the characteristics of the chosen parents, new children are created that are a mixture of qualities. This can often be difficult depending on the type of data, but usually in combinatorial problemsit is quite possible to mix and output valid combinations.
Now it is necessary to introduce new genetic material into the generation. If this important step is not taken, the scientist will very quickly get stuck in local extremes and not get optimal results. This step is a mutation, and it is done quite simply, changing a small part of the children in such a way that they predominantly do not reflect subsets of the parents' genes. Mutation usually occurs probabilistically, since the probability that a child will get it, as well as its severity, is determined by the distribution.
Termination
In the end, the algorithm must end. This usually happens in two cases: either it has reached some maximum execution time, or it has reached a performance threshold. At this point, the final solution is selected and returned.
Example of evolutionary algorithms
Now, to illustrate the result of this process, you need to see the adviser in action. To do this, we can recall how several generations of dinosaurs learned to walk (gradually mastering the land), optimizing the structure of their body and applying muscle strength. Even though the early generation reptiles could not walk, the adviser was able to evolve them over time through mutation and crossover into a form that could walk.
These algorithms are becoming increasingly relevant in the modern world, as solutions based on them are increasingly used in industries such as digital marketing, finance andhe althcare.
Where are EAs used?
More broadly, evolutionary algorithms are used in a wide variety of applications such as image processing, vehicle routing, mobile communications optimization, software development, and even artificial neural network training. These tools are at the heart of many of the apps and websites people use on a daily basis, including Google Maps and even games like The Sims. In addition, the medical field is using EA to help make clinical decisions regarding cancer treatment. In fact, evolutionary algorithms are so robust that they can be used to solve almost any optimization problem.
Moore's Law
The growing prevalence of EO is driven by two main factors: available computing power and the accumulation of large datasets. The first can be described by Moore's Law, which essentially states that the amount of computing power in a computer doubles roughly every two years. This prediction has held for decades. The second factor relates to the growing reliance on technology, which allows institutions to collect an incredibly large amount of data, which allows them to analyze trends and optimize products.
How can evolutionary algorithms help marketers?
Market conditions are rapidly changing and very competitive. This has forced marketing managers to compete for better decision making. Increase in availablecomputing power has led workers to use EA for problem solving.
Conversion optimization
One of the main goals is to increase the rate of visitors to the site. This problem boils down to optimizing the number of users who do what the marketer wants. For example, if a company sells laptops, the ideal is to increase the number of site visitors who end up buying the product. This is the essence of conversion rate optimization.
One of the surprisingly important aspects is the choice of user interface. If the web design is not very user friendly, there are those who end up not buying the product for one reason or another. The goal then is to reduce the number of users who end up not converting, which increases the overall profit.