diff --git a/src/run_testing.py b/src/run_testing.py index 4e46a76..bb1a9fd 100644 --- a/src/run_testing.py +++ b/src/run_testing.py @@ -17,7 +17,7 @@ ga.target_fitness_type = 'min' # Terminate when a chromosome has all 0's ga.fitness_goal = 0 -ga.termination_impl = EasyGA.Termination_Methods.fitness_based +ga.generation_goal = None ga.evolve() diff --git a/src/termination_point/termination_methods.py b/src/termination_point/termination_methods.py index 15fb823..9d62df2 100644 --- a/src/termination_point/termination_methods.py +++ b/src/termination_point/termination_methods.py @@ -8,13 +8,16 @@ class Termination_Methods: if ga.population == None: return True - # 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): - return False + # If fitness goal is set, check it. + if ga.fitness_goal is not None: - # If maximum fitness goal reached, stop ga. - if ga.target_fitness_type == 'max' and ga.get_chromosome_fitness(0) >= ga.convert_fitness(ga.fitness_goal): - return False - - # Otherwise continue ga. - return ga.current_generation < ga.generation_goal + # 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): + return False + + # If maximum fitness goal reached, stop ga. + 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