예제 #1
0
    def __init__(self):
        self.generation = 0
        evolver.TIME = time.time()
        evolver.SAVE_BEST = False
        evolver.CODON_SIZE = 100
        evolver.ELITE_SIZE = 0
        evolver.POP_SIZE = 200
        evolver.GENERATION_SIZE = 1
        evolver.GENERATIONS = 50
        evolver.DEFAULT_FIT = 100000
        evolver.MUTATION_PROBABILITY = 0.015
        evolver.CROSSOVER_PROBABILITY = 0.0
        evolver.GRAMMAR_FILE = "grammars/support2.bnf"
        evolver.FITNESS_FUNCTION = evolver.StructuralFitness()
        evolver.IMG_COUNTER = 0

        self.popSize = evolver.POP_SIZE
        self.grammar = evolver.Grammar(evolver.GRAMMAR_FILE)
        self.individuals = evolver.initialise_population(evolver.POP_SIZE)
        for idx, indiv in enumerate(self.individuals):
            indiv.UID = idx
            if idx > 0:
                indiv.genome = None
        evolver.evaluate_fitness(self.individuals, self.grammar,
                                 evolver.FITNESS_FUNCTION)
        self.best_ever = min(self.individuals)
        self.individuals.sort()
        evolver.create_meshes(self.individuals)
        evolver.print_stats(1, self.individuals)
예제 #2
0
    def __init__(self):
        self.generation = 0
        evolver.TIME = time.time()
        evolver.SAVE_BEST = True
        evolver.CODON_SIZE = 100
        evolver.ELITE_SIZE = 1
        evolver.POPULATION_SIZE = 35
        evolver.GENERATION_SIZE = 35
        evolver.FRONT_FOLDER = "frontData"
        evolver.GENERATIONS = 5
        evolver.DEFAULT_FIT = 100000000000000
        evolver.MUTATION_PROBABILITY = 0.015
        evolver.CROSSOVER_PROBABILITY = 0.7
        evolver.GRAMMAR_FILE = "grammars/jon_pylon10.bnf"
        evolver.FITNESS_FUNCTION = evolver.StructuralFitness()
        evolver.IMG_COUNTER = 0

        self.pop_size = evolver.POPULATION_SIZE
        self.grammar = grammar.Grammar(evolver.GRAMMAR_FILE)
        self.individuals = evolver.initialise_population(evolver.POPULATION_SIZE)
        for idx, indiv in enumerate(self.individuals):
            indiv.uid = idx
        self.selection = lambda x: evolver.tournament_selection(x, evolver.POPULATION_SIZE)
        evolver.evaluate_fitness(self.individuals, self.grammar,
                                 evolver.FITNESS_FUNCTION)
        self.best_ever = min(self.individuals)
        self.fronts = []
        self.individuals.sort()

        print "creating meshes"
        evolver.create_meshes(self.individuals)
        evolver.print_stats(1, self.individuals)
예제 #3
0
 def step(self):
     """creates next generation"""
     print("no. of indivs: " + str(len(self.individuals)))
     self.individuals, self.fronts, self.best_ever = evolver.step(
         self.individuals, self.fronts, self.grammar,
         self.selection, evolver.FITNESS_FUNCTION, self.best_ever)
     evolver.print_stats(self.generation, self.individuals)
     sys.stderr.write("Gen: " + str(self.generation) + "\n")
     self.generation += 1