# Fundamental concepts in genetic algorithms

In order to build a GA, we need to understand several key concepts and terms. These concepts are used extensively throughout the field of GAs to build solutions to various problems. One of the most important aspects of GAs is *randomness*. In order to iterate, it relies on the random sampling of individuals. This means that the process is non-deterministic. So, if you run the same algorithm multiple times, you might end up with different solutions.

Let's now define the term *population*. A population is a set of individuals that are possible candidate solutions. In a GA, the single best solution is not maintained at any given stage but rather a set of potential solutions, one of which could be the best. But the other solutions play an important role during the search. Since the population of solutions is tracked, it is less likely to get stuck in a local optimum. Getting stuck in a local optimum is a classic problem faced by other optimization...