Using the Max-Plus Algorithm for Multiagent Decision Making in Coordination Graphs
协作图通过将global payoff function分解为local terms的总和,为协作多代理决策提供了易于处理的框架。
原则上,每个代理可以基于图的 变量消除算法variable elimination algorithm 来选择最佳个体动作。这就产生了组的最佳行为,但其最坏情况时间复杂度是代理数量的指数,并且在密集连接的图中它可能很慢。此外,变量消除不适用于实时系统,因为它要求在报告解决方案之前终止完整算法。
在本文中,我们研究了max-plus算法,它是贝叶斯网络中置信传播算法的一个实例,作为变量消除variable elimination的近似变换。在该方法中,代理通过协作图反复交换合适的payoff消息,并基于这些消息计算其各自的动作。
我们证明了该方法收敛于树结构图的最优解,并且它在图中找到接近最优的解,同时比变量消除快得多。
背景
多代理系统(multi-agent system,MAS)由一组彼此交互的代理组成。在这样的系统中,代理单独行动,但结果可能根据其他代理的行为而不同。
在本文中专注于cooperative MAS ,其中代理们尝试优化共享性能,并且必须确保他们选择的个人动作会产生良好的团队效果。
RoboCup【3】 是协作MAS的一个很好的例子,足球机器人必须实时协调他们的行动才能队伍获胜。
最近在多代理协调问题中引入协调图(CG)【4】的概念,它能更方便的处理协调问题。
在此框架中,代理的子集之间的支付函数,其表示代理之间的本地协调依赖性。为了确定最大化局部收益总和的最佳联合作用,在[4]中提出了一种可变消除(VE)算法。
然而,尽管VE是精确的并且总是产生最佳的联合动作,但在某些情况下它可能很慢,并且在最坏的情况下,在密集连接图的代理数量中呈指数级。
在本文中,我们将进一步集中于max-plus算法,该算法类似于贝叶斯网络的置信传播算法,作为VE的近似替代。在这种方法中,代理人反复交换支付消息,在这些消息上他们根据他们的个人行动选择。
Coordination Graphs and Variable Elimination
在本节中,我们将使用变量消除算法(VE)计算一组n个代理的协作行动的问题。
每个代理从一组动作集合 A i A_i Ai中选择一个单独的动作 a i a_i ai,由此产生joint联合动作 a =(a1; …; an) ,并为该团队产生一个payoff回报 u(a)。
协调问题是找到 最大化u(a) 的 最佳联合动作 a ∗ a^* a∗,即 a ∗ a^* a∗ = a r g m a x a u ( a ) arg {max_a}u(a) argmaxau(a)。一种显而易见的方法是枚举所有可能的联合动作并选择最大化u(a)的动作。然而这种方法很快变得不切实际,因为联合动作空间A随着代理数n呈指数增长。
幸运的是,许多问题表现出回报矩阵 u(a) 是稀疏的,每个代理仅依赖于其他代理的一小部分。
利用这种依赖关系可以使用协调图,该协调图将全局回报函数u(a) 分解为 局部回报函数的线性组合,每个局部回报函数仅涉及少数代理。
例如,涉及四个代理的回报函数可以如下分解:
函数 f i j f_{ij} fij 表示代理动作之间的局部协调依赖性 local coordination dependencies,并且可以映射到图 G=(V, E),其中V中的每个节点代表代理,而E中的边定义两个代理之间的协调依赖性。
只有互连的代理才能在任何特定实例中协调他们的动作。因此,全局协调问题可以被一些涉及较少代理的局部协调问题所替代。
为了找到最佳联合动作 a ∗ a^* a∗,我们可以应用 VE(变量消除算法variable elimination algorithm)。该算法如下操作:
– 选择一个代理并收集其邻居所涉及的所有回报函数。
– 接下来,它优化其决策条件 decision conditionally ,即对其邻居的可能行动组合进行优化,并将得到的‘conditional’ payoff function 条件回报函数传递给其邻居。
– 此后,从图中删除该代理。
– 当只剩下一个代理时,此代理会选择一个最大化条件策略的操作。
然后按照相反顺序,其中每个代理基于其条件策略和其邻居的固定动作来计算其最优动作。
举例:
我们首先消除代理1:
此代理依赖于局部回报函数 f 12 f_{12} f12和 f 13 f_{13} f13,因此式(1)中 u(a) 的最大化可以写为
代理1定义函数 φ 23 ( a 2 , a 3 ) = m a x a 1 [ f 12 ( a 1 , a 2 ) + f 13 ( a 1 , a 3 ) ] φ_{23}(a_2, a_3)= max_{a1} [f_{12}(a_1, a_2)+f_{13}(a_1, a_3)] φ23(a2,a3)=maxa1[f12(a1,a2)+f13(a1,a3)],在给定代理2和3的动作的情况下返回代理1的最大值
最佳响应(条件策略)函数 B 1 ( a 2 , a 3 ) = a r g m a x a 1 [ f 12 ( a 1 , a 2 ) + f 13 ( a 1 , a 3 ) ] B_1(a_2, a_3)= arg max_{a1} [f_{12}(a_1, a_2)+f_{13}(a_1, a_3)] B1(a2,a3)=argmaxa1[f