Updated sort_by_best_fitness
This commit is contained in:
@ -61,7 +61,7 @@ class GA:
|
|||||||
if self.current_generation == 0:
|
if self.current_generation == 0:
|
||||||
self.initialize_population()
|
self.initialize_population()
|
||||||
self.set_all_fitness(self.population.chromosome_list)
|
self.set_all_fitness(self.population.chromosome_list)
|
||||||
self.population.set_all_chromosomes(self.sort_by_best_fitness())
|
self.population.set_all_chromosomes(self.sort_by_best_fitness(self.population.get_all_chromosomes()))
|
||||||
else:
|
else:
|
||||||
self.parent_selection_impl(self)
|
self.parent_selection_impl(self)
|
||||||
next_population = self.crossover_impl(self)
|
next_population = self.crossover_impl(self)
|
||||||
@ -70,7 +70,7 @@ class GA:
|
|||||||
|
|
||||||
self.population = next_population
|
self.population = next_population
|
||||||
self.set_all_fitness(self.population.chromosome_list)
|
self.set_all_fitness(self.population.chromosome_list)
|
||||||
self.population.set_all_chromosomes(self.sort_by_best_fitness())
|
self.population.set_all_chromosomes(self.sort_by_best_fitness(self.population.get_all_chromosomes()))
|
||||||
|
|
||||||
number_of_generations -= 1
|
number_of_generations -= 1
|
||||||
|
|
||||||
@ -104,10 +104,7 @@ class GA:
|
|||||||
# Set the chromosomes fitness using the fitness function
|
# Set the chromosomes fitness using the fitness function
|
||||||
chromosome.set_fitness(self.fitness_function_impl(chromosome))
|
chromosome.set_fitness(self.fitness_function_impl(chromosome))
|
||||||
|
|
||||||
def sort_by_best_fitness(self, chromosome_set = None):
|
def sort_by_best_fitness(self, chromosome_set):
|
||||||
|
|
||||||
if chromosome_set == None:
|
|
||||||
chromosome_set = self.population.get_all_chromosomes()
|
|
||||||
|
|
||||||
chromosome_set_temp = chromosome_set
|
chromosome_set_temp = chromosome_set
|
||||||
not_sorted_check = 0
|
not_sorted_check = 0
|
||||||
@ -115,9 +112,7 @@ class GA:
|
|||||||
not_sorted_check = 0
|
not_sorted_check = 0
|
||||||
for i in range(len(chromosome_set_temp)):
|
for i in range(len(chromosome_set_temp)):
|
||||||
if ((i + 1 < len(chromosome_set_temp)) and (chromosome_set_temp[i + 1].fitness > chromosome_set_temp[i].fitness)):
|
if ((i + 1 < len(chromosome_set_temp)) and (chromosome_set_temp[i + 1].fitness > chromosome_set_temp[i].fitness)):
|
||||||
temp = chromosome_set[i]
|
chromosome_set[i], chromosome_set_temp[i + 1] = chromosome_set_temp[i + 1], chromosome_set[i]
|
||||||
chromosome_set_temp[i] = chromosome_set[i + 1]
|
|
||||||
chromosome_set_temp[i + 1] = temp
|
|
||||||
else:
|
else:
|
||||||
not_sorted_check += 1
|
not_sorted_check += 1
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user