def iteration(self): pop = self.__pop.getPop() i1 = random.randint(0, len(pop) - 1) i2 = random.randint(0, len(pop) - 1) if i1 != i2: c = Individual.crossover(pop[i1], pop[i2]) c.mutate(self.__prob) f1 = pop[i1].fitness() f2 = pop[i2].fitness() fc = c.fitness() if (f1 > f2) and (f1 > fc): pop[i1] = c if (f2 > f1) and (f2 > fc): pop[i2] = c self.__pop.setPop(pop)
def iteration(self): """ an iteration pop: the current population pM: the probability the mutation to occure vmin: the minimum possible value vmax: the maximum possible value """ i1 = self.__population.selection() i2 = self.__population.selection() if i1 != i2: child = Individual.crossover(i1, i2) child.mutate(self.__mutationProbability) self.__population.getPopulation().append(child) self.__population.getPopulation().sort(reverse=True) self.__population.getPopulation().pop(0)