Env(mapsize, foodTypes[0]), Env(mapsize, foodTypes[1]), Env(mapsize, foodTypes[2]), Env(mapsize, foodTypes[3]) ] for e in env: e.makeGradient() for i in range(0, 100): e.makeFoodRandom() e.updateMap() animats = [] for a in range(0, 20): animats.append( Animat(random.randrange(0, mapsize), random.randrange(0, mapsize), env, foodTypes, 1500, 1000)) fig = plt.figure() ims = [] toPlot = zeros((mapsize, mapsize)) Animat.foodTargeting = False Animat.allowDeath = False trainingTicks = 10000 # Training session for i in range(0, trainingTicks): for e in env: e.tick() Animat.startTick() for a in animats: stillAlive = a.tick() if not stillAlive:
print 'Running Simulation - Moving food around, picking up, dropping' # Deprecated filename = 'nn_precise_100k.p' size = 50; env1 = Env(size,0) env2 = Env(size,1); for i in range (0,20): env1.makeFoodRandom(); env2.makeFoodRandom(); env1.updateMap() env2.updateMap() animats = [Animat(25,25,[env1,env2],filename),Animat(10,40,[env1,env2],filename)]; stateMachine = ['notholding','notholding']; fig = plt.figure() ims = [] toEat = [random.randrange(0,2),random.randrange(0,2)]; toFollow = [0 if toEat == 1 else 1,0 if toEat == 1 else 1]; for i in range(0,1000): env1.tick() env2.tick() for index,a in enumerate(animats): if stateMachine[index] == 'fail': toEat[index] = random.randrange(0,2); toFollow[index] = 0 if toEat == 1 else 1;
import matplotlib.animation as animation print 'Running Simulation - Find food' #filename = 'nn_scents_based.p' filename = 'nn_precise_100k.p' #Init Environment and food sources env = Env(50) for i in range(0, 10): env.makeFoodRandom() #env.makeFood(20,20); env.updateMap() #Create Animat ID = 1 a = Animat(0, 0, env, filename, 1) fig = plt.figure() ims = [] for i in range(0, 1000): print "Tick: " + str(i) env.tick() if a.alive: a.tickStateMachine() env.map[a.y, a.x] = env.map.max() im = plt.imshow(env.map) im.set_cmap('spectral') ims.append([im]) env.tick()
print 'Running Simulation - Find food' #filename = 'nn_scents_based.p' filename = 'nn_precise_100k.p' #Init Environment and food sources env = [Env(50, 0), Env(50, 1)] for e in env: e.makeGradient() for i in range(0, 100): e.makeFoodRandom() e.updateMap() #Create Animat animats = [ Animat(25, 25, env, filename), Animat(10, 40, env, filename), Animat(45, 10, env, filename), Animat(30, 40, env, filename) ] fig = plt.figure() ims = [] for i in range(0, 50000): for e in env: e.tick() for a in animats: a.tick() for e in env: e.map[a.y, a.x] = e.map.max() if i % 100 == 0:
#Init Environment and food sources foodTypes = [0,1,2,3]; mapsize = 100; env = [Env(mapsize,foodTypes[0]),Env(mapsize,foodTypes[1]), Env(mapsize,foodTypes[2]),Env(mapsize,foodTypes[3])]; for e in env: e.makeGradient() for i in range (0,100): e.makeFoodRandom() e.updateMap() animats = []; numAnimats = 20; for a in range(0,numAnimats): animats.append(Animat(random.randrange(0,mapsize),random.randrange(0,mapsize),env,foodTypes)); Animat.allowDeath = False; fig = plt.figure() ims = [] toPlot = zeros((mapsize,mapsize)); # Training session for i in range(0,15000): for e in env: e.tick() Animat.startTick() for a in animats: a.tick() for e in env: e.binaryGradient[a.y,a.x] = e.binaryGradient.max() if e.binaryGradient.max() > 0 else 1;
Env(mapsize, foodTypes[0]), Env(mapsize, foodTypes[1]), Env(mapsize, foodTypes[2]), Env(mapsize, foodTypes[3]) ] for e in env: e.makeGradient() for i in range(0, 100): e.makeFoodRandom() e.updateMap() animats = [] numAnimats = 20 for a in range(0, numAnimats): animats.append( Animat(random.randrange(0, mapsize), random.randrange(0, mapsize), env, foodTypes)) Animat.allowDeath = True fig = plt.figure() ims = [] toPlot = zeros((mapsize, mapsize)) # Training session for i in range(0, 7000): for e in env: e.tick() for a in animats: a.tick() for e in env: e.binaryGradient[a.y, a.x] = e.binaryGradient.max( ) if e.binaryGradient.max() > 0 else 1