技术领域
[0001] 本发明属于无人机任务分配技术领域,涉及一种无人机任务协同分配方法,具体涉及一种基于Q学习的无人机任务协同分配方法,可用于无人机探测任务分配。
相关背景技术
[0002] 由于无人机成本低、安全度高的特点,无人机任务协同分配在民用中广泛应用于环境检测和地理测绘等场景。无人机任务协同分配问题可以描述为场景中多个无人机去执行多个任务,每个任务需要无人机提供相应执行量且该执行量随无人机至任务的距离而衰减,目的是寻找一种有效合理的分配方案将任务分配给不同的无人机,使所有任务均得到其所需执行量。无人机任务协同分配的难点是随无人机数量的增长,问题规模成指数型增长,寻找最优结果困难。无人机任务协同分配主要基于启发式算法进行求解,典型算法为遗传算法、蚁群算法、粒子群算法等。
[0003] 相对于其他启发式算法,粒子群算法具有更好的全局收敛性,例如申请公布号为CN108876086A,名称为“一种基于粒子群算法的无人机任务分配方法”的专利申请,利用粒子群算法解决无人机任务分配问题。该方法首先设置微粒种群规模、惯性权值、最大允许迭代次数,然后针对每个微粒生成随机的初始无人机和任务的配对,并计算出目标评价函数,接着找出个体及群体的最优值,更新各个粒子,再根据粒子群优化算法,更新遍历全部粒子,保留最优微粒。该方法采用整形线性规划方法构造最优函数,并利用粒子群算法寻找最优解,具有全局收敛能力,所有任务均能得到其所需执行量。该方法的缺点在于,过分寻求全局最优结果,容易陷入局部最优收敛,导致任务分配的收敛速度较慢。
具体实施方式
[0050] 以下结合附图和具体实施例,对本发明作进一步详细描述。
[0051] 参照图1,本发明包括如下步骤:
[0052] 步骤1)初始化参数:
[0053] 初始化大小为X·Y·Z的空间场景中待执行任务集合为T={t1,t2,...,ti,...,tm},能执行T中任务的无人机集合为At={at1,at2,...,atj,...,atn},每个任务需要无人机提供相应执行量,任务所需执行量集合E={e1,e2,...,ei,...,em},其中,ti表示第i个任务,m表示任务总数,m>0,atj表示第j个无人机,n表示无人机总数,n>0,ei表示任务ti需要的总执行量,本实施例中,X=800米,Y=800米,Z=800米,m=10,n=1000;
[0054] 步骤2)获取每个无人机atj的邻居无人机集合:
[0055] 通过空间场景中每个无人机atj的位置坐标,计算atj与其他n-1个无人机atw的距离dsjw,并将atw中dsjw小于预设的通信距离阈值max_pass的无人机作为atj的邻居,得到atj的邻居无人机子集合 则At的邻居无人机集合为NEI={Ne1,...,Nej,...,Nen},其中:
[0056]
[0057] 表示atj在空间场景中的三维坐标, 表示atw在空间场景中的三维坐标, w
∈n,w≠j,max_pass>0, 表示atj的第h个邻居,j_num为atj的邻居数量,本实施例中,max_pass=50米;
[0058] 步骤3)确定敏感无人机和间接无人机:
[0059] (3a)通过空间场景中每个无人机atj与每个任务ti的位置坐标,计算atj与ti间的距离bsji,得到距离集合BIS={Bs1,...,Bsj,...,Bsn},其中:
[0060]
[0061] 表示ti在空间中的三维坐标, Bsj表示atj与m个任务的距离子集合,Bsj={bsj1,...,bsji,...,bsjm},bisji>0;
[0062] (3b)将At中Bsj小于预设的距离阈值L的n**个无人机作为敏感无人机其余n-n**个无人机作为间接无人机 则每
个敏感无人机atby与m个任务的距离子集合为Bsby,每个间接无人机atcx与m个任务的距离子集合为Bscx,其中,L>0,atby表示第y个敏感无人机,n**表示敏感无人机的数量,atcx表示第x个间接无人机,n*表示间接无人机的数量,n*=n-n**,atby的邻居无人机集合为Neby,atcx的邻居智能体集合为Necx,本实施例中,L=80米;
[0063] 步骤4)每个敏感无人机atby向其邻居无人机发送通信包:
[0064] (4a)每个敏感无人机atby选择其与m个任务的距离子集合Bsby中数值最小的任务作为当前执行任务,并计算atby经过Bsby衰减后具有的对 施加执行量 再将 更新为 将 更新为 其中:
[0065]
[0066] ab为At中无人机的执行量,1>τ>0, 表示T中第 个任务;
[0067] (4b)将 作为通信包任务paby、当前时间作为通信包发送时间timeby,并将paby和timeby构成atby的通信包packby发送至Neby中的邻居无人机;
[0068] 步骤5)获取每个间接无人机atcx的 表,atcx接收其邻居无人机集合中的敏感无人机发送的通信包,并将通信包中所含信息用于初始化atcx的 表,从而实现atcx与其Necx集合中敏感无人机的局部协同,避免方法陷入局部最优,提高收敛速度:
[0069] (5a)atcx计算经过其与m个任务的距离子集合Bscx衰减后能对T中每个任务ti施加的执行量 得到atcx的执行量子集合 则At的执行量集合
[0070] (5b)atcx判断是否接收到通信包,若是,选择最新发送时间timebst对应的通信包packbst,令atcx的当前执行任务 并更新er为 否则,令 其中, 表示T中第r个任务,;
[0071] (5c)atcx计算对每个任务ti的累计执行量 得到atcx对T的累计执行量集合则C对T的累计执行量集合为 其中:
[0072]
[0073] (5d)初始化大小为(m+1)×m的 表,并给 表中每个元素赋值,得到atcx的Q表[0074]
[0075] 其中, 表示 中第ca行第cb列元素;
[0076] 步骤6)初始化Q学习参数:
[0077] 初始化迭代次数k,最大迭代次数K,K≥100,学习率αk,折扣率γk,探索判别值εk,1>αk>0,1>γk>0,1>εk>0,并令k=1,本实施例中,K=1000,αk=0.999,γk=0.1,εk=1;
[0078] 步骤7)获取无人机任务协同分配结果:
[0079] (7a)每个间接无人机atcx选择最新发送时间timebst对应的通信包packbst,得到与pabest对应的任务标号ρ,并更新 为 再通过 计算atcx对每个任务ts的转移概率 得到atcx对应m个任务的概率子集合 则C的转移
概率集合为 atcx接收其邻居无人机发送的通信包,并将通信包中
所含信息用于更新atcx对各任务的累计执行量,实现atcx与其Necx中无人机的局部协同,同时将atcx对各任务的累计执行量及距离代价作为全局信息,用于计算atcx对每个任务的转移概率,使转移概率在atcx选取新任务时产生诱导或抑制效果,从而保证方法全局优化能力并避免方法陷入局部最优,提高收敛速度,其中:
[0080]
[0081] 1>δ>0,1>β>0,M>0,本实施例中,δ=0.5,β=0.5,M=1;
[0082] (7b)将随机产生cn*个0到1之间的小数εcx←random(0,1)组成的小数集合作为C中每个atcx的探索值,并判断 是否成立,若是,执行步骤(7c),否则,执行步骤(7d);
[0083] (7c)根据atcx对每个任务ts的转移概率 随机选取T中一个任务作为atcx的待执行的任务 用转移概率集合 指导atcx随机选择任务,使atcx利用全局信息进行探索,从而保证方法全局优化能力,提高收敛速度,其中 表示T中第ne个任务;
[0084] (7d)根据atcx对每个任务ts的转移概率 计算atcx对每个任务ts的转移值得到atcx对应m个任务的转移值子集合 则C的转移
值集合为 并将 中最大转移值对应的任务作为atcx待执行
的任务 atcx利用转移概率 及自身 表计算对任务ts转移值 使转移值综合
评价 中的全局信息和 中的局部信息,并根据转移值选择最优任务执行,从而保证方法全局优化能力并避免陷入局部最优,提高收敛速度,其中:
[0085]
[0086] η>0, 表示T中第ne个任务,本实施例中,η=0.5;
[0087] (7e)将At中执行ti的无人机构成集合 并通过FAk以及Excx中与 对应的 计算atcx的回报值
[0088]
[0089]
[0090]
[0091] 其中, 表示执行ti的所有无人机的集合, 表示At中第z个执行ti的无人机,vgi表示执行ti的无人机数量, 表示立即回报值,
表示延时回报值,Max>0,立即回报值取决于无人机选择新任务后新旧任务执行量的改变,反映atcx选择新任务的局部收益,延时回报值取决于全部任务的执行情况,反映atcx选择新任务的全局收益,两者共同构成回报值,从而使回报值包含全局信息和局部信息,本实施例中,Max=1;
[0092] (7f)通过 对应的 将ene更新为 将 更新为 通过 对应的 将er更新为 实现atcx执行任务 并判断 是否成立,若是,atcx不与
Neicx中的无人机通信,否则,将 作为通信包任务pacx,将当前时间作为通信包发送时间timecx,并将pacx和timecx构成atcx的通信包packcx发送至Necx中的邻居无人机;
[0093] (7g)每个间接无人机atcx利用Q学习公式,通过 和 计算执行任务 后表,并通过 将 更新为 atcx通过自身 表及所获取的回报值计算 回报值中的延
时回报值使 拥有全局信息,同时结合本身 和即时回报值的局部信息,实现对 表优化,从而保证方法的全局优化能力,并避免陷入局部最优,提高收敛速度,其中:
[0094]
[0095] (7h)判断k=K是否成立,若是,将与 相同的atω组合成执行每个任务ti的无人机集合 则执行T的无人机集合TC={TN1,...,TNi,...,TNm},否则,令k=k+1,计算学习率αk、折扣率γk和探索判别值εk,并执行步骤(7a),令学习率随k值增大而减小,并令折扣率随任务所需执行量的减小而增大,使每个间接无人机atcx计算 表时更多地考虑自身 表中的局部信息,从而增强方法在k值变大后的局部优化能力,提高收敛速度,其中, 表示第ζ个执行ti的无人机,Lai表示执行ti的无人机数量,αk、γk和εk的计算公式分别为:
[0096]
[0097]
[0098] εk=εk-1·V
[0099] 1>μ>0,1>λ>0,1>V>0,本实施例中,μ=0.998,λ=0.8,V=0.998。
[0100] 下面结合仿真实验,对本发明的技术效果作进一步的说明。
[0101] 1.仿真条件和内容:
[0102] 实验运行的环境:操作系统为Microsoft windows 10,编程仿真语言为matlab。实验使用了五个不同的场景,每个场景除任务和无人机分布位置不同外其余均相同,收敛时间为50次独立试验后求均值结果。
[0103] 对本发明与现有的一种基于粒子群算法的无人机任务分配方法的收敛时间进行对比仿真,其结果如图2所示。
[0104] 2.仿真结果分析:
[0105] 参照图2,图2对比了本发明与现有技术的平均收敛时间,横坐标为五个不同场景,纵坐标为无人机任务协同分配达到收敛的平均时间,在五个不同场景下,本发明的平均收敛时间分别为220.4382s、145.5698s、248.282s、125.9832s、175.6162s,现有技术的平均收敛时间为491.28s、580.15s、413.48s、526s、535.53s。本发明使用Q学习方法,综合考虑局部和全局信息,在保证全局优化的基础上避免陷入局部最优,起到加速作用。本发明在收敛速度上具有绝对优势,相对于现有技术提速一倍以上。实验结果表明,本发明可以有效提升无人机任务分配的收敛速度。