Example #1
0
def learn(existing_brain, eval_function):




	input_size = brain.Mutation_params().input_count
	output_size = brain.Mutation_params().output_count

	if existing_brain != None:
		best_brain = existing_brain
	else:
		best_brain = brain.Brain()
	benchmark_instance = copy.deepcopy(best_brain)
	best_score = eval_function(benchmark_instance, visualization.Visualization_flags.VISUALIZATION_OFF)
	print('NEW BEST SCORE: ' + str(best_score))
	
	counter = 0
	average = 0	
	
	while best_score < 100:

		counter += 1
		score = 0
		
		mutant = copy.deepcopy(best_brain) 


		for i in range(1):
			mutant.default_mutation(input_size,output_size)

		test_instance = copy.deepcopy(mutant)

		score = eval_function(test_instance, visualization.Visualization_flags.VISUALIZATION_OFF)
		
		average += score
		if ((counter % 100) == 0):
			print ('LAST 100 AVERAGE: ' + str(average/100))		
			average = 0
		if score >= best_score:
			print('NEW BEST SCORE: ' + str(score))
			brain.print_brain_to_file(mutant)

			best_score = score

			best_brain = copy.deepcopy(mutant)

	

	return best_brain
Example #2
0
def learn(eval_function):

    input_size = brain.Mutation_params().input_count
    output_size = brain.Mutation_params().output_count

    best_brain = brain.Brain(1)

    best_score = 0

    counter = 0
    average = 0

    while best_score < 100:

        counter += 1
        score = 0

        mutant = copy.deepcopy(best_brain)

        for i in range(1):
            mutant.default_mutation(input_size, output_size)

        test_instance = copy.deepcopy(mutant)

        score = eval_function(test_instance, Learning_flags.VISUALIZATION_OFF)

        #print(score)

        average += score
        if ((counter % 100) == 0):
            print('LAST 100 AVERAGE: ' + str(average / 100))
            average = 0
        if score >= best_score:
            print('NEW BEST SCORE: ' + str(score))
            brain.print_brain_to_file(mutant)

            best_score = score

            best_brain = copy.deepcopy(mutant)

    return best_brain
Example #3
0
def impatient_learn(existing_brain, eval_function):




	input_size = brain.Mutation_params().input_count
	output_size = brain.Mutation_params().output_count

	if existing_brain != None:
		best_brain = existing_brain
	else:
		best_brain = brain.Brain()
	benchmark_instance = copy.deepcopy(best_brain)

	best_score = eval_function(benchmark_instance, visualization.Visualization_flags.VISUALIZATION_OFF)
	print('NEW BEST SCORE: ' + str(best_score))
	
	counter = 0
	average = 0	

	chaos = 1.0
	chaos_ceiling = 5.0
	
	while best_score < 100:

		counter += 1
		score = 0
		
		mutant = copy.deepcopy(best_brain) 


		for i in range(1):
			mutant.default_mutation(input_size,output_size)

		test_instance = copy.deepcopy(mutant)

		score = eval_function(test_instance, visualization.Visualization_flags.VISUALIZATION_OFF)
		
		average += score
		if ((counter % 100) == 0):
			print ('LAST 100 AVERAGE: ' + str(average/100))
			print('CHAOS: ' + str(chaos))		
			#if uniform(0,1) > .5:
		#		print('SUPRESSING MUTATION')
		#		brain.Mutation_params().supress_mutation()
		#	else:	
		#		print('AMPLIFYING MUTATION')
		#		brain.Mutation_params().amplify_mutation()
			average = 0
		if score >= best_score:
			chaos = 1
			print('NEW BEST SCORE: ' + str(score))
			brain.print_brain_to_file(mutant)

			best_score = score

			best_brain = copy.deepcopy(mutant)
		elif chaos < chaos_ceiling:
			chaos += .01
		brain.Mutation_params().mutation_cycles = randrange(int(chaos)) + 1
	

	return best_brain