Hung Manh La, Ronny Lim, Weihua Sheng. Multirobot cooperative learning for predator avoidance[J]. IEEE Transactions on Control Systems Technology,2015,23(1):52-63.
集群控制算法
基于图论进行设计。
集群中每个个体运动方程为质点动力学二阶方程。
控制律由三部分组成:队形控制,障碍躲避和导航。其中,队形控制部分采用一致性算法,避撞部分采用势函数法,导航部分采用PD控制器,跟踪虚拟leader轨迹。
值得强调的是,此处的避撞算法针对静物与集群内邻居。
集群控制系统整合与强化算法
设计核心思想:
1)让robots学习连续的状态与动作
2)协调并行学习过程,以分布式方式生成有效控制策略
由此,我们设计一个混合系统,控制结构分为上下两部分,上层为离散空间中的强化学习模型,下层为连续空间中的控制器模型。具体模型如下图所示:
控制律在下层flocking controller运行,控制所有robots共同运动,避免碰撞,并追随一个固定或移动目标。一般而言,目标( p t , v t ) (p_t,v_t)(pt,vt)如下定义:
而在这篇文章中,只考虑静态目标(a fixed point or safe place)。如此,p t p_tpt和v t v_tvt就可以看做常数向量、当捕食者被观察到,机器人能够得到数个躲避的安全空间。这些安全空间是根据捕食者的移动方向生成的,以最大限度地提供淘宝概率。
虽然集群控制器中的势函数部分也可以让机器人躲避捕食者,但是势函数法很多时候会导致整个通信网络的破坏(也就是说,不同的个体在势函数影响下在躲避时去向完全不同方向,导致队形破坏,个体间距离过大脱离通信网络等问题)。因此,采用集群控制与强化学习相结合的方式来躲避捕食者的同事维持网络框架。
强化学习的目标是在躲避捕食者时,让所有robots统一给集群控制器提供一个相同的安全位置。
强化学习的模型与合作
A.多智能体学习模型
基于捕食者的移动位置,智能体网络中的安全位置实时生成。
当捕食者攻击智能体网络时,会攻击网络的中心。因此,我们如下设计robots:
1)初始化,所有robots在自由空间中基于分布式集群控制算法以晶体格形式集结。
2)当捕食者进入到探查域(detection range),机器人可以感受到捕食者的位置。机器人将学习并收集可去往的安全空间。
3)如果捕食者进入到危险空间(risk area),机器人将依靠集群控制器中的基于势函数的避撞算法快速躲避。
B.合作学习算法
算法基于Q-learning
1.state,action,reward:并非每个robot每一时刻都能观察到捕食者,他们通过邻居进行信息交换。s i s_isi,a i a_iai,r i r_iri表示此时刻的状态、动作、回报,s ˊ \acute{s}sˊ,a ˊ \acute{a}aˊ表示下一时刻的状态和动作。
1.1 state:s i = [ n p , d p , ∣ N i a ∣ ] T s_i=[n_p,d_p,|N_i^a|]^Tsi=[np,dp,∣Nia∣]T,其中,n p n_pnp表示在探查域内的捕食者数量,d p d_pdp表示各捕食者来自的方向(1=east,2=west,3=south,4=north),∣ N i a ∣ |N_i^a|∣Nia∣表示相邻机器人数量。
1.2 acttion:我们认为捕食者接近集群时朝向集群中心,因此机器人的可行动作是逃向四个安全方向,如下图所示:
action list A i = [ 1 , 2 , 3 , 4 ] A_i=[1,2,3,4]Ai=[1,2,3,4]
1.3 reinforcement reward:r i = ∣ N i a ∣ r_i=|N_i^a|ri=∣Nia∣ if ∣ N i a ∣ < 6 |N_i^a|<6∣Nia∣<6,r i = 6 r_i=6ri=6 if ∣ N i a ∣ = 6 |N_i^a|=6∣Nia∣=6
2.independent learning:智能体忽略其他智能体的动作与回报,独立学习自己的策略。
3.cooperative learning:一共分为两个阶段。
第一阶段为Q-value更新阶段,目的是为了让每个robot通过Q-value总和邻居信息。更新公式为
第二阶段为动作选择阶段,按照以下公式为学习算法选择下一动作:![]()
合作学习算法总结:机器人的经验可以通过它们的状态值的加权线性组合合并入机器人i的Q-value中,如下图所示:
这样每个智能体就能学到其邻居的经验了。
C.停止准则
定义连通性矩阵[ c i j ( k ) ] [c_{ij}(k)][cij(k)]为:![]()
t tt时刻的相对连通性为![]()
当0 ≤ C ( k ) < 1 0\leq C(k)<10≤C(k)<1,网络中断,C ( k ) = 1 C(k)=1C(k)=1,网络处于连接状态。
定义T反应每个robot邻居数量的变化,当T ( k ) = 0 T(k)=0T(k)=0是网络拓扑在此迭代中没有变化。T ( k ) T(k)T(k)算法如下所示:
后文还给出了收敛性证明,但我实在看得心力交瘁,就没有整理,有兴趣的可以自己下了论文看看