论文地址:Kalman Fuzzy Actor-Critic Learning Automaton Algorithm for the Pursuit-Evasion Differential Game
Kalman Fuzzy Actor-Critic Learning Automaton Algorithm for the Pursuit-Evasion Differential Game
摘要
使用模糊actor-critic和卡尔曼滤波技术解决追击(PE)问题,两个或两个以上的追捕者追击一个逃跑者。actor和critic都是模糊推理系统(FIS),卡尔曼滤波被用来估计逃跑者的下一个位置,追捕者根据这个估计找到逃跑者的运动方向,以避免他们之间的碰撞,减少捕获时间。假设每个追捕者只知道逃跑者的瞬时位置,同时假设他们之间没有任何类型的交流,追捕者将其他同类追捕者视为环境的一部分。
相关工作
简单的PE问题是只有两个参与者,一个追捕者,一个逃跑者(速度较慢),领用特殊的偏微分方程解决两人的零和博弈,称为Hamilton-Jacobi-Isaacs(HJI)方程。它基于逆向分析,从博弈终点状态开始,追溯状态的最优轨迹。但是,这种方法对于多人PE游戏不适用,因为无法寻找游戏的最终状态。在多人PE游戏中,环境的复杂性和不确定性会随着智能体数量的早呢更加而增加,此外,状态空间和动作空间也会面临“维度爆炸”,这将使问题变得难以解决。此外,在多人PE游戏中,每个玩家采取的动作不仅取决于游戏的当前动作,还取决于游戏中其他玩家的行动,这种行动称为联合行动。
PE游戏的解决方法主要分为以下几种:
- 分层分解法:多人PE游戏被分解为多个两人PE游戏,目的是最小化捕获时间,反向分析被用来寻找每个两人PE游戏中每个玩家的最优策略。主要缺点是:随着玩家数量增加,追捕者和逃跑者之间的交战可能性随着指数增长。
- 分散学习的方法(去中心化):将多人PE游戏建模为马尔科夫游戏,每个玩家都被建模为一个自动学习机。其中,追捕者学习一些行为策略,而逃跑者只使用一些固定策略。随着玩家数量增长,计算量也在增长。
- 两阶段学习算法。 第一阶段称为分解阶段,将 n-pursuer n-evader 游戏分解为 n 个两人 PE 游戏。 在这一阶段,Q-learning算法用于学习玩家之间的最佳耦合,使得每个追捕者只与一个逃跑者耦合。 在第二阶段,之前提出的学习算法[8]用于学习每对追捕-逃跑者如何玩游戏并自学他们的控制策略
- 追捕者之间发生碰撞的可能性很高,捕获时间可能不是最短的。 出于这个原因,Desouky [7] 修改了学习算法,假设追捕者知道逃避者的速度和移动方向的情况下,使得追捕者会沿着一个方向跟随逃避者的预期拦截位置。
以上算法只适用于容易离散化的连续域问题,并且它们的离散域的大小不太大。 可以用近似的方法处理连续的动作和状态空间。模糊系统被广泛的用作函数逼近器。它可以处理定义明确/或涉及不确定性或连续变化的过程。
本文修改了模糊actor-critic学习自动机(FACLA)算法,以减少追捕者之间发生碰撞的可能性并减少捕获时间。 修改后的算法不假设追击者应该知道逃避者的速度和移动方向,而是使用卡尔曼滤波器估计下一时间步的逃跑者的位置,每个追捕者都有可能根据逃跑者的即时位置和估计的下一个位置来预测捕获可能发生的位置。每个追捕者可以朝着预期的捕获点方向前进,而不是在下一个时间步只不过沿着其视线到估计的逃跑者位置去。
PE游戏
PE游戏模型如上图所示,运动方程定义为:
x
i
˙
=
V
i
c
o
s
θ
i
\dot{x_i}=V_icos\theta_i
xi˙=Vicosθi
y
i
˙
=
V
i
s
i
n
θ
i
\dot{y_i}=V_isin\theta_i
yi˙=Visinθi
θ
i
˙
=
V
i
L
i
t
a
n
u
i
\dot{\theta_i}=\frac{V_i}{L_i}tan u_i
θi˙=LiVitanui
i
i
i是追捕者
p
p
p和逃跑者
e
e
e,(
x
i
,
y
i
x_i,y_i
xi,yi)是智能体的位置,
θ
i
\theta_i
θi是方向,
L
i
L_i
Li是智能体的轴距,
u
i
u_i
ui是转向角,
u
i
∈
[
−
u
i
m
a
x
,
u
i
m
a
x
]
u_i\in[-u_{imax},u_{imax}]
ui∈[−uimax,uimax],
V
i
V_i
Vi是由转向角控制的智能体速度,为避免滑动,定义为
V
i
=
V
i
m
a
x
c
o
s
(
u
i
)
,
V
i
m
a
x
V_i=V_{imax}cos(u_i),V_{imax}
Vi=Vimaxcos(ui),Vimax是智能体的最大速度。
设置场景追捕者速度快于逃跑者,
V
p
>
V
e
V_p>V_e
Vp>Ve,但机动性能较差,
u
p
<
u
e
u_p<u_e
up<ue
追捕者的控制策略是使得追捕者和逃跑者之间的角度差趋于0。
逃跑者的控制策略是提高逃跑者的机动性,使得追捕者和逃跑者之间的距离最大,可以通过以下两种方式:
1.追捕者和逃跑者之间大于特定距离
d
d
d,则逃跑者的控制策略:
u
e
=
t
a
n
−
1
(
y
e
−
y
p
x
e
−
x
p
)
−
θ
e
u_e=tan^{-1}(\frac{y_e-y_p}{x_e-x_p})-\theta_e
ue=tan−1(xe−xpye−yp)−θe
2.追捕者和逃跑者之间小于特定距离
d
d
d,则逃跑者的控制策略:
u
e
=
(
θ
p
+
π
)
−
θ
e
u_e=(\theta_p+\pi)-\theta_e
ue=(θp+π)−θe
当追捕者和逃跑者之间的距离小于特定值
l
l
l时,成功捕获,这个特定值称为捕捉半径:
l
=
(
x
e
−
x
p
)
2
+
(
y
e
−
y
p
)
2
l=\sqrt{(x_e-x_p)^2+(y_e-y_p)^2}
l=(xe−xp)2+(ye−yp)2
两个追捕者一个逃跑者
假设每个智能体都没有关于其默认策略或者其他智能体的任何策略,每个追捕者只知道逃跑者的瞬时位置,反之亦然,
追捕者的输入:追捕角度差(速度矢量和视线矢量之差),和它的倒数
输出:转向角
逃跑者的输入:速度矢量和预期逃跑方向的角度差,和它的倒数
输出:转向角