Esempio n. 1
0
    def test_save_load_phenotypes(self):
        m = Manager()
        m.create_from_scratch()
        phenotypes = list(m.pop.phenotypes)
        m.save()
        m.close()

        m2 = Manager()
        m2.load()
        self.maxDiff=None
        self.assertListEqual(m2.pop.phenotypes, phenotypes)
        m2.close()
Esempio n. 2
0
                    #       phenotypes that can be shown and voted for.
                elif event.type == self.MONKEY_TESTING_EVENT:
                    key = random.choice([pygame.K_y, pygame.K_n])
                    try:
                        pygame.event.post(pygame.event.Event(pygame.KEYDOWN, {'key': key}))
                    except pygame.error as e:
                        logger.error("Monkey testing error: %s", e)

            pygame.time.wait(20)  # let the processor chill for a bit

    def show_phenotype_image(self, ph):
        logger.debug("Showing phenotype %s.", ph)
        blitdata = rationalSizer(pygame.image.load(self.renderer.get_image_path(ph)),
                                 self.resolution)
        self.main_surface = tran_none(self.main_surface, blitdata)

    def show_next(self):
        ph = self.manager.get_next_phenotype(self.renderer.check_image_available)
        self.show_phenotype_image(ph)

if __name__ == '__main__':
    manager = Manager(size=5, min_votes=5, directory=os.getcwd(), vote_history=VoteHistoryManager())
    try:
        manager.load()
    except IOError:
        manager.create_from_scratch()
    renderer = ImageRenderer(os.path.join(os.getcwd(), "images"))

    interface = Interface(manager, renderer)
    interface.run(monkey_testing=MONKEY_TESTING)
Esempio n. 3
0
total_permutations = len(sizes) * len(crossover_probabilities) * len(shared_fitness_sigmas) * \
                     len(mutation_rates) * len(min_votes_tests)

index = 0
for size in sizes:
    for crossover_probability in crossover_probabilities:
        for shared_fitness_sigma in shared_fitness_sigmas:
            for mutation_rate in mutation_rates:
                for min_votes in min_votes_tests:
                    improvement_results = []
                    for i in range(TRIES):
                        m = Manager(size=size, crossover_probability=crossover_probability,
                                    shared_fitness_sigma=shared_fitness_sigma,
                                    mutation_rate=mutation_rate, min_votes=min_votes)
                        m.create_from_scratch()
                        runner = SimulationRunner(m, objective_function=get_desirability)
                        runner.run(ITERATIONS)
                        improvement = runner.improvement
                        improvement_results.append(improvement)
                    mean, variance = compensated_mean_and_variance(improvement_results)
                    index += 1
                    str_list.append("{0}\t{1}\t{2}\t{3}\t{4}\t{5}\t{6:f}\t{7:f}".format(
                        index, size, crossover_probability, shared_fitness_sigma, mutation_rate,
                        min_votes, mean, variance
                    ))
                    print("{0:.2%} - PERMUTATION {1}/{2} COMPLETE".format(index / float(
                        total_permutations), index, total_permutations))
                    print(str_list[-1])

print("== RESULTS ==")