Fixed termination related stuff

This commit is contained in:
SimpleArt
2020-10-22 18:23:27 -04:00
parent 4ca859c34a
commit 9baf3c7dc5
2 changed files with 13 additions and 10 deletions

View File

@ -17,7 +17,7 @@ ga.target_fitness_type = 'min'
# Terminate when a chromosome has all 0's # Terminate when a chromosome has all 0's
ga.fitness_goal = 0 ga.fitness_goal = 0
ga.termination_impl = EasyGA.Termination_Methods.fitness_based ga.generation_goal = None
ga.evolve() ga.evolve()

View File

@ -8,6 +8,9 @@ class Termination_Methods:
if ga.population == None: if ga.population == None:
return True return True
# If fitness goal is set, check it.
if ga.fitness_goal is not None:
# If minimum fitness goal reached, stop ga. # If minimum fitness goal reached, stop ga.
if ga.target_fitness_type == 'min' and ga.get_chromosome_fitness(0) >= ga.convert_fitness(ga.fitness_goal): if ga.target_fitness_type == 'min' and ga.get_chromosome_fitness(0) >= ga.convert_fitness(ga.fitness_goal):
return False return False
@ -16,5 +19,5 @@ class Termination_Methods:
if ga.target_fitness_type == 'max' and ga.get_chromosome_fitness(0) >= ga.convert_fitness(ga.fitness_goal): if ga.target_fitness_type == 'max' and ga.get_chromosome_fitness(0) >= ga.convert_fitness(ga.fitness_goal):
return False return False
# Otherwise continue ga. # If generation goal is set, check it.
return ga.current_generation < ga.generation_goal return ga.generation_goal is not None and ga.current_generation < ga.generation_goal