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)
Example #6
0
def clone_Arena(arena_state):
    newArena = config.ARENA_CURR(arena_state['grid_matrix'], False)
    newArena.__setstate__(arena_state)
    return newArena