Genetic Algorithms

Eli Frigo + Clive Moras

Theoretical Foundations

Relationship to Evolutionary Biology

Genetic algorithms (GAs) mimic natural selection by simulating the evolutionary processes observed in nature, such as selection, crossover, and mutation, to solve optimization problems. Inspired by Charles Darwin's theory of natural selection, GAs start with a population of randomly generated individuals, each representing a potential solution encoded as chromosomes. These individuals are evaluated based on a fitness function that measures how well they solve the problem at hand. The fittest individuals are selected to reproduce, ensuring that their desirable traits are passed on to the next generation through crossover, where segments of parent chromosomes are exchanged to create offspring with new combinations of traits. Mutation introduces random changes to some genes, maintaining genetic diversity and preventing premature convergence to suboptimal solutions. This iterative process of selection, crossover, and mutation continues over many generations, gradually improving the population's overall fitness and converging towards an optimal solution. Various selection methods, such as elitism, roulette wheel, tournament, and rank selection, are employed to ensure that the best individuals have a higher chance of reproducing. Additionally, GAs can be enhanced with hybrid approaches and new rules for parent selection to improve their efficiency and effectiveness in solving complex problems. Applications of GAs range from medical diagnoses and language identification to video game simulations and solving classical optimization problems like the Traveling Salesman Problem. By mimicking the principles of natural evolution, GAs provide a robust and adaptive method for finding high-quality solutions in large and complex search spaces.

Comparison with other optimization techniques

Genetic-Algorithms vs Neural Networks

Genetic algorithms are search-based optimization algorithms used to find optimal or near-optimal solutions for search problems and optimization problems. Neural networks, on the other hand, are mathematical models that map between complex inputs and outputs. They can classify elements that are not previously known. Genetic algorithms usually perform well on discrete data, whereas neural networks usually perform efficiently on continuous data. Genetic algorithms can fetch new patterns, while neural networks use training data to classify a network.