예제 #1
0
    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:
예제 #2
0
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;
예제 #3
0
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()
예제 #4
0
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