Genetic algorithm coding
proc GA(Fitness, theta, n, r, m) ; Fitness is the fitness function for ranking individuals ; theta is the fitness threshold, which is used to determine ; when to halt ; n is the population size in each generation (e.g., 100) ; r is the fraction of the population generated by crossover (e.g., 0.6) ; m is the mutation rate (e.g., 0.001) P := generate n individuals at random ; initial generation is generated randomly while max Fitness(hi) < theta do i ; define the next generation S (also of size n) Reproduction step: Probabilistically select (1-r)n individuals of P and add them to S intact, where the probability of selecting individual hi is Prob(hi) = Fitness(hi) / SUM Fitness(hj) j Crossover step: Probabilistically select rn/2 pairs of individuals from P according to Prob(hi) foreach pair (h1, h2), produce two offspring by applying the crossover operator and add these offspring to S Mutate step: Choose m% of S and randomly invert one bit in each P := S end_while Find b such that Fitness(b) = max Fitness(hi) i return(b)end_proc