- Initialize Population: Generate a random population of solutions.
- Evaluate Fitness: Compute fitness for each solution.
- Selection: Select solutions based on fitness to create the next generation.
- Crossover: Combine two parents to create offspring.
- Mutation: Introduce (or not) random change in solution.
Repeat until target (or maximum number of generations) is reached.