Search⌘ K

Understanding Reinsertion

Explore how reinsertion works in genetic algorithms within Elixir, focusing on integrating various strategies to maintain population size, increase diversity, and improve fitness for evolving generations efficiently.

What is reinsertion?

Reinsertion is the process of taking chromosomes produced from selection, crossover, and mutation and then inserting them back into a population to move on to the next generation. Look at evolve/4 in genetic.ex. here:

C++
def evolve(population, problem, generation, opts \\ []) do
population = evaluate(population, &problem.fitness_function/1, opts)
best = hd(population)
IO.write("\rCurrent best: #{best.fitness}\tGeneration: #{generation}")
if problem.terminate?(population, generation) do
best
else
{parents, leftover} = select(population, opts)
children = crossover(parents, opts)
children ++ leftover
|> mutation(opts)
|> evolve(problem, generation+1, opts)
end
end

Recall from the lesson Customizing Selection in Your Framework, that combined children and leftover and mutated the result to form a new population. ...