def Evolution(self, MRate, CRate, nGenerations): self.MRate = MRate self.CRate = CRate self.nGenerations = nGenerations # creates the initial population pop = Population(self.size_pop) pop.create_new(self.Matrix_inf, self.size_pop, self.nGenes, True, self.IniCoordinate, self.FinalCoordinate) fittest = pop.Fittest(self.size_pop) print("Path: ", fittest.genes, "Cost:", fittest.cost, "Fitness:", fittest.fitness) self.resultado_fitness.append(fittest.fitness) self.resultado_generation.append(0) ##evolves the initial population in n generations for i in range(1,self.nGenerations): pop = self.create_new_generation(pop) fittest = pop.Fittest(self.size_pop) print("Path: ", fittest.genes, "Cost:", fittest.cost,"Fitness:", fittest.fitness) self.resultado_fitness.append(fittest.fitness) self.resultado_generation.append(i) fittest = pop.Fittest(self.size_pop) ##print solution print("\nSolution:") print("Path: ", fittest.genes, "Cost:", fittest.cost,"Fitness:", fittest.fitness) self.fittest_cost = fittest.cost
def selection(self, pop): #Torneio fitpop = Population(self.size_pop) quantity = random.randint(1, self.size_pop) for i in range(quantity): add = random.randint(0, self.size_pop - 1) fitpop.chromosomes.append(pop.chromosomes[add]) fit = fitpop.Fittest(quantity) return (fit)