首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在基于agent-id的多agent中编写Get_state()返回?

如何在基于agent-id的多agent中编写Get_state()返回?
EN

Stack Overflow用户
提问于 2019-07-03 05:05:44
回答 1查看 90关注 0票数 1

我打算在get_state函数中创建一个用于交通灯控制的3x3网格(grid0)的多代理实现,我希望在此函数中发送给RL代理的信息有所不同。因此,智能体1只获得在驶向交叉口1的边缘上行驶的车辆的信息。

在我的理解中,`get_state函数是为每个代理调用的。

如何区分代理?有没有可能做这样的事情?

代码语言:javascript
复制
agent_id = get_agent_id()
    if agent_id =0
        #return 'all info of vehicles on edges heading to traffic light1
    if agent_id =1
        ...

是否有像这样的方法或函数(代理列表或其他东西)来区分get_state函数中的不同代理?

其次,agent_id是否与红绿灯id(Intersection_Id)相同?(以及如何为每个交叉点分配不同的代理?现在我只使用默认的grid0场景,但我喜欢使用多agent环境)。

提前感谢!

EN

回答 1

Stack Overflow用户

发布于 2019-07-03 06:15:06

1-在流程中,为了处理多智能体的情况,在某些方法中(例如在get_state()中),我们不是将单个智能体的状态信息作为np.array返回,而是返回状态字典(以agent_id作为关键字,agent_state作为字典的值)。

所以你可以这样做:

代码语言:javascript
复制
    def get_state(self):

        agent_state_dict = {}
        i = 0
        for intersection, edges in self.scenario.get_node_mapping():
            i = i + 1
            agent_id = self.agent_name_prefix + str(i) # self.agent_name_prefix is defined as string "intersection"

            speeds = []
            dist_to_intersec = []
            traffic_light_states = []

            ..... code .....

            # construct the state (observation) for each agent
            observation = np.array(
                np.concatenate([
                    speeds, dist_to_intersec, traffic_light_states  

            # each intersection is an agent, so we will make a dictionary that maps form "self.agent_name_prefix+'i'" to the state of that agent.
            agent_state_dict.update({agent_id: observation})

        return agent_state_dict

状态是从agent_id映射到“agent_state_dict”(即状态)的字典。

2-现在回答您的第二个问题,将交叉点定义为代理(因此您将有多代理场景),您所需做的就是为交叉点定义相应的RLlib函数(get_stateaction_spaceobservation_spacecompute_reward_apply_rl_actions)。如果这样做,您将拥有一个完整的多智能体环境。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56860049

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档