import random import pyrosim import matplotlib.pyplot as plt from robot import ROBOT from individual import INDIVIDUAL for i in range(0, 10): individual = INDIVIDUAL() individual.evaluate() # sim = pyrosim.Simulator(eval_time=500, play_paused=False) # # robot = ROBOT(sim, random.random()*2-1) # # # Start # # sim.start() # # sim.wait_to_finish() # # # y # sensorData = sim.get_sensor_data(sensor_id=robot.P4, svi=1) # # print(sensorData[-1]) # # # Analyze sensor data # # f = plt.figure() #
from individual import INDIVIDUAL ''' Instructions: Implement hill climber search https://www.reddit.com/r/ludobots/wiki/pyrosim/hillclimber Blue diamond is the y coordinate ''' plot_flag = True visualize_best = True fitness_robots = [] parent = INDIVIDUAL() parent.evaluate(blind_mode=False) print(parent.fitness) for i in range(100): child = copy.deepcopy(parent) child.mutate() child.evaluate(blind_mode=True) print('[g:{}] - [Pw:{}] - [P:{}] - [c:{}]'.format(i, parent.genome, parent.fitness, child.fitness)) if (child.fitness > parent.fitness): parent = child fitness_robots.append(child.fitness) child.evaluate(blind_mode=True) # Save the strongest model f = open('robot.p', 'wb')
import matplotlib.pyplot as plt import pickle from robot import ROBOT from individual import INDIVIDUAL from copy import deepcopy #create objects parent = INDIVIDUAL() print(parent.evaluate(play_blind=True)) for i in range(100): child = deepcopy(parent) child.mutate() print( f'[g: {i}] [pw: {parent.genome}] [p: {parent.fitness}] [c: {child.evaluate(play_blind=True)}]' ) if (child.fitness > parent.fitness): parent = child # f = open('robot.p','wb') # pickle.dump(parent , f ) # f.close() # child.evaluate()
import random import pyrosim import matplotlib.pyplot as plt from robot import ROBOT import copy import pickle from individual import INDIVIDUAL parent = INDIVIDUAL() parent.evaluate(True) for i in range(0, 100): child = copy.deepcopy(parent) child.mutate() child.evaluate(True) print("[g: %s] [pw: %s] [p: %s] [c: %s]" % (i + 1, parent.genome, parent.fitness, child.fitness)) if child.fitness > parent.fitness: child.evaluate(True) parent = child # f = open("robot.p", "wb") # # pickle.dump(parent, f) # # f.close()