...

/

Understanding Reinsertion

Understanding Reinsertion

Learn about reinsertion and the initialization required for its implementation.

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:

Press + to interact
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. ...