def run(fitness_fn_key, rep="bubble_down"): fitness_fn = fitness.benchmarks(fitness_fn_key) gp.set_fns_leaves(fitness_fn.arity) variga.MINLEN = 100 variga.MAXLEN = 100 variga.PHENOTYPE_DISTANCE = gp.tree_distance variga.FITNESS = fitness_fn if rep == "bubble_down": variga.GENERATE = generate_bubble_down_tree_and_fn elif rep == "grow": variga.GENERATE = generate_grow_tree_and_fn else: raise ValueError variga.MAXIMISE = False variga.SUCCESS = success variga.POPSIZE = 1000 variga.GENERATIONS = 100 variga.PMUT = 0.01 variga.CROSSOVER_PROB = 0.7 variga.ELITE = 1 variga.TOURNAMENT_SIZE = 3 variga.WRAPS = 1 variga.main()
variga.MAXLEN = 100 variga.PHENOTYPE_DISTANCE = gp.tree_distance # run the fitness function as normal to get individuals' semantics variga.FITNESS = fitness_fn # but overwrite the individuals' fitness values variga.COEVOLUTIONARY_FITNESS = lambda pop: LCCB_coevo(fitness_fn, pop) if rep == "bubble_down": variga.GENERATE = lambda rng: generate_bubble_down_tree_and_fn_minn_maxn(10, 20, rng) elif rep == "grow": variga.GENERATE = generate_grow_tree_and_fn_maxd else: raise ValueError variga.MAXIMISE = False variga.SUCCESS = lambda x: False # FIXME variga.POPSIZE = 50 variga.GENERATIONS = 20 variga.PMUT = 0.01 variga.CROSSOVER_PROB = 0.7 variga.ELITE = 1 variga.TOURNAMENT_SIZE = 3 variga.WRAPS = 1 variga.main() if __name__ == "__main__": srff = fitness.benchmarks("pagie-2d") gp.set_fns_leaves(srff.arity) # run(srff) LCEB(srff, 10, 5, 2)