Genetic Algorithms

The following pseudo-code describes a basic Genetic Algorithm


GENETIC-ALGORITHM(population, fitness)
    N = population.size()

    while(stopping criteria) // max num iterations or target fitness reached
        next_generation ← {}

        for i = 1...N
            x ← random_selection(population, fitness)
            y ← random_selection(population, fitness)

            child ← crossover(x, y)

            if(rand.double() <= mutation_probability )
                child ← mutate(child)
            end

            next_generation.add(child)
        end
        population ← next_generation
    end

    return population.most_fit()
end