def simulate_res1(env, iteration): """Test the performane of evolved behavior.""" phenotypes = env[0] threshold = 1.0 sim = SimModel( 100, 100, 100, 10, iter=iteration, xmlstrings=phenotypes, pname=env[1], expname='MSFRes1', agent='SimAgentRes1') sim.build_environment_from_json() # for all agents store the information about hub for agent in sim.agents: agent.shared_content['Hub'] = {sim.hub} # agent.shared_content['Sites'] = {sim.site} simresults = SimulationResults( sim.pname, sim.connect, sim.sn, sim.stepcnt, sim.food_in_hub(), phenotypes[0] ) simresults.save_phenotype() simresults.save_to_file() # Iterate and execute each step in the environment for i in range(iteration): # For every iteration we need to store the results # Save them into db or a file sim.step() simresults = SimulationResults( sim.pname, sim.connect, sim.sn, sim.stepcnt, sim.food_in_hub(), phenotypes[0] ) simresults.save_to_file() # print ('food at site', len(sim.food_in_loc(sim.site.location))) # print ('food at hub', len(sim.food_in_loc(sim.hub.location))) # print("Total food in the hub", len(food_objects)) food_objects = sim.food_in_loc(sim.hub.location) for food in food_objects: print('simulate phenotye:', dir(food)) value = sim.food_in_hub() foraging_percent = ( value * 100.0) / (sim.num_agents * 2.0) sucess = False print('Foraging percent', value) if foraging_percent >= threshold: print('Foraging success') sucess = True sim.experiment.update_experiment_simulation(value, sucess) # Plot the fitness in the graph graph = GraphACC(sim.pname, 'simulation.csv') graph.gen_plot()
def main(): iteration = 1500 env = SimModel(100, width, height, 10, iter=iteration, viewer=False) env.build_environment_from_json() # for all agents store the information about hub for agent in env.agents: agent.shared_content['Hub'] = {env.hub} # Iterate and execute each step in the environment # print ('Step', 'Name', 'TS', 'DEL', 'OVF', 'EXP', 'CAR', 'FOR', 'GNM') for i in range(iteration): env.step() print(len(env.food_in_loc(env.hub.location)))