January 2007: Genetic Algorithms (GAs)


The term Genetic Algorithm (or GA) describes a set of methods, which can be used to optimise complex problems. As the name suggests, the processes employed by GAs are inspired by natural selection and genetic variation. To achieve this a GA uses a population of possible solutions to a problem and applies a series of processes to them.

These processes mimic those in nature in such a way that subsequent populations are fitter and more adapted to their environment. As time and generations progress, they become better suited to their environment and given sufficient time provide better more optimal solutions.

Robustness of GAs

... many complex engineering problems ... cannot be optimised analytically

Many problems in engineering are complex ones. This generally means they cannot be optimised analytically. Even when they can be resolved this way, the computational effort is often impracticable due to their complexity.

Alternatively, there are many types of search methods employing a numerical approach. Unfortunately these can lack robustness when confronted with highly complex or unorthodox problems. Attempts made to optimise complex systems using these traditional methods (such as hill climbing) can often fail. Where traditional methods transit carefully from one solution to the next making it very easy for the solution to become trapped in a localised maxima, GAs command a population of solutions, which climb many peaks simultaneously.

The impetus of a GA population to improve is not influenced by local gradients, but by their individual fitness and aptness to their environment. Where the environment is a mathematical landscape of the problem being optimised. This robustness thus gives GAs the ability to outperform more conventional search techniques due to their implementation of adaptive evolutionary approaches.

GA representation of problems

In keeping with the evolutionary theme each individual in a GA population is represented by a chromosome. As in nature this chromosome contains genetic information relating to each individuals characteristics.

For simple genetic algorithms the chromosome is often represented as a binary string, i.e. 101010001112. GAs can make use of this to represent numerical information forming an input value into a system or problem.

For example if an input range was determined to be between 50 and 60, and we decided to use a chromosome length of 10 bits. All the initial population would have binary representations of values distributed between 00000000002 and 11111111112. In base 10 this is every value between 0 and 1023. Mapping these to our input values, a 10 bit chromosome therefore represents all potential input values between 50 and 60 with an accuracy of approximately 0.01.

Image of: Fig 1. The basic algorithm

Fig 1. The basic algorithm

The algorithm

The basic steps for almost all GAs involves the following:

1 Initialise:
Create a starting population, which represents legal solutions to a problem.
2 Fitness:
Measure the aptness (or fitness) of each individual in the population.
3 Selection:
Using biased randomness select the fittest individuals to survive to the next generation. Note a biased random procedure will tend to select the fittest but will sometimes select weak individuals (see roulette wheel below).
4 Crossover:
Replicate the mating process by crossing over randomly selected individuals. This means exchanging chromosome information.
5 Mutation:
Replicate mutation in the population by selecting an individual (randomly and infrequently) and subtly altering its chromosome pattern.
6 Repeat:
Return to measuring the population fitness (step two above). This constitutes one generation.

Repeating the above algorithm (highlighted in Figure 1) has the effect of improving the overall fitness of the population. Repeated often enough, over say 100 generations or more, will produce fitter, more optimal solutions.


We need to ascertain some form of fitness that can be associated with a particular individual. With simple GAs this can just be the value output from a function or a computer model of the system we are trying to optimise.

For more complex problems involving multi-criteria, a fitness measure associated with solution dominance can be used.

Reproduction by selection

To selectively reproduce the population to determine the next generation we use a biased random selection procedure based on fitness. This is implemented using a roulette wheel method.

Image of: Fig 2. Roulette wheel selection

Fig 2. Roulette wheel selection

An imaginary roulette wheel is constructed with a segment for each individual in the population. Figure 2 shows that the size of the segment is based on the aptness of the particular individual. A fit individual will occupy a larger slice of the roulette wheel than a weaker one.

Selection is made by rotating the wheel a number of times equal to the population size. When the wheel stops the individual it points to is selected. This means that fitter individuals will tend to be selected more frequently than weaker ones.


Just relying on selection, a population would eventually consist only of the fittest individuals from the initial random population.

Image of: Fig 3. Simple crossover

Fig 3. Simple crossover

To better explore potential solutions GAs employ a crossover operator, which mimics the reproduction process. Two individuals are mated by an exchange of these characteristics, and two child chromosomes are created.

In the simplest form two individuals are selected for mating using a probability factor Px (0.7 say). A randomly selected set of patterns from the parents are then exchanged to form two child chromosomes. A typical method is shown in Figure 3.


A further enhancement to allow chromosomes to explore all aspects of a search space is mutation. The previous operations help to reproduce and improve the level of fitness of a population, however the general form of the characteristics will remain unchanged.

Image of: Fig 4. Mutation

Fig 4. Mutation

The concept of mutation also mimics nature in that very occasionally (with Pm=0.001 say) a wild-card is played, which causes an upset to the schematic order. Stochastically, this helps to ensure that all possible solutions are potentially investigated.

Typically mutation will involve swapping two randomly selected bits in a chromosome, i.e. 11101000002 will become 11001001002 if the 3rd and 8th bits are selected (see Figure 4).

Application of GAs

Since their development in the late 1980ís GAs have been used to find solutions to many types of problems. Typical early academic problems such as the TSP and the 8 Queens problem soon evolved into more serious engineering applications.

A unique characteristic of GAs is that the fundamental algorithm is unaware of the problem it is optimising. All that is required is that the input parameters into a model or system can be efficiently transformed to and from a suitable GA chromosome format. This means that GA optimisation can be applied to many types of complex problem.

In recent years the scope has increased substantially so that GAs can be used to optimise complex scheduling problems, spatial layout and many other types of complex engineering systems that are otherwise impossible to efficiently maximise.

Author: John Dalton

Contact: john.dalton@ncl.ac.uk