基于仿生狼群法的无人机群任务分配算法

A task allocation algorithm for a swarm ofunmanned aerial vehicles
based on bionic wolfpack method
https://doi.org/10.1016/j.knosys.2022.109072

A task allocation algorithm for a swarm ofunmanned aerial vehiclesbased on bionic wolfpack method

摘要

任务分配是 UAV 集群中一个非常重要的过程,但目前面临着大规模、实时性等约束,如何有效地进行任务分配具有一定的挑战性。因此,对狼群在自然环境中的行为特征进行建模,并利用其来解决复杂场景下 UAV 集群动态任务分配问题。具体而言,所提出的方法考虑非平衡任务分配问题,并利用任务调度算法使分配结果满足任务性能约束。提出了一种适用于复杂场景下 UAV 集群的路径规划算法和覆盖搜索算法。针对不同目标数量和随机目标位置的仿真实验表明,该算法具有较高的任务完成率,并能平衡无人机的负载,为复杂场景提供了一种合适的解决方案。



一、介绍

仿生狼群特征:狼发现猎物后,猎物的信息会与狼群共享,然后狼决定是否等待其他狼合作猎杀猎物。狼群中的每只狼都能管理和执行捕猎任务。狼既是管理者又是执行者。打猎时,任务是被分配的,攻击是由个人组织的,这个人不一定是领导者,也不是固定的。为了防止群体中个体能力的分化和损失,狼注重任务分配的平衡,这有利于群体的发展。

本文研究的 UAV 集群具有以下特点:UAV 集群内信息共享,每架 UAV 可以分配任务并执行。UAV 集群中领导者和执行者之间没有固定的划分,求解算法还需要平衡和协调任务分配问题。

本文分别提出了一种适用于本文所研究的复杂场景的任务分配、路径规划和覆盖搜索方法。

  • 任务分配:将其转化为非平衡分配,并通过改进的匈牙利算法进行求解。此外,提出了一种重分配算法来平衡任务负载。
  • 路径规划:受 Theta*算法的启发,提出了一种适用于动态环境治理下的无人机集群的路径规划方法。
  • 覆盖搜索:提出了一种基于动态人工势场的无人机集群覆盖搜索算法。后一种算法解决了无人机在复杂场景中进行并行搜索时,难以定位的问题。

二、相关工作

离线任务分配问题可以转化为组合优化问题并集中求解,但通常需要大量时间来计算最优解。
在线任务分配算法常用于解决动态任务分配问题,同时适用于集中式和分散式多智能体系统架构。
在这里插入图片描述


三、问题建模

将任务分配过程分为三个子过程 :任务分配、路径规划和覆盖搜索。
最初,无人机集群需要搜索地图上的目标。然后,无人机集群为搜索目标生成任务并计算执行任务的代价。根据代价值进行任务分配,无人机集群根据任务分配结果执行设计的路径规划并执行任务。

1. 对象定义

1、无人机

  • U = {u1, . . . , uNu }:无人机物体集合,其中 Nu是无人机的数量

  • ui= ⟨pui , vui, tui , rui ⟩
    – pui:无人机的位置坐标
    – vui:无人机的飞行速度
    – tui :无人机的类型(无人机的类型与以下目标类型有关,当无人机的类型与目标类型相匹配时,无人机的性能成本就会较低)
    – rui :无人机的剩余资源数(剩余资源数表示一架无人机可以执行的任务数。当资源耗尽时,无人机将无法参与任务分配)

  • 为了描述任务分配过程,为每个UAV对象ui定义了costi,waiti和donei三个列表。
    – 搜索任务时,每个无人机计算任务的成本并将其保存在costi列表中
    – 任务分配后,每个无人机接受一些任务并将其保存在waiti列表中
    – 每次UAV执行任务后,它都会将任务保存在donei列表中,以评估最终结果

2、目标与任务

  • 在这里插入图片描述:目标对象
  • tj=⟨ptj , ttj , ntj , dj⟩:
    – ptj:位置信息
    – ttj :目标类型
    – ntj:完成与目标tj相关的任务所需的无人机数量
    – dj:任务完成标志,如果与tj相关的所有任务都完成了,则该标志设置为1。否则,它为零。

值得注意的是,每个目标都分为三个需要顺序执行但不能连续执行的任务。这些任务类型表示为A,B和C,此约束称为任务顺序约束。其中,只有任务B可能需要多个无人机的配合,而A和C则可以由单个无人机来完成。

τltj = ⟨ptj , ttj , nltj ⟩:任务对象(从目标对象tj中继承)
– l ∈ {A, B, C}
在这里插入图片描述
如果执行任务τltj的无人机数量小于nltj,则此任务失败。此约束称为协作约束。由于无人机不会为完成的目标生成任务,因此无需继承标志dj

3、障碍物

为了方便路径规划和覆盖范围搜索过程,定义了地图中障碍物的对象。在不失去一般性的情况下,障碍物可以表示为矩形的组合

在这里插入图片描述

  • ob=:
    pob, lb and wb:分别指示矩形的中心位置,长度和宽度。
    – angleb:表示矩形的长边与水平轴之间的角度。

2.任务分配模型

所有无人机和任务的成本矩阵和成本函数
在某个时刻,假设有nτ任务要分配,并且nµ的uav可以参与任务分配过程

在这里插入图片描述:将成本矩阵定义为具有nµ 行和nτ 列的矩阵在这里插入图片描述:损失函数L,利润函数P

  • 损失函数L 涉及两个方面: 飞行距离和威胁
    在这里插入图片描述
    – cd 和 ct 常数是否被适当设置,以使这两个附加项具有相似的数量级,从而有效地影响损失函数。
    – 无人机的估计飞行距离表示为 de,即无人机与任务位置之间的欧几里得距离与上述公式中δo之和。此外,δo 表示估计要避免障碍的额外飞行距离。
    – Oblock表示阻挡连接无人机和任务位置的线路的障碍物集合。 此外,arctan(pt(τk)-pui)表示连线与横轴之间的夹角
    值得注意的是,使用的是估计飞行距离而不是实际飞行距离。 这是因为并非所有任务都由每架无人机执行,所以仅仅为了得到实际飞行距离而规划所有任务的路径是浪费时间的,对动态的任务分配是有害的。
    – 威胁表Thr中的估计威胁值与无人机、目标和任务类型有关。 通常,当无人机类型与目标类型相同时,威胁低于涉及不同类型。 而且B的威胁值高于A和C。

  • 利润函数P考虑群体利润和个体利润两个方面

  • 在这里插入图片描述
    – 其中Cr和Cp是常数.
    – 群体利润以无人机当前剩余资源价值表示。拥有更多资源的无人机将执行更多任务,这有利于集群发展。个人利润表示为利润表Pro中的一个值,与无人机、目标和任务类型相关。 与损失函数类似,当无人机型号与目标型号相同时,收益更高,任务B的收益高于A、C。仿真实验部分在表Pro和Thr中提供了具体数值。

本文将任务分配问题考虑为一个带约束的组合优化问题,其中定义Xik为无人机UI对任务τk的决策变量,即如果任务τk被分配给无人机Ui,则它变成1。 否则为零。

任务分配问题模型:在这里插入图片描述

  • (1c)表示分配给无人机的所有任务所需的资源应小于或等于当前无人机的剩余资源。
  • (1d)表示参与执行任务的无人机数量应大于或等于执行任务所需的无人机数量。
    ** L(τk)和T(τk)分别是τk的类型和目标,N (τk)T(τk)表示任务τk所需的无人机数量
    从该模型得到的分配方案只考虑了每架无人机要执行的部分任务集。 而无人机在实际任务执行过程中,可能需要等待某项任务达到执行要求

对于本文实现的动态任务分配过程,下面列出了一些主要假设:

  1. 场景图是所有无人机事先知道的。
  2. 每架无人机都可以与任何其他无人机共享信息。
  3. 每架无人机的尺寸都可以忽略不计。
  4. 执行任务的持续时间可以忽略不计,即任务开始后立即完成。
  5. 每架无人机在一定时间间隔内的步长是相同的,即每架无人机具有相同的速度。

四、 任务分配算法

动态任务分配问题包括任务分配、路径规划和覆盖搜索三个子问题。将任务分配问题视为任务分配的核心问题,而将路径规划和覆盖搜索视为两个独立的子问题。
任务动态分配框架

首先,初始化无人机、目标和场景地图的信息。 然后在场景中执行覆盖搜索,直到找到目标,生成相关任务并将其存储在包含待分配任务的列表T中。 然后,无人机群根据当前状态计算T中任务的代价,并基于代价值解决任务分配问题。 之后,群体对无人机之间的任务进行调度和负载平衡,每架无人机根据各自的任务顺序规划相应的路径并执行任务。 最后,无人机群返回覆盖搜索过程,循环这些过程,直到搜索次数超过最大值,终止任务分配过程。

1.任务分配和调度

在本工作中,任务分配被认为是非平衡分配问题,因为它得到了比平衡分配问题更好的解。
在这里插入图片描述

任务分配

对于非平衡指派问题,采用改进的匈牙利算法,在满足以下方程的条件下提供了代价最小的指派方案:
在这里插入图片描述
在这里插入图片描述
这个公式表明,只要要分配的任务数大于可以执行任务的无人机数量,这些无人机就至少有一个任务。

改进的匈牙利算法的步骤如下

  • 步骤1:对于成本矩阵的每一列,每个数字减去该列的最小值。 然后对每一行重复此过程。 一旦此过程结束,每行和每列至少有一个零。
  • 步骤2:用最少的水平线和垂直线的数目代替所有的零。 如果行数等于行数,则转到步骤4。 否则,请执行步骤3。
  • 步骤3:找出第二步中画出的线没有覆盖的位置的最小值。 从线条未覆盖的值中减去最小值,将最小值添加到线条交叉点处的值,删除所有线条,跳回步骤2。
  • 步骤4:对于只有一个零的每一行,查找零所在的列。 将列号对应的任务分配给行号对应的无人机。 然后,删除此列中的其他零,因为每个任务只能分配给一架无人机。
  • 步骤5:对于多个零的行,根据原始成本矩阵,将这些零所代表的任务分配给成本最低的无人机。 然后,删除零所在列中的其他零。
  • 步骤6:重复第4步和第5步,直到分配完所有任务。

任务调度

解决分配问题可以为每架无人机提供一组任务。
为了满足任务顺序和协作约束,需要进行任务调度

在此过程中,对每个无人机任务集中的任务进行判断。 如果任务满足约束条件,则将其放置在无人机任务序列中,并从任务集中删除。 如果任务不符合约束条件,将由另一架无人机进行判断。 最终不能满足约束的任务将被放回列表T中,并从任务集中删除。 判断过程继续进行,直到所有集合都为空。 在这项工作中,假设执行任务的持续时间可以忽略不计,即任务开始后立即完成。
一个任务调度示例涉及表2所示的无人机和任务,其中任务必须按照A→B→C的顺序执行。 在任务调度过程中,首先判断U1的任务集中的B1任务。 给定不满足任务顺序约束,U1应该等待,判断U2的A1任务。 该任务满足约束条件,被添加到U2的任务序列中。 但是U2的C1任务不满足约束条件,因为B1还没有完成。 因此判断U3的B2任务,不符合约束条件,因此U3应该等待。 然后返回U1的任务集,判断B1和A2满足约束条件,将其加入U1的任务序列中。 任务B2满足任务顺序约束,但需要三架无人机协同执行。 因此,它首先被放入U1的任务序列中,必要时根据另一个无人机的任务序列进行调整 。现在U2的C1任务满足约束条件,因为U2可以在U1完成B1后立即执行C1。 此后,U2需要等待U1协同执行B2,对于U3也是如此。 最后,U3的C2任务被添加到任务序列中。 实例的最终结果在图得到了说明 3.
在这里插入图片描述

重分配算法

仿生狼群无人机群在任务分配过程中要平衡任务负载。 然而,在实验过程中,发现非平衡分配算法偶尔会导致负载不平衡。 因此,使用比平衡分配方案提供更好结果的再分配算法。 这是因为非平衡分配比平衡分配获得了更好的解,而重新分配算法在改变解的同时保持了这一优势。

具体结果将在仿真实验中给出,而算法1中介绍了重分配算法。 考虑到再分配算法,它首先对无人机群的负载进行平均,然后负载高于平均值的无人机按照成本值从高到低的顺序将其部分任务发送到任务列表中,使得无人机的任务负载不超过平均值。 最后,任务负载低于平均值的无人机根据成本值接收列表中的任务。 所接收的任务的顺序被适当地安排,以最小化执行它们的额外成本。 为了使新的任务序列满足约束条件,只考虑不需要协作且指向同一目标的任务。

在这里插入图片描述


总结

提示:这里对文章进行总结:

总体来说就是用改进的匈牙利算法做任务分配,然后再根据约束条件进行任务调度,最后再进行重新分配任务。
将任务分配问题看作一个非平衡分配问题,利用改进的匈牙利算法进行求解,从而降低了无人机群体任务的执行成本。 那么,在保持高净利润的基础上, 提出了一种任务重分配算法,增加了任务负载的均衡性,有利于群体的发展。

  • 2
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值