def generate_from_file(filenameprefix, n_agents): """ :param filename: file with full path :param n_agents: number of agents that form this. :return: """ arenafilename = filenameprefix + '/arena.npy' grid_matrix = np.load(open(arenafilename, 'r')) logger.info("Initializing old configuration for grid and agents") logger.debug( 'creating arena object with grid_matrix {}'.format(grid_matrix)) arena = config.ARENA_CURR(grid_matrix, visualize=config.VISUALIZE_SIM) # logger.debug('creating {} agents'.format(n_agents)) agentsfilename = filenameprefix + '/agents.npy' agents_list = generate_agents_fromfile(agentsfilename, n_agents, arena) arena.init_add_agents(agents_list) logger.debug( 'Arena created with objects added and new grid_matrix {}'.format( arena.grid_matrix)) logger.info( "Finished creating arena and agents. One item consumed due to overlap. Current item count is {}" .format(arena.no_items)) return arena, agents_list
def generate_reload(n_agents): grid_matrix = np.load(open('../data/grid.npy', 'r')) logger.info("Initializing old configuration for grid and agents") logger.debug( 'creating arena object with grid_matrix {}'.format(grid_matrix)) arena = config.ARENA_CURR(grid_matrix, visualize=config.VISUALIZE_SIM) # logger.debug('creating {} agents'.format(n_agents)) agents_list = generate_agents(n_agents, arena, True) arena.init_add_agents(agents_list) logger.debug( 'Arena created with objects added and new grid_matrix {}'.format( arena.grid_matrix)) logger.info( "Finished creating arena and agents. One item consumed due to overlap. Current item count is {}" .format(arena.no_items)) return arena, agents_list
def generate_all(size, n_items, n_agents): grid_matrix, final_numitems = generate_arena_matrix(size, n_items) logger.info("Initializing new configuration") assert np.shape( grid_matrix)[0] == size, "Grid_matrix not of size {}".format(size) logger.debug( 'creating arena object with grid_matrix {}'.format(grid_matrix)) arena = config.ARENA_CURR(grid_matrix, visualize=config.VISUALIZE_SIM) logger.debug('creating {} agents'.format(n_agents)) agents_list = generate_agents(n_agents, arena) arena.init_add_agents(agents_list) logger.debug( 'Arena created with objects added and new grid_matrix {}'.format( arena.grid_matrix)) logger.info( "Finished creating arena and agents. One item consumed due to overlap. Current item count is {}" .format(arena.no_items)) return arena, agents_list
def behave_rollout_test(): arena_matrix = sgen.generate_arena_matrix(10, 20, False) arena = config.ARENA_CURR(arena_matrix, False) agents_for_config = sgen.generate_agents(1, arena, False) dagent = agents_for_config[0] try: mctagent = mcts_agent(dagent.capacity_param, dagent.viewRadius_param, dagent.viewAngle_param, dagent.type, dagent.curr_position, arena) logger.debug('MCTSagent creation succeeded') except: logger.exception("MCTS agent creation failed") additional_agents = sgen.generate_agents(4, arena, False) arena.init_add_agents(additional_agents[:-1]) # Leaving the last agent for MCTS config. corrected_states = [] tracking_agentIds = [] # Testing the function without updating history. Essentially testing the rollout functionality. for i in range(10): mctagent.behave_rollout(corrected_states, tracking_agentIds)
def generate_environment_test(): arena_matrix = sgen.generate_arena_matrix(10, 20, ) arena = config.ARENA_CURR(arena_matrix, False) agents = sgen.generate_agents(5, arena, False) agent_config = sgen.generate_agents(5, arena, False)
def clone_Arena(arena_state): newArena = config.ARENA_CURR(arena_state['grid_matrix'], False) newArena.__setstate__(arena_state) return newArena