Genetic Algorithms are a part of what is known as Evolutionary Computing - a rapidly growing field in Artificial Intelligence.
Inspired by Charles Darwin’s theory of Evolution by Natural Selection, Genetic Algorithms attempt to solve problems through a similar process as that which occurs in nature.
Ingo Rechenberg, the pioneer of evolutionary computing, first introduced a set of optimization techniques known as Evolution Strategies in the 1960s, which was then further developed by others. About a decade later, John Holland invented Genetic Algorithms and published his work in a book titled “Adaptation in Natural and Artificial Systems (1975)”.
The computer scientist John Koza, building upon Rechenberg’s work, later invented what’s now know as Genetic Programming (GP), a method of utilizing evolutionary computing to solve complex problems.
Evolution in nature is a deeply complex process by which organisms evolve from one form to another, over extended periods of time. Some of them survive, and continue evolving, while the majority perish due to their inability to withstand the harsh and usually very demanding environment. Simply put, only the fittest survive. This process is known as Natural Selection, as only Nature is involved in the selection of the “fittest” organisms.
In order to ensure their survival, organisms in nature need to reproduce. Reproduction involves the creation, or production, of offspring using the same genetic material that forms the initial organism. In sexual reproduction, two parents are involved, causing half of the genetic material to be obtained from one parent, and the rest from another - resulting in a very different organism, carrying the genes of both parents.
Cells are a fundamental property of all living organisms. In each cell, the same set of chromosomes exist. A chromosome consists of genes, which are made up of DNA (eoxyribonucleic acid). DNA is the essential component of all life on Earth. Each gene contains genetic information, and a set of genes are said to encode a biological trait - such as height. Different forms of a particular gene or set of genes are called alleles, which usually arise by mutation. Each gene has its own position in a chromosome. This is referred to as the locus.
A full collection of genetic material is called a genome. A set of genes in a particular genmoe is known as a genotype. An organisms’ genotype interacts with the environment, resulting in a set of observable characteristics known as a phenotype.
Reproduction, or the formation of offspring, occurs in multiple ways in nature, of which we will focus on the sexual kind. Sexual Reproduction involves two parents. As a result of this, the offspring’s genetic composition will be a result of a combination of the genetic code of both parents. In the process of DNA copying, errors occur, slightly modifying the code. This process is called mutation. This is why, for example, human offspring of the same parents do not look exactly the same, with twins being the exception.
The chances of survival for a species depend on this process, and whether it can create offspring that can live long enough to reproduce and continue the cycle; or not.
Genetic algorithms mimic, in a simplified manner, Evolution by Natural Selection, which is a natural process that was first discovered by Charles Darwin. Evolution applies to all life on Earth, with so far no exception.
Similarly, a Genetic Algorithm begins with a set of solutions, commonly known as a population. Then, the genetic algorithm is allowed to run. Once a new population is formed (the details of this are in the next section), it is compared with the previous one to check if there is an improvement. Each offspring, or each individual in the population, is given a fitness rating, and the new population of offspring are selected based on their fitness level. The individuals that have a higher fitness level will be given a higher chance of reproducing, and vice versa.
This is repeated for many generations, until either the maximum number of allowed generations is reached, or until the best solution is found.