技术领域
[0001] 本发明属于无人机任务分配技术领域,涉及一种无人机任务分配方法,特别涉及一种基于群体熵和Q学习的无人机任务分配方法,可用于无人机探测任务分配。
相关背景技术
[0002] 由于无人机价格低,体积小,油耗低,机动性强的特点,无人机任务分配常被应用于环境检测和地理测绘等场景。无人机任务分配问题可以描述为场景中多个无人机去执行多个任务,每个任务需要无人机提供相应执行量且该执行量随无人机至任务的距离而衰减,目的是寻找一种有效合理的分配方案将任务分配给不同的无人机,使所有任务均得到其所需执行量。无人机任务分配的难点是随无人机数量的增长,问题规模成指数型增长,寻找最优结果困难。无人机任务分配主要基于启发式算法进行求解,典型算法为遗传算法、蚁群算法、粒子群算法等。
[0003] 相比于其他算法,粒子群算法具有更好的全局收敛性,例如申请公布号为CN108876086A,名称为“一种基于粒子群算法的无人机任务分配方法”的专利申请,利用粒子群算法解决无人机任务分配问题。该方法首先设置微粒种群规模、惯性权值、最大允许迭代次数,然后针对每个微粒生成随机的初始无人机和任务的配对,并计算出目标评价函数,接着找出个体及群体的最优值,更新各个粒子,再根据粒子群优化算法,更新遍历全部粒子,保留最优微粒。该方法采用整形线性规划方法构造最优函数,并利用粒子群算法寻找最优解,具有全局收敛能力,所有任务均能得到其所需执行量。该方法的缺点在于,过分寻求全局最优结果,容易陷入局部最优收敛,导致任务分配的收敛速度较慢。
具体实施方式
[0060] 以下结合附图和具体实施例,对本发明作进一步的详细描述。
[0061] 参照图1,本发明包括如下步骤:
[0062] 步骤1)初始化无人机任务分配参数:
[0063] 初始化大小为X×Y×Z的空间区域内的待执行任务集合为Ta={ta1,ta2,...,tai,...tam},无人机集合为A={a1,a2,...,aj,...,an},第j个无人机aj的状态Cj={c1,j,c2,j,...,ci,j,...cm,j},其中,tai表示第i个任务,m表示任务的总数,m≥2,n表示无人机的总数,n≥1,ci,j表示aj对第i个任务的状态,ci,j=0表示不执行,ci,j=1表示执行,在任务分配前所有无人机都不执行任务,本实施例中,X=800米,Y=800米,Z=800米,m=10,n=1000;
[0064] 步骤2)确定每个无人机aj的邻居,邻居指在无人机通信距离内的所有无人机,当无人机的状态发生变化,邻居的状态也很可能会随之发生变化;
[0065] 通过A中各无人机的位置坐标,计算每个无人机aj与其他n-1个无人机aw的距离dsj,w,并将aw中dsj,w小于预设的通信距离L的无人机作为无人机aj的邻居,得到aj的邻居无人机集合 则A的邻居无人机集合为
[0066] NEI={Ne1,Ne2,...,Nej,...,Nen}
[0067] 其中dsj,w计算公式为:
[0068]
[0069] (xj,yj,zj)表示无人机aj在空间区域内的三维坐标, 表示aj的第h个邻居,j_num为aj的邻居数量,在本实施例中,通信距离L=50米;
[0070] 步骤3)确定敏感无人机和非敏感无人机,敏感无人机指最接近待执行任务的且直接选择任务进行执行的无人机,非敏感无人机指距离待执行任务较远的需要在细胞自动机算法中进行任务迭代分配的无人机:
[0071] (3a)通过A中各无人机aj的位置坐标(xj,yj,zj)和Ta中各任务tai的位置坐标(xti,yti,zti),计算A中每个无人机aj与Ta中每个待执行任务tai之间的距离di,j,得到距离集合DD={D1,D2,...,Dj,...,Dn},其中,di,j的计算公式为:
[0072]
[0073] Dj表示无人机aj与Ta中每个待执行任务之间的距离集合,Dj={d1,j,d2,j,...,di,j,...,dm,j};
[0074] (3b)将A中Dj小于预设通信距离L的n*个无人机组成敏感无人机集合将其余n-n*个无人机组成非敏感无人机集合
其中,aby表示第y个敏感无人机,acx表示第x个非敏感无人机,n**表
示非敏感无人机的数量,n**=n-n*;
[0075] 步骤4)由于敏感无人机的执行量会随着距离进行衰减,每个敏感无人机aby选择距离其最近的任务执行,确保敏感无人机执行效果是最优的:
[0076] 每个敏感无人机aby选择其与Ta中每个待执行任务之间的距离集合Dby中数值最小的任务 作为当前任务进行执行,此时aby对 的状态 其中 表示Ta中的第 个任务;
[0077] 步骤5)初始化细胞自动机自演化算法参数:
[0078] 初始化执行次数t,最大执行次数为T,T≥5,最优群体熵值EB,第t次执行中第x个非敏感无人机对所有任务的状态集Cx(t)={c1,x(t),c2,x(t),...,ci,x(t),...cm,x(t)},其中ci,x(t)表示第t次执行中acx对tai的状态,并令t=1,ci,x(t)=ci,x,EB=1000;
[0079] 步骤6)通过细胞自动机自演化算法对任务进行预分配并用群体熵评估每轮预分配的结果,以获取关于最优任务预分配结果的离散信息熵表LS:
[0080] (6a)计算无人机集合A的群体熵值group_entropy:
[0081]
[0082]
[0083]
[0084] 其中Ej(x)表示aj的离散信息熵,p(xij)表示aj执行tai的概率,概率由两部分组成,左式表示aj邻域内执行任务的无人机数量占所有邻域内n个无人机的比例,右式则表示邻域内与tai最近的距离与di,j的比值,群体熵衡量了场景区域内n个无人机的执行任务的确定性程度,始终为正值,首次比较群体熵时,直接取初始值为最大值,即可以直接保留第一次的结果;
[0085] (6b)判断EB≥group_entropy是否成立,若是,令EB=group_entropy,并用离散信息熵表LS记录p(xij),否则EB不变;
[0086] (6c)判断t=T是否成立,若是,得到离散信息熵表LS,否则,令t=t+1,并计算acx对tai的状态ci,x(t),然后执行步骤(6a),其中ci,x(t)的计算公式为:
[0087]
[0088] where
[0089]
[0090]
[0091]
[0092] 其中,λ1=1表示acx的邻居中存在执行tai的敏感无人机,λ1=0表示acx的邻居中不存在执行tai的敏感无人机,λ2=1表示acx的邻居中执行tai的无人机数量大于门限值Num,λ2=0表示acx的邻居中执行tai的无人机数量小于等于门限值Num,该门限值表示平面区域中无人机的密度,密度越大,门限值越大;
[0093] 步骤7)利用离散信息熵表LS初始化每个无人机aj的AQj表,每个aj维护自己的AQj表,其初始值包含了关于全局信息的群体熵信息,保证了方法全局优化能力并避免陷入局部最优,提高收敛速度:
[0094] 初始化大小为(m+1)×(m)的AQj表,并给AQj表中每个元素赋值:
[0095]
[0096] 其中,b和c分别表示AQj表中第b行第c列,p(xcj)为离散信息熵表LS记录的值,当1≤b≤m且1≤c≤m时,AQj(b,c)表示aj执行任务tab转移执行任务tac的概率值,当b=m+1且1≤c≤m时,AQj(b,c)表示无人机aj从不执行任务到执行任务tac的概率值,p(xcj)为离散信息熵表LS记录的值;
[0097] 步骤8)通过Q学习算法获取无人机任务分配结果:
[0098] (8a)初始化迭代次数为k,最大迭代次数为K,K≥100,Q学习的学习率为αk,探索率为εk,折扣率为γk,收益最大值为RE,aj执行一次任务提供的执行量为 aj执行各任务的累计执行量集合Ej={E1,j,E2,j,...,Ei,j,...,Em,j},任务所需执行量集合E={e1,e2,...,ei,...,em},并令k=1,其中1>α>0,1>ε>0,1>γ>0,1>ε0>0,RE≥100,Ei,j表示aj对tai的累计执行量,Ei,j=0,ei表示tai需要的执行量,ei>0,在本实施例中,K=1000,αk=0.999,γk=0.1,εk=1,RE=100;
[0099] (8b)计算aj对每个任务tas的转移概率 得到aj对Ta的转移概率子集合则A的转移概率集合为 其中:
[0100]
[0101] 其中δ,β,M为预设的调节因子,该式表示了aj从执行任务tar向任务tas转移时,执行量与代价分别所占整体比重的乘积,即当执行量积累量越大其转移的概率越高,距离代价越小,转移的概率越高,在本实施例中,δ=0.8,β=0.2,M=10;
[0102] (8c)将随机产生n个0到1之间的小数 组成的小数集合作为A中每个aj的探索值,并判断 是否成立,若是,执行步骤
(8d),否则,执行步骤(8e);
[0103] (8d)aj依据执行Ta中任务的概率 随机选择Ta中的tas作为当前任务并执行,得到更新后的aj的累计执行量Es,j,并执行步骤(8f),其中Es,j更新公式为:
[0104]
[0105]
[0106] τ为预设常数,1>τ>0,ds,j表示aj到任务tas的距离;
[0107] (8e)aj依据累计执行量集合Ej和AQj表选择Ta中第π(r)个任务作为当前任务并执行,得到更新后的aj的累计执行量Eπ(r),j,并执行步骤(8f),其中π(r)的计算和Eπ(r),j的更新公式分别为:
[0108]
[0109]
[0110]
[0111] dπ(r),j表示aj到任务taπ(r)的距离;
[0112] (8f)计算由无人机aj从执行任务tar转到执行当前任务taz引起的回报值Rj(r,z):
[0113]
[0114] 其中,Rj(r,z)表示用无人机aj从执行任务tar转向执行taz后,执行量差值乘积的倒数,若二者相等,说明此次转移无收益,若执行量差值均变小,则回报越大,若一个变为0,则减少一个分母,增大回报量,当均变为0时,说明该转移动作收益最大,取收益最大值RE,回报值R(r,z)不仅考虑到了当前动作产生的局部收益,还考虑到了所有任务执行的全局收益;
[0115] (8g)利用AQ表的更新公式,通过(8f)中得到的回报值R(r,z)更新aj本次学习后的AQj表,得到更新后的AQj表,由于回报值R(r,z)同时包含全局信息与局部信息,保证了方法的全局优化能力,并避免陷入局部最优,其中AQj表更新公式为:
[0116]
[0117] 其中,J(z)表示无人机ai执行任务taz时下可选的目标任务集合,该目标任务集合可以表示为aj的邻居所执行的任务集合;
[0118] (8h)判断k=K是否成立,若是,得到无人机任务分配结果:
[0119] RE={Re1,Re2,...Rei,...Rem},否则,令k=k+1,对学习率αk、折扣率γk、探索判别值εk进行更新,然后执行步骤(8b),其中Rei表示执行第i个任务的无人机集合,p为执行第i个任务的无人机总数,αk、γk和εk的计算公式分别为:
[0120]
[0121]
[0122] εk=εk-1·C
[0123] η、λ和C为预设的调节因子,本实施例中,μ=0.998,λ=0.8,C=0.998。
[0124] 下面结合仿真实验,对本发明的技术效果作进一步的说明。
[0125] 1.仿真条件和内容:
[0126] 实验运行的环境:操作系统为Microsoft windows 10,编程仿真语言为matlab。实验使用了五个不同的场景,每个场景除任务和无人机分布位置不同外其余均相同,收敛时间为50次独立试验后求均值结果。
[0127] 对本发明与现有的一种基于粒子群算法的无人机任务分配方法的收敛时间进行对比仿真,其结果如图2所示。
[0128] 2.仿真结果分析:
[0129] 参照图2,图2对比了本发明与一种基于粒子群算法的无人机任务分配方法的平均收敛时间,横坐标为五个不同场景,纵坐标为全部任务达到收敛的平均时间,在第一个场景中,本发明的平均收敛时间为107.6625秒,一种基于粒子群算法的无人机任务分配方法的平均收敛时间为491.28秒,在第二个场景中,本发明的平均收敛时间为89.575秒,一种基于粒子群算法的无人机任务分配方法的平均收敛时间为580.15秒,在第三个场景中,本发明的平均收敛时间为92.3953秒,一种基于粒子群算法的无人机任务分配方法的平均收敛时间为413.48秒,在第四个场景中,本发明的平均收敛时间为94.6563秒,一种基于粒子群算法的无人机任务分配方法的平均收敛时间为526秒,在第五个场景中,本发明的平均收敛时间为96.1531秒,一种基于粒子群算法的无人机任务分配方法的平均收敛时间为535.53秒,根据上述对比,可以看到本发明在收敛速度上具有绝对优势,相比于一种基于粒子群算法的无人机任务分配方法,本发明收敛速度提高了两倍以上。实验结果表明,本发明可以有效提升无人机任务分配的收敛速度。