一种基于动态蚁群劳动分工模型的多AUV任务分配方法

文档序号:24876722发布日期:2021-04-30 12:52阅读:261来源:国知局
一种基于动态蚁群劳动分工模型的多AUV任务分配方法

本发明属于水下航行器技术领域,具体涉及一种多auv任务分配方法。



背景技术:

auv任务分配通过构建科学健壮的数学模型,设计优化算法完成任务配置,使个体的资源得到充分利用,高效地完成任务,体现了多auv系统的高层组织形式与运行机制。因此,针对异构多auv系统和海洋环境的特殊性,为提升多auv系统的智能化水平,开展多auv系统协同任务分配方法的研究具有重要的意义。

传统的任务分配方法如数学规划法、遗传算法(ga)、蚁群算法(aco)、粒子群算法(pso)通过不断的扩展和改进已经成功应用于多旅行商问题、车间调度问题、多处理器资源分配问题、车辆路径问题等。如曾文权通过设置pso算法中速度惯性权重和加速度系数的自动调整,以及引入ga中的变异操作,实现了对pso算法的改进,运用改进的pso算法解决虚拟企业中的任务分配问题。秦新立针对传统aco求解多机器人任务分配收敛速度慢且易陷入局部最优问题,引入局部优化变异算子和改进模拟退火算法来解决多机器人任务分配问题。这类集中式算法虽然易于理解,理论上可以获得任务分配的最优方案,但巨大的计算复杂性对于中心节点来说是一个巨大的挑战,不适合大规模的任务分配系统。另外,战场具有高度的不确定性和动态性,在没有充分利用智能体自适应和协同特性的情况下,很难处理任务重新分配,集中式方法获得的结果具有非常普通的实时性能。

为了充分利用智能体的协同特性,许多分布式算法如面向协商的熟人网和合同网分配方式,对策论联盟形成策略,依据价格的市场拍卖,面向结构的自组织方法等是动态环境中常采用的任务分配方法。如chengq研究了一种用于多auv系统的基于拍卖的多约束任务分配算法,提出一种多层成本计算方法,其中根据四种类型的约束将成本的计算分为四层,解决了多个约束问题。lee考虑到机器人的资源问题,提出了一种面向资源的分布式拍卖算法,在拍卖过程中具有有限通信范围的客户代理和机器人构建一个自组网络树,并以分散的方式相互协商进行任务分配。然而这类分布式算法过度依赖于系统中的信息交换和共享,对时延要求较高。故寻找一种具有良好的自组织性、鲁棒性以及快速性的任务分配方法在水下动态任务分配问题上尤为迫切。

群集智能是指众多行为简单的个体相互作用过程中涌现产生的整体智能行为。蚁群作为一类社会性群体,其劳动分工行为具有明显的自适应的特征。令人惊奇的是,蚂蚁是在并不知晓任何关于群体需求的全局信息的情况下,自动地对群体内的个体进行分工,并达到相对平衡,其结果不但使得每个蚂蚁都在忙碌地工作,而且任务的分工又恰好符合群体对各项任务的要求。这体现了蚁群劳动分工的一个显著特点就是由个体行为柔性产生群体分工的可塑性,即执行各项任务的蚂蚁的比率在内部繁衍生息的压力和外部侵略挑战的作用下是可以变化的。这种自下而上的机制强调个体对环境的动态响应,并通过个体的本地意识和响应交互来产生全局自组织行为。蚁群劳动分工在解决任务分配过程中有很好的柔性。在没有集中控制且不提供全局模型的前提下,蚁群劳动分工模型为寻找复杂的分布式问题的解决方案提供了基础。



技术实现要素:

为了克服现有技术的不足,本发明提供了一种基于动态蚁群劳动分工模型的多auv任务分配方法,首先建立异构多auv动态任务分配问题数学模型,然后采用动态蚁群劳动分工模型,将auv对应为蚂蚁;根据动态蚁群劳动分工模型的刺激-响应原理,将动态蚁群劳动分工的环境刺激模型、响应阈值模型及转移概率模型在异构多auv系统动态任务分配问题上进行一一映射;最后采用循环竞争方案,解决任务冲突问题,为每个auv分配任务。本发明方法能高效地完成任务分配过程,与传统的群智能任务分配方法相比,具有很好的自组织性、鲁棒性及快速性且能得出无冲突的任务分配方案。

本发明解决其技术问题所采用的技术方案包括以下步骤:

步骤1:建立异构多auv动态任务分配问题数学模型;

步骤1-1:异构多auv系统动态任务分配问题定义为在一定区域内,有n个异构auv执行m个不同特性的任务,且在执行过程中,任务的数量和状态会发生变化,为保证任务执行的效率,需要异构多auv系统实时进行动态任务分配;

步骤1-2:n个不同参数的auv组成auv群体,表示为auv={auv1,auv2,…,auvn};

将auv的参数用集合进行描述,即:

{auv_stateauv_positionauv_resourceauv_speedauv_abilityauv_scope}其中,auv_state代表auv的状态,指空闲或执行任务;auv_position代表auv所处的位置;auv_resource代表auv携带的资源总量,简化表示为rc;auv_speed代表auv的航行速度;auv_ability代表auv执行任务的能力;auv_scope代表auv执行任务的范围;

步骤1-3:被auv执行的不同任务集合表示为task={task1,task2,…,taskm},m表示任务的个数;将各任务使用集合进行描述,即:

{task_statetask_positiontask_resourcetask_value}

其中,task_state代表任务的状态,指任务是否被完成;task_position代表任务所处的位置;task_resource代表任务的需求资源数量,简化表示为rt;task_value代表任务的价值;

步骤1-4:将异构多auv系统动态任务分配问题表示为集合{task,auv,utotai},即输入一组任务给多auv系统,通过动态任务分配使得系统整体效能最大;其中utotal表示系统的效能函数,即目标函数;

步骤1-5:建立异构多auv系统动态任务分配问题的约束条件:

其中,决策变量x(i,j)表示auvi是否执行任务taskj,x(i,j)=1表示auvi执行taskj,x(i,j)≠1表示不执行;j表示任务序号,i表示auv序号;c表示一个auv执行同一任务的次数,c表示一个auv执行同一任务的次数序号;

式(1)中第1个条件表示同一时刻,一个任务能被多个auv执行;

式(1)中第2个条件表示同一时刻,任意一个auv只能执行一个任务;

式(1)中第3个条件表示同一auv对于同一任务只能执行一次;

式(1)中第4个条件表示单个auv或多auv自行组成的联盟执行任务时,其携带的资源总量rck必须满足任务所需的资源数量task_recource(t)才能完成该任务,其中λ(λ≥1)表示联盟中auv的个数;

步骤2:采用动态蚁群劳动分工模型,将auv对应为蚂蚁;根据动态蚁群劳动分工模型的刺激-响应原理,将动态蚁群劳动分工的环境刺激模型、响应阈值模型及转移概率模型在异构多auv系统动态任务分配问题上进行一一映射:

步骤2-1:环境刺激模型映射;

用sj(t)表示t时刻任务taskj所对应的环境刺激值;初始时刻任务taskj的环境刺激值sj(0)大小仅取决于执行的任务价值,即:

其中,task_value(j)表示第j个任务的价值;

各个auv结合任务的环境刺激值与自身对任务的响应阈值决定是否执行该项任务,如果该项任务没有被执行,则该项任务的环境刺激值随时间变化而变化,其变化规则为:

sj(t+1)=(1-η)*(sj(t)+δj)(3)

其中,sj(t+1)表示t+1时刻任务taskj所对应的环境刺激值,δj表示任务taskj单位时间内环境刺激值的增量;η表示任务的完成度;

表示auv从当前所执行任务转去执行任务taskj的相对环境刺激值:

当auvi处于空闲状态时,则假定环境中存在一个虚任务task0与之对应且不对其状态进行更新,该任务task0的环境刺激值s0满足以下公式:

s0=min(s1,s2,…,sm)(5)

其中,s1,s2,…,sm分别表示第1个到第m个任务的环境刺激值;

步骤2-2:响应阈值模型映射;

用ξij(t)表示t时刻auvi执行taskj的响应阈值,其计算公式为:

其中,分别表示t+1时刻auvi到任务taskj的下一预测步的的距离及到达所需时间;w1与w2为考虑距离和时间的权重;n表示剩余资源数量不为零的auv个数,m表示任务所需资源不为零的任务个数;

φi表示学习因子,反映auvi的学习能力,φi<1,φi的更新公式为:

其中,nk(t-t)表明auvi在时刻t之前执行相同类型任务k的次数;stu∈(0,1)是初始学习因子;

为t时刻auvi的资源消耗因子,表示auvi的响应阈值随着资源消耗增大而增大,从而达到不执行任务的目的;的计算如下:

其中,rci(0)和rci(t)分别表示auvi最初携带的资源及t时刻自身所拥有的资源;

ψi(t)表示t时刻auvi的剩余资源占有率,计算如下:

表示auvi从当前所执行任务转去执行taskj的相对响应阈值:

auvi对虚任务task0的响应阈值ξi0(t)满足以下公式:

ξi0(t)=max(ξi1,ξi2,…,ξim)(11)

其中,ξi1,ξi2,…,ξim分别表示auvi对第1个到第m个任务的响应阈值;

步骤2-3:转移概率模型映射;

用pij表示下一时刻auvi转去执行taskj的转移概率pij:

步骤3:采用循环竞争方案,解决任务冲突问题,为每个auv分配任务;

步骤3-1:如果存在auvi未被分配任务,则循环执行步骤3-2至步骤3-14,直至所有auv均被分配任务;

当所有auv均被分配任务时,分配过程结束,结束循环竞争方案;

步骤3-2:所有auvi依据pij最大原则选择任务;

步骤3-3:当存在任务被多个auv选择,则执行步骤3-4至步骤3-13;

当每个任务都被n个auv中的一个选择时,则结束循环;

步骤3-4:如果任务taskj在上次循环中已被分配auv执行,则执行步骤3-5;否则跳至步骤3-6;

步骤3-5:提取已被分配任务taskj的auv,参与此次循环对任务taskj的竞争;

步骤3-6:如果任务taskj的需求资源数量rtj<min(rci),则执行步骤3-7,否则跳至步骤3-8;

步骤3-7:分配ξij最小的auv执行任务taskj;

步骤3-8:如果min(rci)<rtj<max(rci),则执行步骤3-9,否则跳至步骤3-10;

步骤3-9:在满足rci>rtj的auv中分配ξij最小的auv执行任务taskj;

步骤3-10:如果max(rci)<rtj<sum(rci),则执行步骤3-11,否则跳至步骤3-12;

步骤3-11:将参与竞争的auv按其对taskj的响应阈值ξij从小到大排列并依次选择auvi执行任务taskj直到∑irci≥rtj;

步骤3-12:将所有auv分配去执行任务taskj;

步骤3-13:将竞争中淘汰的auv对应的pij设置为0,表示下一次循环时不再考虑选择执行任务taskj;

步骤3-14:如果存在auvi满足pij=0(j=1,2,…,m),则为任务auvi分配虚任务。

本发明的有益效果如下:

本发明引入动态蚁群劳动分工中的刺激-响应原理,将任务的状态预测纳入响应阈值,建立了动态蚁群劳动分工与多auv任务分配问题之间的映射关系,同时针对任务分配过程中可能出现的任务冲突现象,提出了新的循环竞争方案以实现最大限度地利用auv资源。本发明提出的方法能高效地完成任务分配过程,与传统的群智能任务分配方法相比,具有很好的自组织性、鲁棒性及快速性且能得出无冲突的任务分配方案。

附图说明

图1为本发明方法流程图。

图2为本发明方法循环竞争方案流程图。

图3为本发明实施例dacld的相对运动结果图。

图4为本发明实施例dacld的动态任务分配结果图。

图5为本发明实施例任务所需资源变化图(与aco、pso及ga相比)。

具体实施方式

下面结合附图和实施例对本发明进一步说明。

本发明态蚁群劳动分工模型方法进行改进并将其应用于多auv动态任务分配中,根据动态蚁群劳动分工中的刺激-响应原理,将动态蚁群劳动分工中的响应阈值模型、环境刺激模型及转移概率模型在多auv任务分配问题上进行一一映射,从而实现动态任务分配。为了避免在解决任务冲突问题时auv资源被闲置,提出了一种循环竞争方案以实现最大限度地利用auv资源,同时确保了每一分配结果的任务完成效率最高。

如图1所示,一种基于动态蚁群劳动分工模型的多auv任务分配方法,包括以下步骤:

步骤1:建立异构多auv动态任务分配问题数学模型;

步骤1-1:异构多auv系统动态任务分配问题定义为在一定区域内,有n个异构auv执行m个不同特性的任务,且在执行过程中,任务的数量和状态会发生变化,为保证任务执行的效率,需要异构多auv系统实时进行动态任务分配;

步骤1-2:n个不同参数的auv组成auv群体,表示为auv={auv1,auv2,…,auvn};

将auv的参数用集合进行描述,即:

{auv_stateauv_positionauv_resourceauv_speedauv_abilityauv_scope}其中,auv_state代表auv的状态,指空闲或执行任务;auv_position代表auv所处的位置;auv_resource代表auv携带的资源总量,简化表示为rc;auv_speed代表auv的航行速度;auv_ability代表auv执行任务的能力;auv_scope代表auv执行任务的范围;

步骤1-3:被auv执行的不同任务集合表示为task={task1,task2,…,taskm},m表示任务的个数;将各任务使用集合进行描述,即:

{task_statetask_positiontask_resourcetask_value}

其中,task_state代表任务的状态,指任务是否被完成;task_position代表任务所处的位置;task_resource代表任务的需求资源数量,简化表示为rt;task_value代表任务的价值;

步骤1-4:将异构多auv系统动态任务分配问题表示为集合{task,auv,utotal},即输入一组任务给多auv系统,通过动态任务分配使得系统整体效能最大;其中utotal表示系统的效能函数,即目标函数;

对于传统的任务分配方法(如蚁群算法),utotal用于迭代过程中任务分配结果的评定上,进而影响迭代过程(如蚁群算法中信息素的叠加),本发明中utotal体现在冲突解决方案的评价指标(响应阈值)中,进而影响每只蚂蚁(auv)对任务的竞争;

步骤1-5:异构多auv系统的任务分配是一个多输入,多输出,多约束以及多目标的优化问题。输入包括各auv参数、各任务参数,输出包括任务与auv的分配关系,面向任务的auv之间资源分配关系。建立异构多auv系统动态任务分配问题的约束条件:

其中,决策变量x(i,j)表示auvi是否执行任务taskj,x(i,j)=1表示auvi执行taskj,x(i,j)≠1表示不执行;j表示任务序号,i表示auv序号;c表示一个auv执行同一任务的次数,c表示一个auv执行同一任务的次数序号;

式(1)中第1个条件表示同一时刻,一个任务能被多个auv执行;

式(1)中第2个条件表示同一时刻,任意一个auv只能执行一个任务;

式(1)中第3个条件表示同一auv对于同一任务只能执行一次;

式(1)中第4个条件表示单个auv或多auv自行组成的联盟执行任务时,其携带的资源总量rck必须满足任务所需的资源数量task_recource(t)才能完成该任务,其中λ(λ≥1)表示联盟中auv的个数;

步骤2:采用动态蚁群劳动分工模型,将auv对应为蚂蚁;根据动态蚁群劳动分工模型的刺激-响应原理,将动态蚁群劳动分工的环境刺激模型、响应阈值模型及转移概率模型在异构多auv系统动态任务分配问题上进行一一映射:

步骤2-1:环境刺激模型映射;

用sj(t)表示t时刻任务taskj所对应的环境刺激值;初始时刻任务taskj的环境刺激值sj(0)大小仅取决于执行的任务价值,即:

其中,task_value(j)表示第j个任务的价值;

任务环境刺激值大小反应任务的紧迫程度,刺激值越大,任务越紧迫,则越容易吸引蚂蚁(auv)执行该项任务。各个auv结合任务的环境刺激值与自身对任务的响应阈值决定是否执行该项任务,如果该项任务没有被执行,则该项任务的环境刺激值随时间变化而变化,其变化规则为:

sj(t+1)=(1-η)*(sj(t)+δj)(3)

其中,sj(t+1)表示t+1时刻任务taskj所对应的环境刺激值,δj表示任务taskj单位时间内环境刺激值的增量;η表示任务的完成度;

表示auv从当前所执行任务转去执行任务taskj的相对环境刺激值:

当auvi处于空闲状态时,则假定环境中存在一个虚任务task0与之对应且不对其状态进行更新,该任务task0的环境刺激值s0满足以下公式:

s0=min(s1,s2,…,sm)(5)

其中,s1,s2,…,sm分别表示第1个到第m个任务的环境刺激值;

步骤2-2:响应阈值模型映射;

用ξij(t)表示t时刻auvi执行taskj的响应阈值,其计算公式为:

其中,分别表示t+1时刻auvi到任务taskj的下一预测步的的距离及到达所需时间;w1与w2为考虑距离和时间的权重;n表示剩余资源数量不为零的auv个数,m表示任务所需资源不为零的任务个数;

φi表示学习因子,反映auvi的学习能力,auvi一旦积累了执行任务task的经验,auvi执行类似任务的响应阈值降低,φi<1,φi的更新公式为:

其中,nk(t-t)表明auvi在时刻t之前执行相同类型任务k的次数;stu∈(0,1)是初始学习因子;

为t时刻auvi的资源消耗因子,表示auvi的响应阈值随着资源消耗增大而增大,从而达到不执行任务的目的;的计算如下:

其中,rci(0)和rci(t)分别表示auvi最初携带的资源及t时刻自身所拥有的资源;

ψi(t)表示t时刻auvi的剩余资源占有率,计算如下:

表示auvi从当前所执行任务转去执行taskj的相对响应阈值:

auvi对虚任务task0的响应阈值ξi0(t)满足以下公式:

ξi0(t)=max(ξi1,ξi2,…,ξim)(11)

其中,ξi1,ξi2,…,ξim分别表示auvi对第1个到第m个任务的响应阈值;

步骤2-3:转移概率模型映射;

用pij表示下一时刻auvi转去执行taskj的转移概率pij,通过比较转移概率的大小,选取概率最大的状态预设为下一步的状态;

步骤3:如图2所示,采用循环竞争方案,解决任务冲突问题,为每个auv分配任务;

一般情况下,auv选择pij最大的任务作为下一步要执行的任务。而当有多个auv同时选择同一任务(假设为taske)时,则出现了任务冲突。冲突解决方案涉及以下问题:(1)如何在冲突的auv中选择某一个或某几个auv来执行taske?评价标准是什么?(2)在对taske的竞争中落选的auv是否有可能比在其余任务(假设为taskf)的竞争中获胜的auv更适合执行taskf?如果“是”,则在对taske的竞争中落选的auv与对taskf的竞争中获胜的auv便再一次构成了一次竞争关系,那么在第二次对taskf竞争的中落选的auv便又会依pij进行第三次的竞争,以此类推,此即为循环竞争。(3)循环竞争到什么地步便会停止?依据是什么?

以往的冲突解决方案大多只进行一次竞争,而被淘汰的智能体便不再参与此次任务分配,处于空闲状态。这种分配方案会造成auv资源的浪费,且任务执行效率不高。因此针对以上问题提出如下冲突解决方案:

步骤3-1:如果存在auvi未被分配任务,则循环执行步骤3-2至步骤3-14,直至所有auv均被分配任务;

当所有auv均被分配任务时,分配过程结束,结束循环竞争方案;这样做既保证了auv资源的合理利用,又保证了auv群执行任务的高效性;

步骤3-2:所有auvi依据pij最大原则选择任务;

步骤3-3:当存在任务被多个auv选择,则执行步骤3-4至步骤3-13;

在一次循环中会解决所有组对任务有冲突的auv间的竞争,而在竞争中落败的auv会依pij依次选择下一个最愿意执行的任务,如果下一个最愿意执行的任务在前面的循环中已分配好auv去执行,则又会建立新的竞争,会在下一次循环中去解决。

当每个任务都被n个auv中的一个选择时,则结束循环;

步骤3-4:如果任务taskj在上次循环中已被分配auv执行,则执行步骤3-5;否则跳至步骤3-6;

步骤3-5:提取已被分配任务taskj的auv,参与此次循环对任务taskj的竞争;

步骤3-6:如果任务taskj的需求资源数量rtj<min(rci),则执行步骤3-7,否则跳至步骤3-8;

步骤3-7:分配ξij最小的auv执行任务taskj;

当多个auv均依转移概率选择某个任务时,优先选用auv资源满足任务所需资源的auv而不采取合作方案。此外,由于auv的响应阈值ξij综合了auv到任务的距离、auv执行任务所需的时间、auv的资源消耗因子、auv的剩余资源占有率及auv执行任务的能力,故采用ξij作为冲突解决指标。ξij越小代表auv执行该任务更优,故原则上尽可能地为每个任务分配较小ξij的auv。

步骤3-8:如果min(rci)<rtj<max(rci),则执行步骤3-9,否则跳至步骤3-10;

步骤3-9:在满足rci>rtj的auv中分配ξij最小的auv执行任务taskj;

步骤3-10:如果max(rci)<rtj<sum(rci),则执行步骤3-11,否则跳至步骤3-12;

步骤3-11:将参与竞争的auv按其对taskj的响应阈值ξij从小到大排列并依次选择auvi执行任务taskj直到∑irci≥rtj;步骤3-12:将所有auv分配去执行任务taskj;

步骤3-13:将竞争中淘汰的auv对应的pij设置为0,表示下一次循环时不再考虑选择执行任务taskj;

步骤3-14:如果存在auvi满足pij=0(j=1,2,…,m),则为任务auvi分配虚任务。

当任务执行过程中剩余待执行的任务个数小于rci>0的auv个数时,可能出现有的auv在对所有任务的竞争中均落败的现象,此时该auv被分配为虚任务,表示该auv暂时处于空闲状态且不对其状态进行更新。

具体实施例:

1、假设初始时刻有3个异构auv和5个动态任务,每个auv根据动态任务分配结果向所分配的任务移动,任务进入auv的执行范围便会被执行,直到所有任务被完成,仿真结束。

auv和任务的初始信息分别示于下表1和2中。

表1auv参数设置

表2task参数设置

通过与基于aco、pso及ga的任务分配方法的结果进行对比,分析本文所提出的基于dacld的任务分配方法的自组织性、鲁棒性和快速性。aco、pso及ga中的个体数目k为30只,每得到一次任务分配结果的迭代次数nc为100次,目标函数是尽可能地使auv群执行任务所需的时间及航程最小。本文所提dacld中的公式(6)中,w1设置为0.7,w2设置为0.3。

2、图3为多auv依据dacld去自主分配跟踪目标而产生的相对运动结果图。图4为dacld整个过程中的动态任务分配结果图。

结合两图分析可知,t=24s时auv1原本跟踪task2,auv3原本跟踪task1,此时auv1转而更愿意跟踪task1,且根据冲突解决方案在与auv3对task1的竞争中获胜(ξ11(24)=0.1887,ξ31(24)=0.2186),故auv1转而执行task1,而auv3转而执行转移概率较大的task2。从图3中可以很直观的看到,这是由于两个任务的位置发生了明显的变化,从而引起了响应阈值的变化,交换任务后的执行效率明显更高。这体现了所提的基于dacld的任务分配方法具有良好的自组织性。

3、图5为采用不同算法的总的task所需资源变化图。在任务执行过程中,总的task所需资源会随着任务被执行而不断降低直至变为0。

由图5可知,基于aco的任务分配方法执行完成所有任务用时51s,基于pso的任务分配方法执行完成所有任务用时53s,基于pso的任务分配方法执行完成所有任务用时52s,而基于dacld任务分配方法执行完成所有任务用时45s且所有任务均于基于三种任务分配方法之前完成,表明所提出的dacld任务分配方法具有更高的执行效率。

4、表3反应了不同算法在计算机中运行的仿真时间对比。仿真环境为matlab2018a,计算机配置为2.2ghzintel(r)core(tm)i5-5200u处理器,12gram,win10家庭中文版。

表3算法仿真时间对比表

算法时间效率可表示为每一步得到一个任务分配结果计算机所需要运行的时间。由表3可知,本文所提方法的算法时间效率要远大于aco等群智能搜索算法的时间效率。这是由于aco、pso及ga为了保证算法结果收敛,需完成nc*k次任务分配才得到一次最终的任务分配结果,而dacld只需要完成一次任务分配即可,因而算法复杂度要远小于aco等群智能搜索算法。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1