基于两层调度的无人集群协同策略重构方法及设备与流程

文档序号:33640292发布日期:2023-03-29 01:52阅读:81来源:国知局
基于两层调度的无人集群协同策略重构方法及设备与流程

1.本发明属于无人集群多任务调度技术领域,具体涉及一种基于两层调度的无人集群协同策略重构方法及设备。


背景技术:

2.无人集群系统(如无人车、无人机等)具有响应速度快、使用成本低、部署灵活、可全天时全天候工作等独特优势,是未来信息化发展的重要平台。但是,由于任务复杂性和多样性,单一平台或单个传感器通常难以满足很多实际任务需求,故而集群协同执行任务逐渐成为趋势。相比于单一平台,拥有分布式特征的无人集群在协同执行任务方面具有诸多潜在优势:
3.(1)具有分布并行感知、计算和执行能力。可以通过异质传感器实现平台互补,实现总任务的分布执行,系统具有较高的容错性和鲁棒性;
4.(2)可提升任务执行能力。能够完成单智能体完成不好或不能完成的任务,具备良好的包容性和扩展性;
5.(3)具有更高的经济可承受性。通过合理的布局和协同控制,能够使用分散式的低成本无人系统实现更多的经济效益。
6.随着智能硬件的发展,无人平台能力愈发丰富。为了充分发挥上述集群协同优势,需要提出智能化协同策略生成和重构算法。无人集群协同调度问题有以下难点:
7.(1)策略空间维度极高。随着平台数量、工作模式、约束条件的增加,可选策略组合数量呈指数上升,寻优难度大;
8.(2)调度实时性要求高。基于现实环境的复杂性与不确定性,协同任务调度具有迫切的实时性要求,需要实时快速生成集群协同策略。
9.上述难点导致目前的任务调度算法难以兼顾。目前的报道以基于规则的算法和群体智能算法为主,但这两种算法各有缺陷:
10.(1)基于规则的协同任务调度算法大多采用贪婪算法,在当前可用的平台(传感器)范围内,以最低开销(或最高收益)为准则,将任务依次进行分配。算法时间复杂度低,但全局搜索性弱,易陷入局部最优,往往在整体评估时并非最佳。
11.(2)基于群体智能的协同任务调度算法,通过模拟粒子群、鱼群、蚁群等仿生行为或生物进化行为,构造解的种群并不断迭代寻找最优协同策略。群体智能算法全局搜索能力较强,多数情况下能输出优于贪心算法的调度方案,但时间复杂度高达(粒子群算法),处理大规模调度问题时,无法满足实时性要求。
12.综上所述,针对大规模无人集群协同策略生成问题,目前亟需提出一种能够同时兼顾低时间复杂度和高全局搜索能力的算法。


技术实现要素:

13.本发明目的是针对大规模无人集群协同策略重构问题,提出一种基于两层调度的
无人集群协同策略重构方法及设备,旨在解决平台/传感器数量大、工作模式选项多、约束条件复杂、实时性要求高情形下的传感器调度与任务分配问题,克服了现有无人集群协同调度算法的缺陷,能够同时兼顾低时间复杂度和高全局搜索能力的算法。当传感器资源或外界任务输入发生变化时,本发明提出的基于两层调度的无人集群协同策略重构方法分为两个层级,分别完成(1)协同工作模式设定和(2)多任务分配,形成综合调度方案。本发明的基于两层调度的无人集群协同策略重构方法具有与贪婪算法相近的时间复杂度,具备优于贪婪算法的全局搜索能力,部分计算过程支持分布式并行处理。
14.具体地说,一方面,本发明提供了一种基于两层调度的无人集群协同策略重构方法,包括:
15.无人集群协同策略重构问题初始化:设定任务收益、智能体数量、各智能体可选择的工作模式数量、智能体工作模式约束条件、智能体资源总量、智能体能力与任务需求的匹配网络、任务开销、智能体协同策略整体方案输出格式、输出的综合调度方案需满足的约束、协同策略评价标准;
16.智能体协同工作模式优化:采用粒子群算法实现第一层调度,输出智能体协同工作模式方案;
17.智能体任务分配:采用市场行为建模结合改进型匈牙利算法实现第二层调度,输出智能体任务分配方案。
18.进一步的,所述无人集群协同策略重构问题初始化包括:
19.将所述任务收益gain表示为一个1
×
ntask的向量,ntask为并发任务数,向量元素代表每个任务完成的收益;
20.设将所述智能体数量表示为nagent;
21.将各智能体可选择的工作模式数量,表示为nagent
×
1的向量nmode,nmode的第i个向量元素nmode[i]表示第i个智能体可选的工作模式数;
[0022]
将智能体工作模式约束条件设为每个智能体同一时间只能工作在一种模式下,对于任意一个智能体,其自身的多个工作模式呈现互斥性;
[0023]
将智能体资源总量capacity表示为一个nagent
×
1的元胞数组,capacity的第i个元胞capacity{i}是一个尺寸为nmode[i]
×
1的向量,向量元素数值表示相应智能体的相应工作模式的资源总量。例如第i个智能体的第j个工作模式的资源余量参见公式1,
[0024]
capacity{i}[j],i∈[1,nagent],j∈[1,nmode[i]]
ꢀꢀ
(公式1)
[0025]
将智能体能力与任务需求的匹配网络match表示为一个nagent
×
1的元胞数组,match的第i个元胞match{i}是一个尺寸为nmode[i]
×
ntask的矩阵,矩阵元素为逻辑值,1表示智能体能力与任务需求匹配,0表示智能体能力与任务需求不匹配,参见公式2,
[0026]
match{i}[j,k]∈{0,1},i∈[1,nagent],j∈[1,nmode[i]],k∈[1,ntask]
ꢀꢀ
(公式2)
[0027]
将任务开销cost表示为一个nagent
×
1的元胞数组,cost的第i个元胞cost{i}是一个尺寸为nmode[i]
×
ntask的矩阵,矩阵元素表示相应智能体的工作模式执行相应任务的开销,第i个智能体的第j个工作模式执行第k个任务的开销参见公式3,
[0028]
cost{i}[j,k],i∈[1,nagent],j∈[1,nmode[i]],k∈[1,ntask]
ꢀꢀ
(公式3)
[0029]
所述综合调度方案输出格式包括智能体协同工作模式选择方案和任务分配方案,
其中,将经过第一层调度优化后的智能体协同工作模式表征为nagent
×
1的一维向量idxmode,idxmode的第i个向量元素idxmode[i]∈[1,nmode[i]]表示第i个智能体选择的工作模式;任务分配方案表征为nagent
×
ntask的矩阵assignment,矩阵元素为逻辑值,矩阵元素为1,表示所属列的任务分配给了所属行的智能体,矩阵元素为0,表示所属列的任务未分配给所属行的智能体;
[0030]
设定综合调度方案约束条件,即输出的综合调度方案需满足以下约束:
[0031][0032][0033]
其中,assignment表示任务分配方案,是一个矩阵;任务开销cost中元素为cost{i}[j,k],表示当第i个智能体工作在它的第j个工作模式下时,对该智能体而言,第k个任务的任务开销;capacity为智能体资源总量,idxmode为智能体协同工作模式,idxmode[i]表示第i个智能体的工作模式,cost{i}[j,k]中的j=idxmode[i],nagent为智能体数量,ntask为任务数量;符号表示“对所有”,表示对所有j等于1至ntask之间的数,公式4都成立;公式4表示每个任务最多被执行1次,不存在重复执行的情况;公式5表示分配给每个智能体的任务的开销之和不能超过该智能体工作模式的资源总量;
[0034]
设定协同策略评价标准包含两项:任务完成率f和任务收益率s,定义如下:
[0035][0036]
公式6中,nagent为智能体数量,ntask为任务数量,assignment为任务分配方案,gain为任务收益。
[0037]
进一步的,所述智能体协同工作模式优化包括:
[0038]
2-1确定种群规模nparticals、最大迭代次数maxiteration,建立初始粒子种群,随机初始化各粒子,将各历史最优粒子idxmode_pi设为该粒子的初始值;
[0039]
2-2设定粒子取值上界idxmode_ub和下界idxmode_lb,分别为:
[0040][0041]
公式7中,ones(nagent,1)表示nagent
×
1的向量元素全为1的向量,nmode表示各智能体可选择的工作模式数量;
[0042]
2-3计算各粒子适应度fit(idxmode),包括:
[0043]
将任务开销针对智能体资源总量进行归一化,得到归一化后任务开销cost',参见公式8,
[0044][0045]
公式8中,归一化后任务开销cost'中元素为cost’{i}[j,k],表示当第i个智能体工作在它的第j个工作模式下时,对该智能体而言,第k个任务的归一化任务开销;nagent为智能体数量,ntask为任务数量,nmode为每个智能体的工作模式数量,是长度为nagent
×
1的向量;
[0046]
建立收益-开销矩阵g,参见公式9,尺寸为nagent
×
ntask,收益-开销矩阵g的含义是单位开销所得收益,
[0047][0048]
对收益-开销矩阵g每列从大到小排序,取g每列前n项求和,结果组成1
×
ntask行向量g',再对g'求和,得到各粒子适应度fit(idxmode),其中,n为小于等于nagent的正整数;
[0049]
2-4根据粒子群中各粒子适应度fit(idxmode)更新历史最优粒子idxmode_pi,如果当前粒子idxmode的适应度高于历史最优粒子idxmode_pi的适应度,则将idxmode赋值给idxmode_pi;其它情况下idxmode_pi保持不变,参见公式10,
[0050][0051]
公式10中,idxmode_pi表示历史最优粒子,fit()函数表示求粒子适应度;
[0052]
取全部历史最优粒子的最优,作为全局最优粒子idxmode_pg,参见公式11,
[0053]
idxmode_pg=argmax(fit(idxmode_pi))
ꢀꢀ
(公式11)
[0054]
公式11中,argmax()函数表示在所有历史最优粒子idxmode_pi中,选取适应度fit()最高的,赋值给全局最优粒子idxmode_pg;
[0055]
2-5计算所有历史最优粒子的平均值idxmode_m,参见公式12,
[0056][0057]
2-7更新每个粒子的位置;
[0058]
2-8判断是否符合退出循环条件,若符合,则退出循环,输出当前的idxmode_pg为优化后的智能体协同工作模式idxmode作为智能体工作模式选择方案,否则执行步骤2-3。
[0059]
进一步的,所述粒子群算法为量子行为粒子群算法。
[0060]
进一步的,所述更新每个粒子的位置的方法包括:
[0061]
计算自适应扩张因子ω,设当前粒子群迭代次数为m,参见公式13,
[0062]
ω=ωmax-(m/maxiteration)2×
(ωmax-ωmin)
ꢀꢀ
(公式13)
[0063]
公式13中,ωmax是预设的最大扩张因子,ωmin是预设的最小扩张因子,均为标量数值,m是当前迭代次数,maxiteration是步骤2-1确定的粒子群算法最大迭代次数;
[0064]
引入独立分布的随机变量rand1,rand2,rand3,每个随机变量在0~1区间均匀分布,每个粒子的位置的计算公式参见公式14,
[0065][0066]
公式14中,参数p,b,v是临时变量,函数log()表示自然对数,函数max()表示取大,函数min()表示取小,参数rand1、rand2、rand3是随机变量,idxmode_pi是历史最优粒子,idxmode_pg是全局最优粒子,ω是自适应扩张因子,idxmode_m是历史最优粒子的平均值,idxmode_lb和idxmode_ub是粒子取值的下界和上界,表示向上取整,[.]表示就近取整。
[0067]
进一步的,所述智能体任务分配包括:
[0068]
3-1初始化任务分配方案assignment,其中任务分配方案assignment的nagent
×
ntask个矩阵元素均设为0;初始化每个智能体剩余资源量capacity_remain为智能体资源总量capacity;对于第i个智能体,智能体任务分配方案assignment剩余资源量capacity_remain{i}满足公式16,
[0069]
capacity_remain{i}=capacity{i}[idxmode_pg[i]]
ꢀꢀ
(公式16)
[0070]
公式16中,idxmode_pg是智能体工作模式优化步骤中输出的智能体工作模式选择方案,idxmode_pg是一个向量,idxmode_pg[i]表示智能体工作模式选择方案的第i个元素;
[0071]
3-2将全部任务按照收益从大到小排序,存入任务池;
[0072]
3-3按照收益大小顺序从任务池读取与智能体数量相应的个任务,其中0<α≤1;
[0073]
3-4在市场行为建模下,每个智能体对步骤3-3得到的任务进行报价,第i个智能体对第j个任务的报价准则c[i,j]的计算公式参见公式17,
[0074][0075]
公式16中,idx为智能体工作模式优化步骤中输出的全局最优idxmode_pg的简写,bignum表示第i个智能体无法执行第j个任务时,给出的高额报价;
[0076]
3-5在报价矩阵c右侧补零,将报价矩阵c增广为nagent
×
nagent的方阵c2,以增广后的报价矩阵c2为输入,执行标准匈牙利算法,输出一对一最小匹配结果cout;
[0077]
3-6对步骤3-5输出的一对一最小匹配结果cout中分配了虚任务的智能体,不将分配结果记录到任务分配方案assignment中,该智能体的资源余量不减去相应的任务开销;对一对一最小匹配结果cout中分配了任务且报价小于高额报价bignum的智能体,将分配结果记录到任务分配方案assignment中,该智能体的资源余量减去相应的任务开销;对一对一最小匹配结果cout中分配了任务且报价大于等于高额报价bignum的智能体,相应任务分配失败,尝试重新分配,重新放回任务池,放于任务池最上层;记录该任务分配失败次数,当
失败次数超过设定的最大尝试次数maxtry时,移除该任务;
[0078]
3-7当任务池不为空,返回步骤3-3,否则结束任务分配,输出任务分配方案assignment。
[0079]
进一步的,对所述步骤3-3得到的任务进行报价通过分布式计算并行加速。
[0080]
进一步的,所述基于两层调度的无人集群协同策略重构方法,还包括:
[0081]
当所述智能体资源余量变动或有新任务输入时,若计算资源充裕或时间要求不紧迫,进行大闭环跳转,即跳转至智能体协同工作模式优化的步骤,更新智能体工作模式选择方案idxmode_pg和任务分配方案assignment;当时间紧迫时,进行小闭环跳转,即跳转至智能体任务分配的步骤,更新任务池和资源余量,仅计算任务分配方案assignment。
[0082]
另一方面,本发明还提供一种基于两层调度的无人集群协同策略重构设备,所述设备包括存储器和处理器;所述存储器存储有实现基于两层调度的无人集群协同策略重构方法的计算机程序,所述处理器执行所述计算机程序,以实现根据上述基于两层调度的无人集群协同策略重构方法的步骤。
[0083]
再一方面,本发明还提供一种计算机可读存储介质,其上存储有计算机程序,所述的计算机程序被处理器执行时实现上述基于两层调度的无人集群协同策略重构方法的步骤。
[0084]
本发明的基于两层调度的无人集群协同策略重构方法及设备的有益效果如下:
[0085]
本发明的基于两层调度的无人集群协同策略重构方法及设备,时间复杂度远低于群体智能算法。以粒子群算法为代表的群体智能算法时间复杂度量级高达o(n!),n为问题的规模。本发明针对的综合调度问题解的总规模大,若直接使用粒子群算法求解,时间开销极大。本发明的基于两层调度的无人集群协同策略重构方法采用两层调度,先采用具有全局寻优能力的粒子群算法进行粗粒度调度,再采用改进型匈牙利算法进行细粒度调度。因为仅第一层调度使用粒子群算法,且粒子为nagent
×
1的一维向量,使粒子群问题规模缩小数个量级,求解速度快。
[0086]
本发明的基于两层调度的无人集群协同策略重构方法及设备,第一层调度使用量子行为粒子群算法,降低迭代时计算量。相比于经典粒子群算法,量子行为粒子群算法每步迭代不引入速度矢量。更进一步,使用自适应扩张因子,改善量子行为粒子群算法收敛性。
[0087]
本发明的基于两层调度的无人集群协同策略重构方法及设备,相比于贪婪算法,本发明算法灵活性更高,全局寻优能力更强,利用第一层调度有效避免了陷入局部最优。
[0088]
本发明的基于两层调度的无人集群协同策略重构方法,第二层调度中进行了市场行为建模,市场行为建模是一种分布式处理框架,面对实际问题时,问题建模过程中的大量计算内容均可以分布式处理,包括计算任务开销、计算归一化开销、计算智能体能力与任务需求的匹配网络、存储和维护智能体资源余量。在本发明提出的框架下,这些计算均可以并行加速,适用于无人集群应用场景。各智能体报价计算支持分布式并行处理,各智能体仅需读取和维护自身的资源余量,无需知晓其他智能体的资源余量;引入任务池机制,并对池中任务按照优先级排序,供取出分配;采用改进型匈牙利算法,每次先从任务池中读取个任务,引入虚任务,将报价矩阵增广为方阵,再以增广后的报价矩阵为输入,再执行标准匈牙利算法;引入最大失败次数,一次分配不成功的任务重新回入任务池,可再次被读取并参与下次分配,只有分配失败次数累计达到阈值后的任务才会被舍弃。
[0089]
本发明的基于两层调度的无人集群协同策略重构方法及设备,既可以处理静态规划问题,也可以处理动态任务分配问题。通过选择两种循环(大闭环和小闭环)分别用于协同策略重构和任务实时重分配。当新任务持续输入但无需变更协同模式时,可直接进行第二层调度,第二层调度自成闭环,实现任务实时分配。当智能体资源余量变动或有新任务输入时,本发明算法支持不同层级的协同策略重构
附图说明
[0090]
图1是本发明实施例的方法流程图。
[0091]
图2是本发明实施例的第一层调度算法流程图。
[0092]
图3是本发明实施例的第二层调度算法流程图。
[0093]
图4是本发明实施例的输出结果图。
具体实施方式
[0094]
下面结合实施例并参照附图对本发明作进一步详细描述。
[0095]
实施例1:
[0096]
本发明的一个实施例,为一种基于两层调度的无人集群协同策略重构方法,流程如图1所示。
[0097]
一、无人集群协同策略重构问题初始化
[0098]
无人集群协同策略重构问题初始化包含读取任务输入和问题建模。前者具体为读取任务的输入参数,作为已知条件;后者具体为对上述输入参数进行建模,将输入参数表征为各数据结构,以便于后续计算。
[0099]
本发明的基于两层调度的无人集群协同策略重构方法中,无人集群的基本调度单元是单个无人平台或单个传感器,以下内容中统一用智能体指代。无人集群协同策略重构问题的输入参数建模,包括设定任务收益、智能体数量、各智能体可选择的工作模式数量、智能体工作模式约束条件、智能体资源总量、智能体能力与任务需求的匹配网络、任务开销、智能体协同策略整体方案输出格式、输出的综合调度方案需满足的约束、协同策略评价标准。
[0100]
设共有ntask个并发任务,则任务收益gain表示为一个1
×
ntask的向量,向量元素代表每个任务完成的收益。
[0101]
设共有nagent个智能体,即智能体数量为nagent。
[0102]
将各智能体可选择的工作模式数量,表示为nagent
×
1的向量nmode,nmode的第i个向量元素nmode[i]表示第i个智能体可选的工作模式数。
[0103]
智能体工作模式约束条件设为每个智能体同一时间只能工作在一种模式下,对于任意一个智能体,其自身的多个工作模式呈现互斥性。
[0104]
将智能体资源总量capacity表示为一个nagent
×
1的元胞数组,capacity的第i个元胞capacity{i}是一个尺寸为nmode[i]
×
1的向量,向量元素数值表示相应智能体的相应工作模式的资源总量。例如第i个智能体的第j个工作模式的资源余量为:
[0105]
capacity{i}[j],i∈[1,nagent],j∈[1,nmode[i]]
ꢀꢀ
(公式1)
[0106]
将智能体能力与任务需求的匹配网络match表示为一个nagent
×
1的元胞数组,
match的第i个元胞match{i}是一个尺寸为nmode[i]
×
ntask的矩阵,矩阵元素为逻辑值,1表示智能体能力与任务需求匹配,0表示智能体能力与任务需求不匹配。具体如下:
[0107]
match{i}[j,k]∈{0,1},i∈[1,nagent],j∈[1,nmode[i]],k∈[1,ntask]
ꢀꢀ
(公式2)
[0108]
将任务开销cost表示为一个nagent
×
1的元胞数组,cost的第i个元胞cost{i}是一个尺寸为nmode[i]
×
ntask的矩阵,矩阵元素表示相应智能体的工作模式执行相应任务的开销。任务开销cost的量纲与智能体资源总量capacity的量纲相统一,可以都设为时间,也可以设为能量。例如,第i个智能体的第j个工作模式执行第k个任务的开销为:
[0109]
cost{i}[j,k],i∈[1,nagent],j∈[1,nmode[i]],k∈[1,ntask]
ꢀꢀ
(公式3)
[0110]
本发明的基于两层调度的无人集群协同策略重构方法分为两个层级,分别完成智能体协同工作模式设定和多任务分配,形成综合调度方案。定义综合调度方案输出格式,包括智能体协同工作模式选择方案和任务分配方案。其中,将经过第一层调度优化后的智能体协同工作模式表征为nagent
×
1的一维向量idxmode,idxmode的第i个向量元素idxmode[i]∈[1,nmode[i]]表示第i个智能体选择的工作模式;任务分配方案表征为nagent
×
ntask的矩阵assignment,矩阵元素为逻辑值。矩阵元素为1,表示所属列的任务分配给了所属行的智能体;矩阵元素为0,表示所属列的任务未分配给所属行的智能体。
[0111]
设定综合调度方案约束条件,即输出的综合调度方案需满足以下约束:
[0112][0113][0114]
其中,assignment表示任务分配方案,是一个矩阵;cost为任务开销,任务开销cost中元素为cost{i}[j,k],表示当第i个智能体工作在它的第j个工作模式下时,对该智能体而言,第k个任务的任务开销。capacity为智能体资源总量,idxmode为智能体协同工作模式,nagent为智能体数量,ntask为任务数量;符号表示“对所有”,表示对所有j等于1至ntask之间的数,公式4都成立。公式4表示每个任务最多被执行1次,不存在重复执行的情况;公式5表示分配给每个智能体的任务的开销之和不能超过该智能体工作模式的资源总量。
[0115]
设定协同策略评价标准包含两项:任务完成率f和任务收益率s。任务完成率物理意义是已分配的任务数量占总任务数量的比例;任务收益率物理意义是已分配的任务的收益之和占全部任务总收益的比例。无人集群协同策略重构问题的目标是在其他输入条件的约束下,最大化任务完成率f和任务收益率s。任务完成率f和任务收益率s的定义如下:
[0116][0117]
根据公式4可知,公式6中任务完成率f和任务收益率s均为大于0小于1的数。公式6
中,nagent为智能体数量,ntask为任务数量,assignment为任务分配方案,gain为任务收益,assignment为矩阵,gain为向量。
[0118]
二、智能体协同工作模式优化
[0119]
第一层调度输出智能体协同工作模式方案,定义粒子为各智能体工作模式选择组成的向量,采用粒子群算法实现第一层调度。如图2所示,此步骤具体流程包括:
[0120]
2-1确定种群规模nparticals、最大迭代次数maxiteration,建立初始粒子种群。
[0121]
每个粒子代表工作模式的一种选择,每个粒子的格式和含义如前文所述的表征智能体协同工作模式的向量idxmode。
[0122]
随机初始化各粒子,将各历史最优粒子idxmode_pi设为该粒子的初始值。
[0123]
2-2设定粒子取值上界idxmode_ub和下界idxmode_lb,分别为:
[0124][0125]
公式7中ones(nagent,1)表示nagent
×
1的向量元素全为1的向量。nmode表示各智能体可选择的工作模式数量。
[0126]
2-3计算各粒子适应度fit(idxmode)。
[0127]
将任务开销针对智能体资源总量进行归一化,得到归一化开销cost',参见公式8。
[0128][0129]
公式8中,归一化后任务开销cost'中元素为cost’{i}[j,k],表示当第i个智能体工作在它的第j个工作模式下时,对该智能体而言,第k个任务的归一化任务开销。nagent为智能体数量,ntask为任务数量,nmode为每个智能体的工作模式数量,是长度为nagent
×
1的向量。
[0130]
建立收益-开销矩阵g,参见公式9,尺寸为nagent
×
ntask,收益-开销矩阵g的含义是单位开销所得收益:
[0131][0132]
对收益-开销矩阵g每列从大到小排序,取g每列前n项求和,结果组成1
×
ntask行向量g',再对g'求和,得到各粒子适应度fit(idxmode)。其中,n可取小于等于nagent的正整数。
[0133]
上述各粒子适应度fit(idxmode)的计算综合考虑了收益-开销性价比、工作模式资源总量、工作模式互补性。
[0134]
2-4根据粒子群中各粒子适应度fit(idxmode)更新历史最优粒子idxmode_pi,如果当前粒子idxmode的适应度高于历史最优粒子idxmode_pi的适应度,则将idxmode赋值给idxmode_pi。其它情况下idxmode_pi保持不变,参见公式10。
[0135][0136]
公式10中,idxmode_pi表示历史最优粒子,fit()函数表示求粒子适应度。
[0137]
取全部历史最优粒子的最优,设为全局最优idxmode_pg,参见公式11。
[0138]
idxmode_pg=argmax(fit(idxmode_pi))
ꢀꢀ
(公式11)
[0139]
公式11中,argmax()函数表示在所有历史最优粒子idxmode_pi中,选取适应度fit()最高的,赋值给全局最优粒子idxmode_pg。
[0140]
2-5计算所有历史最优粒子的平均值idxmode_m,参见公式12。
[0141][0142]
以下以采用自适应扩张因子的量子行为粒子群算法为例,介绍更新每个粒子的位置的步骤。可以理解,采用其它类型的粒子群算法,需要将公式13和公式14替换成该类型粒子群算法相应的公式。
[0143]
2-6(可选)计算自适应扩张因子v,设当前粒子群迭代次数为m,参见公式13。
[0144]
ω=ωmax-(m/maxiteration)2×
(ωmax-ωmin)
ꢀꢀ
(公式13)
[0145]
公式13中,ωmax是预设的最大扩张因子,ωmin是预设的最小扩张因子,均为标量数值。m是当前迭代次数,maxiteration是步骤2-1确定的粒子群算法最大迭代次数。ωmax和ωmin可分别取0.9和0.4。可以看出中,扩张因子ω呈二阶变化。
[0146]
若采用粒子群算法或者量子行为粒子群算法更新每个粒子的位置,则不需要步骤2-6。
[0147]
2-7依据量子行为更新每个粒子的位置。
[0148]
引入独立分布的随机变量rand1,rand2,rand3,每个随机变量在0~1区间均匀分布,每个粒子的位置的计算公式参见公式14。
[0149][0150]
公式14中,参数p,b,v是临时变量,函数log()表示自然对数,函数max()表示取大,函数min()表示取小,参数rand1、rand2、rand3是随机变量,idxmode_pi是历史最优粒子,idxmode_pg是全局最优粒子,ω是自适应扩张因子,idxmode_m是历史最优粒子的平均值,idxmode_lb和idxmode_ub是粒子取值的下界和上界,表示向上取整,[.]表示就近取整。
[0151]
2-8判断是否退出循环。
[0152]
引入最小迭代次数miniteration,定义如下:
[0153]
miniteration=[maxiteration/3]
ꢀꢀ
(公式15)
[0154]
公式15中,maxiteration是步骤2-1定义的最大迭代次数,[.]表示就近取整数。
[0155]
如果当前迭代次数m大于最大迭代次数maxiteration,则循环退出,输出当前的全局最优粒子idxmode_pg为优化后的智能体协同工作模式idxmode,作为智能体工作模式选择方案,否则执行步骤2-3。当算法持续运转时,全局最优粒子idxmode_pg不固定,会随着迭
代次数增长而改变,不断地向更优的解靠近。在每一次迭代时,都存储这一步的全局最优的适应度fit(idxmode_pg),作为历史值用于比较。第m次迭代的全局最优适应度fit(idxmode_pg)相比于第(m-miniteration)次迭代时的全局最优适应度(即存储的第(m-miniteration)次迭代的全局最优历史值)不再增长,则表明算法已经收敛,全局最优idxmode_pg已经不随迭代次数增加而改变,没有必要继续迭代下去了,循环退出。引入最小迭代次数作为退出粒子群迭代的条件之一,使得量子行为粒子群算法有充裕的时间跳出局部最优。
[0156]
三、智能体任务分配
[0157]
第二层调度输出智能体任务分配方案,采用市场行为建模结合改进型匈牙利算法实现。如图3所示,具体包括以下步骤。
[0158]
3-1初始化任务分配方案assignment,assignment是一个矩阵,共有nagent
×
ntask个矩阵元素。nagent
×
ntask个矩阵元素均设为0。初始化每个智能体剩余资源量capacity_remain为智能体资源总量capacity。对于第i个智能体,智能体剩余资源量满足公式16:
[0159]
capacity_remain{i}=capacity{i}[idxmode_pg[i]]
ꢀꢀ
(公式16)
[0160]
公式16中,idxmode_pg是步骤二最终输出的智能体工作模式选择方案,idxmode_pg是一个向量,idxmode_pg[i]表示智能体工作模式选择方案的第i个元素。
[0161]
3-2更新任务池。将全部任务按照收益从大到小排序,存入任务池。
[0162]
3-3按照收益大小顺序从任务池读取与智能体数量相应的任务,例如个任务,其中0<α≤1,可取0.75。
[0163]
3-4在市场行为建模下,每个智能体对步骤3.3得到的任务进行报价,第i个智能体对第j个任务的报价准则c[i,j]的计算公式参见公式17:
[0164][0165]
公式17中,idx为智能体工作模式优化步骤中输出的全局最优idxmode_pg的简写,bignum表示第i个智能体无法执行第j个任务时,给出的高额报价,bignum设为一个较大的数,例如100。当第i个智能体可以执行第j个任务时,报价与任务对该智能体而言的开销(成本)呈正相关,与任务收益(利益)呈负相关,与该智能体资源余量(资金)呈负相关。
[0166]
现有的集中式计算报价的算法必须使用全部智能体的信息,由中心处理器通过通信网络收集全部智能体上存储的信息后才能计算报价,计算速度较慢,不能分布式并行计算。优选的,在另一个实施例中,对步骤3-4得到的任务进行报价可通过分布式计算并行加速。本发明的基于两层调度的无人集群协同策略重构方法中计算报价算法是分布式的,每个智能体只需依据自身存储和维护的信息,即可独立地给出报价,在计算报价环节,无需智能体之间的通信,且计算速度更快。
[0167]
3-5通过引入虚任务,即在报价矩阵c右侧补零,将报价矩阵c增广为nagent
×
nagent的方阵c2。以增广后的报价矩阵c2为输入,执行标准匈牙利算法,输出一对一最小匹配结果cout。一对一最小匹配结果指给每个智能体分配且仅分配一个任务。
[0168]
3-6对步骤3.5输出的一对一最小匹配结果cout中分配了虚任务的智能体,不将分
配结果记录到任务分配方案assignment中,该智能体的资源余量不减去相应的任务开销;对一对一最小匹配结果cout中分配了任务且报价小于高额报价bignum的智能体,将分配结果记录到任务分配方案assignment中,该智能体的资源余量减去相应的任务开销;对一对一最小匹配结果cout中分配了任务且报价大于等于高额报价bignum的智能体,相应任务分配失败,尝试重新分配,重新放回任务池,放于任务池最上层,放于任务池最上层的任务在下次读取任务时会被优先取出。记录该任务分配失败次数,当失败次数超过设定的最大尝试次数maxtry时,移除该任务。可取maxtry=nagent
×
2。其中,nagent是智能体数量
[0169]
3-7当任务池不为空,返回步骤3.3,否则结束任务分配,输出任务分配方案assignment。
[0170]
四、输出无人集群协同策略重构综合方案,包括智能体工作模式选择方案idxmode_pg和任务分配方案assignment。
[0171]
优选的,在另一个实施例中,当参与组网的智能体数量、工作模式发生变化,例如设备损毁、新设备接入时,重新从步骤一开始执行上述步骤,进行协同策略重构。
[0172]
优选的,在另一个实施例中,当智能体资源余量变动或有新任务输入时,本发明的基于两层调度的无人集群协同策略重构方法支持根据实时性要求等约束,进行不同方式的迭代,实现不同层级的协同策略重构。具体而言,当计算资源充裕或时间要求不紧迫时,可进行大闭环跳转,即跳转至步骤一,更新无人集群协同策略重构综合方案,包括智能体工作模式选择方案idxmode_pg和任务分配方案assignment;当时间紧迫时,可进行小闭环跳转,即直接跳转至步骤3.2,在不改变协同模式的情况下,更新任务池和资源余量,仅计算任务分配方案assignment,以满足高实时性要求。
[0173]
实施例2:
[0174]
本发明的另一个实施例,为一种基于两层调度的无人集群协同策略重构方法,重构5个智能体协同策略。当智能体资源余量变动或有新任务输入时,本实施例的基于两层调度的无人集群协同策略重构方法更新无人集群协同策略重构综合方案,包括智能体工作模式选择方案idxmode_pg和任务分配方案assignment。
[0175]
具体包括如下步骤:
[0176]
一、使用蒙特卡洛方法生成协同策略重构问题输入参数,包括:
[0177]
参照实施例1中步骤一,随机生成各智能体可选择的工作模式数量(nmode向量)、智能体资源总量、任务收益gain、智能体能力与任务需求匹配网络、任务开销cost。
[0178]
本实施例中5个智能体可选工作模式数分别为[3,3,4,2,2]。智能体资源总量如图4右侧数字所示,图4右侧的数字表示每个智能体每个工作模式的资源总量,例如从上到下前三个数值为智能体1的三个工作模式各自的资源总量。图4上半部分表示智能体能力与任务需求匹配网络,其中,染色格点表示能力匹配,颜色深浅正比于任务收益,将任务收益从左到右由大到小排序,智能体能力与任务需求匹配网络随之重排。图4下半部分表示任务分配方案。
[0179]
二、执行第一层调度,输出智能体协同工作模式方案,参照实施例1中步骤二。具体包括:
[0180]
2.1设置种群规模nparticals为20,最大迭代次数maxiteration为100,设置粒子下界为[1,1,1,1,1],粒子上界为[3,3,4,2,2],初始化种群。
[0181]
2.2计算各粒子适应度,更新每个历史最优粒子,计算所有历史最优粒子的平均值,计算自适应扩张因子,根据量子行为更新每个粒子的位置,参见公式8~公式14,并执行粒子群迭代。
[0182]
2.3满足迭代退出条件时,输出协同工作模式方案idxmode。本实施例中,经过量子行为粒子群算法,第一层调度输出的协同模式idxmode即为量子行为粒子群算法计算出的全局最优协同模式idxmode_pg,idxmode_pg=[2,1,1,2,2]。优化后的各智能体的协同工作模式idxmode在图4的右侧用方框标明,从图4中可见,第1个智能体选择第2个工作模式,第2个智能体选择第1个工作模式,智能体3采用第1个工作模式,智能体4采用第2个工作模式,智能体5采用第2个工作模式。
[0183]
三、执行第二层调度,输出智能体的任务分配方案,参照实施例1中步骤三。
[0184]
3.1将任务分配方案assignment初始化为5
×
100全零矩阵,各智能体资源余量初始化为资源总量[64,67,67,65,67]。
[0185]
3.2将任务按收益从高到低排序,放入任务池。
[0186]
3.3从任务池中每次取4个任务。
[0187]
3.4各智能体分布式计算对上述从任务池中取出的4个任务的报价,计算公式参见公式15,其中,bignum取100,得到大小为5
×
4的报价矩阵c。
[0188]
3.5将报价矩阵c右侧补零,增广为5
×
5的方阵c2,以c2为输入执行匈牙利算法,得到一对一最小匹配结果cout。
[0189]
3.6对得到的一对一最小匹配结果cout中分配了报价为0的任务的智能体,不将分配结果记录到任务分配方案assignment中,该智能体的资源余量不减去相应的任务开销;对一对一最小匹配结果cout中分配了任务且报价小于100的智能体,将分配结果记录到任务分配方案assignment中,该智能体的资源余量减去相应的任务开销;对一对一最小匹配结果cout中分配了任务且报价大于等于100的智能体,相应任务分配失败,重新放回任务池,放于任务池最上层,记录该任务分配失败次数,当累计失败次数超过10次时,移除该任务,该任务不再尝试分配。
[0190]
3.7当任务池不为空,返回3.3步,否则结束任务分配,输出任务分配方案assignment。本实施例中,任务分配方案assignment如图4下方所示,可见100个任务中共有97个被成功分配,另外3个任务累计分配失败次数超过10次,未能分配给智能体。
[0191]
四、输出无人集群协同策略重构综合方案,包括步骤2.3得到的工作模式选择方案idxmode_pg和步骤3.7得到的任务分配方案assignment。
[0192]
实施例3:
[0193]
本发明的另一个实施例,采用基于两层调度的无人集群协同策略重构方法进行实时任务分配。
[0194]
如图1中小闭环所示,实时任务分配场景下智能体工作模式已经确定,无需再执行第一层调度。
[0195]
当智能体资源余量变动或有新任务输入时,本实施例的基于两层调度的无人集群协同策略重构方法在不改变协同模式的情况下更新任务池和资源余量,仅计算任务分配方案assignment,以满足高实时性要求。本实施例仅针对第二层调度进行介绍,流程主要参考图3所示。
[0196]
1.将任务分配方案assignment初始化为不定长矩阵,行数为nagent,列数不固定(因为不能确定未来输入的任务数),assignment用于记录任务的历史分配结果。初始化智能体资源余量。初始化任务池并按任务收益从大到小排序。
[0197]
2.检查新输入的任务,将新输入的任务按优先级采用插入排序方式存入任务池。
[0198]
3.从任务池读取个任务,其中,0<α≤1,可取0.75。
[0199]
4.在市场行为建模下,每个智能体对任务进行分布式报价,计算公式参见公式15,得到报价矩阵c。
[0200]
5.将报价矩阵c右侧补零,增广为nagent
×
nagent的方阵c2。以增广后的报价矩阵c2为输入,执行标准匈牙利算法,输出一对一最小匹配结果cout。
[0201]
6.对得到的一对一最小匹配结果cout中任务——智能体最小匹配结果进行判断处理,处理规则与实施例1中步骤3.6相同。将成功分配的任务依次记入任务分配方案assignment,各智能体更新资源余量;需要重新分配的任务按优先级插入排序放入任务池;累计分配失败次数超过阈值的任务判定为舍弃。
[0202]
7.在任务执行同时,当智能体反馈任务执行完成时,相应智能体资源余量增加,增量为该任务的开销,各智能体更新自身资源余量。
[0203]
返回步骤2。
[0204]
本发明的基于两层调度的无人集群协同策略重构方法及设备,时间复杂度远低于群体智能算法。以粒子群算法为代表的群体智能算法时间复杂度高达o(n!),n为问题的规模。本发明针对的综合调度问题解的总规模大,若直接使用粒子群算法求解,时间开销极大。本发明的基于两层调度的无人集群协同策略重构方法采用两层调度,仅第一层调度使用粒子群算法,且粒子为nagent
×
1的一维向量,使粒子群问题规模缩小数个量级,求解速度快。
[0205]
本发明的基于两层调度的无人集群协同策略重构方法及设备,第一层调度使用量子行为粒子群算法,降低迭代时计算量。相比于经典粒子群算法,量子行为粒子群算法每步迭代不引入速度矢量。更进一步,使用自适应扩张因子,改善量子行为粒子群算法收敛性。
[0206]
本发明的基于两层调度的无人集群协同策略重构方法及设备,相比于贪婪算法,本发明算法灵活性更高,全局寻优能力更强,利用第一层调度有效避免了陷入局部最优。
[0207]
本发明的基于两层调度的无人集群协同策略重构方法,第二层调度中进行了市场行为建模,支持分布式计算与并行处理,适用于无人集群应用场景。
[0208]
本发明的基于两层调度的无人集群协同策略重构方法及设备,既可以处理静态规划问题,也可以处理动态任务分配问题。通过选择两种循环(大闭环和小闭环)分别用于协同策略重构和任务实时重分配。当新任务持续输入但无需变更协同模式时,可直接进行第二层调度,实现任务实时分配。
[0209]
虽然本发明已以较佳实施例公开如上,但实施例并不是用来限定本发明的。在不脱离本发明之精神和范围内,所做的任何等效变化或润饰,同样属于本发明之保护范围。因此本发明的保护范围应当以本技术的权利要求所界定的内容为标准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1