plt.show() def sample_fitness(genome): sum_weight = sum( [conn.weight for conn in genome.connection_genes.values()]) if sum_weight > 50: return 1.0 return 0.0 if __name__ == "__main__": i = Innovator() r = Random() e = Evaluator(sample_fitness, i, [TestNode]) iters = 100 e.initialize_population(size=(1, 2)) for _ in progressbar.progressbar(range(iters)): e.evolve_generation() pop = list(e.previous_generation.items()) pop.sort(key=lambda x: x[1].fitness, reverse=True) for (genome_id, genome) in pop[:1]: genome.vizualize_genome( genome_id, "genome {} -- {}".format( genome_id, 1 / genome.fitness if genome.fitness > 0 else 0)) plt.show()