def execute_generational_steps(): x = init_x_vals(-10, 10, 100) y = equation_eval(x) training_data = ExplicitTrainingData(x, y) component_generator = ComponentGenerator(x.shape[1]) component_generator.add_operator(2) component_generator.add_operator(3) component_generator.add_operator(4) crossover = AGraphCrossover(component_generator) mutation = AGraphMutation(component_generator) agraph_generator = AGraphGenerator(STACK_SIZE, component_generator) fitness = ExplicitRegression(training_data=training_data) local_opt_fitness = ContinuousLocalOptimization(fitness, algorithm='lm') evaluator = Evaluation(local_opt_fitness) ea = AgeFitnessEA(evaluator, agraph_generator, crossover, mutation, 0.4, 0.4, POP_SIZE) island = Island(ea, agraph_generator, POP_SIZE) archipelago = SerialArchipelago(island) opt_result = archipelago.evolve_until_convergence(max_generations=500, fitness_threshold=1.0e-4) if opt_result.success: print(archipelago.get_best_individual().get_latex_string()) else: print("Failed.")
def test_best_individual_returned(one_island): archipelago = SerialArchipelago(one_island) generator = MultipleValueChromosomeGenerator(generate_zero, VALUE_LIST_SIZE) best_indv = generator() archipelago._islands[0].load_population([best_indv], replace=False) assert archipelago.get_best_individual().fitness == 0