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