代理策略更新的方法
本文最后更新于 2025年8月28日 下午
考虑一个代理更新的方法,旨在让代理将对方代理已做的行为纳入自己的行为规划中,以达到更新本地策略的目的,同时避免无限循环的现象。
问题基本描述
假如当前问题中有四个房间
graph LR
a(1) <--> b(2)
b <--> c(3)
b <--> d(4)
代理a在1,b在3,a要去3,b要去1。假设代理知道环境中的所有内容,但是不知道对方要去哪里。思考如何用去中心化的方式解决这个问题,要求:
- 代理之间不能沟通,交换任何信息
- 代理在完成目标时可以发出完成的信号
假如先考虑a的视角,它可以不考虑b的目标,直接本地生成一套最优行为流程:
不难发现,a想要抵达3,至少需要抵达2,需要抵达2没至少需要在1或4中。当然,抵达目标不能有人。
再考虑b的视角,它不考虑a的目标,本地最优行为流程为:
可能的方向与目前所面临的问题
在Bernhard等人的论文中,描述了一个多智能体寻路中离散(去中心化)规划的方法。他们在问题初始化时让每一个智能体都生成一套各自的规划路径,然后通过观察其他智能体的行为来更新自己本地的规划路径,以避免卡死和无限循环的情况出现。
然而,在多智能体寻路中,他们假设智能体可以知道环境中的全部状态(Complete Observable),而我们的模型中,智能体通常都是部分可观测的(Partial Observable)。因此,我们无法在一开始就让每个智能体生成各自的规划路径,也无法完全效仿Bernhard等人的方法。但是,他们的规划更新的理念还是值得思考的。
目前而言,解决这个问题中,麻烦的点在于:
- 智能体仅能部分观测
- 智能体不知道其他智能体的目标
对于部分观测,程序现在已经能够让智能体通过生成虚拟模型来列举出所有可能的现实世界状态。对于目标,程序现在也可以生成所有可能的目标集合。假如可能的现实世界状态集合为,所有可能的目标集合的集合为,那么在目前的Neutral解决方案中,智能体的每一次行动都需要进行次BFS算法规划。不过通常来说,会随着行动次数的增加而减少,最后通常会收敛到次BFS算法规划。(通常也会减少)
**现已想到了一个可能有效的方法:认知状态-行为集合以限制本地模拟时其他代理的可能动作 **