# creating new creatures. # Based on the fitness you should select individuals for reproduction and create a # new population. At the moment this is not done, and the same population with the same number # of individuals new_population = old_population return new_population plt.close('all') fh=plt.figure() # Create the world. Representaiton type choses the type of percept representation (there are three types to chose from); # gridSize specifies the size of the world, repeatable parameter allows you to run the simulation in exactly same way. w = World(worldType=worldType, gridSize=gridSize, repeatable=repeatableMode) #Get the number of creatures in the world numCreatures = w.maxNumCreatures() #Get the number of creature percepts numCreaturePercepts = w.numCreaturePercepts() #Get the number of creature actions numCreatureActions = w.numCreatureActions() # Create a list of initial creatures - instantiations of the MyCreature class that you implemented population = list() for i in range(numCreatures): c = MyCreature(numCreaturePercepts, numCreatureActions) population.append(c)
print ("Avg FMC: %.2f" % averages[5]) print ("Avg F: %.2f" % averages[6]) print ("Avg R: %.2f" % averages[7]) print ("5 Random Chromosomes") # print 5 random chromosomes from within the new_population for i in range(5): i = random.randint(0, len(new_population)-1) myRoundedList = [ round(elem, 2) for elem in new_population[i].chromosome] print(myRoundedList) return new_population # Create the world. Representaiton type choses the type of percept representation (there are three types to chose from); # gridSize specifies the size of the world, repeatable parameter allows you to run the simulation in exactly same way. w = World(representationType=perceptFormat, gridSize=gridSize, repeatable=repeatableMode) #Get the number of creatures in the world numCreatures = w.maxNumCreatures() #Get the number of creature percepts numCreaturePercepts = w.numCreaturePercepts() #Get the number of creature actions numCreatureActions = w.numCreatureActions() # Create a list of initial creatures - instantiations of the MyCreature class that you implemented population = list() for i in range(numCreatures): c = MyCreature(numCreaturePercepts, numCreatureActions) population.append(c)
child = MyCreature(numCreaturePercepts, numCreatureActions, chromosomeChild) # Add it to the future population list new_population.append(child) #return the new population list return new_population # Pygame window sometime doesn't spawn unless Matplotlib figure is not created, so best to keep the following two # calls here. You might also want to use matplotlib for plotting average fitness over generations. plt.close('all') fh = plt.figure() # Create the world. The worldType specifies the type of world to use (there are two types to chose from); # gridSize specifies the size of the world, repeatable parameter allows you to run the simulation in exactly same way. w = World(worldType=worldType, gridSize=gridSize, repeatable=repeatableMode) #Get the number of creatures in the world numCreatures = w.maxNumCreatures() #Get the number of creature percepts numCreaturePercepts = w.numCreaturePercepts() #Get the number of creature actions numCreatureActions = w.numCreatureActions() # Create a list of initial creatures - instantiations of the MyCreature class that you implemented population = list() for i in range(numCreatures): c = MyCreature(numCreaturePercepts, numCreatureActions) population.append(c)