计算无人机集群重新编队的最短编队距离的方法技术

技术编号:22329598 阅读:16 留言:0更新日期:2019-10-19 12:10
本发明专利技术提供了一种计算无人机集群重新编队的最短编队距离的方法,主要包括以下步骤:步骤S1、设计递归算法,并对该递归算法进行预处理,以找出递归代码部分;步骤S2、将递归算法中的递归代码部分利用CPS技术转化为尾递归形式;步骤S3、利用Trampoline技术对尾递归形式进行优化,以获得尾递归算法;步骤S4、利用优化后的尾递归算法计算无人机集群重新编队的最短编队距离以及最短编队路径集合。本发明专利技术通过递归算法计算无人机集群重新编队后的最短编队路径集合,可以提高无人机在执行任务中的续航时间,减少系统消耗,同时利用尾递归优化递归算法,有效解决了因为递归算法而产生的爆栈问题,保证程序的正常运行。

【技术实现步骤摘要】
计算无人机集群重新编队的最短编队距离的方法
本专利技术涉及一种计算无人机集群重新编队的最短编队距离的方法,属于无人机编队领域。
技术介绍
随着近十几年来控制技术、通信技术和计算技术的飞速发展,多无人机的协调控制受到广泛重视,其对于大区域范围的考察和开发工作具有重要价值和经济意义。在实际无人机的编队控制中,重新编队是多智能体在作业过程中不可避免要遇到的问题,这一过程是指智能体从原有队形被打乱到新队形形成的过程。最短编队距离问题是指寻找一种可行的算法,使得所有智能体在重新编队过程中的行程之和最小,本专利技术采用一种递归思想描述遍历算法。众所周知,递归容易引起爆栈,一旦发生爆栈,计算过程就会报错从而影响整个程序的运行。究其原因,便是函数调用前需要先将参数、运行状态压栈,而递归则会导致函数的多次无返回调用,参数、状态积压在栈上,最终耗尽栈空间。利用CPS变换,把任意递归函数改写成尾调用形式,以continuation链的形式,将递归占用的栈空间转移到堆上,以避免爆栈。对系统编队控制的研究则通常转化为智能体的目标跟随问题,通过选择队形中的固定位置作为跟随目标最终使多智能体形成编队,而实际情况下智能体由于选择队形中参考点的不同,其编队过程中智能体的行程也有较大差别。因此如何选择合适的相对位置,使编队中的智能体行程尽可能缩短,对多智能体系统有重要的意义。有鉴于此,确有必要提出一种计算无人机集群重新编队的最短编队距离的方法,以解决上述问题。
技术实现思路
本专利技术的目的在于提供一种计算无人机集群重新编队的最短编队距离的方法,以解决递归引发的爆栈问题,从而提高整个系统程序可读性、可维护性和响应性。为实现上述目的,本专利技术提供了一种计算无人机集群重新编队的最短编队距离的方法,主要包括以下步骤:步骤S1、设计递归算法,并对该递归算法进行预处理,以找出递归代码部分;步骤S2、将递归算法中的递归代码部分利用CPS技术转化为尾递归形式;步骤S3、利用Trampoline技术对尾递归形式进行优化,以获得尾递归算法;步骤S4、利用优化后的尾递归算法计算无人机集群重新编队的最短编队距离以及最短编队路径集合。可选的,步骤S2具体包括:步骤S21:对递归算法中的递归函数添加一个cont参数,标记需要转化的部分;步骤S22:利用CPS技术进行转化,将递归算法中的递归函数全部转化为尾递归形式。可选的,步骤S3具体包括:步骤S31:设置一个对象cont_v={cont:…,v:…},用来保存每次得出的结果;步骤S32:利用Trampoline技术手动强制弹出下一层调用的函数,禁止解释器的压栈行为,将尾递归形式改成循环形式。可选的,步骤S1中的预处理为:根据无人机集群重新编队前和重新编队后的位置集合,计算出n个无人机的编队距离矩阵,即n阶矩阵D。可选的,重新编队前无人机集群的位置集合为W={x1,x2...xn},重新编队后无人机集群的位置集合为W′={x1′,x2′...xn′}。可选的,步骤S4中的最短编队路径集合为Sout={dn,n'|||xn′-xn||}。可选的,矩阵元素dn,n'为单个无人机重新编队后移动的路径,即D=[dn,n']。可选的,设置路径栈S用于存放单个无人机重新编队后移动的路径dn,n'。可选的,最短编队距离Smin为路径栈S的值,路径栈S的值为当前路径栈中所有矩阵元素dn,n’的和。可选的,最短编队距离算法为:步骤1:初始化n阶矩阵D,设置初始路径栈S为空,初始最短编队路径集合Sout为空,初始最短编队距离Smin为+∞;步骤2:若当前矩阵维数n为0,则计算当前路径栈S的值,并比较当前路径栈S和已知最短编队距离Smin的大小,输出两者最小值,并将最小值输入至最短编队距离Smin,将当前路径输入至最短编队路径集合Sout,并进入步骤6;若当前矩阵维数n不为0,则进入步骤3;步骤3:在当前矩阵的第一行逐一选择矩阵元素dn,n’并将矩阵元素dn,n’输入路径栈S;步骤4:将当前矩阵进行压栈操作,删除矩阵元素dn,n’所在行和所在列的所有元素,对当前矩阵降1阶;步骤5:重复步骤2;步骤6:对路径栈S进行出栈操作,恢复n阶矩阵D;步骤7:若n阶矩阵D的第一行元素没有选择完,则进入步骤3,否则进入步骤8;步骤8:输出最短编队距离Smin和最短编队路径集合Sout。本专利技术的有益效果是:本专利技术通过递归算法计算无人机集群重新编队后的最短编队路径集合,可以提高无人机在执行任务中的续航时间,减少系统消耗,同时利用尾递归优化递归算法,有效解决了因为递归算法而产生的爆栈问题,保证程序的正常运行。附图说明图1是本专利技术计算无人机集群重新编队的最短编队距离的算法流程图。图2是图1所示算法中矩阵元素压栈、矩阵降阶的过程示意图。图3是图1所示算法中,在压栈中出栈并选择次阶矩阵中不同元素完成新的全排列的过程示意图。图4是图1所示算法中矩阵元素出栈、恢复n阶矩阵D的过程示意图。具体实施方式为了使本专利技术的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本专利技术进行详细描述。本专利技术揭示了一种计算无人机集群重新编队的最短编队距离的方法,主要包括以下步骤:步骤S1、设计递归算法,并对该递归算法进行预处理,以找出递归代码部分;步骤S2、将递归算法中的递归代码部分利用CPS技术转化为尾递归形式;步骤S3、利用Trampoline技术对尾递归形式进行优化,以获得尾递归算法;步骤S4、利用优化后的尾递归算法计算无人机集群重新编队的最短编队距离以及最短编队路径集合。以下将对步骤S1-步骤S4做详细说明。其中,步骤S1具体包括:步骤S11(预处理):假设有n(n>1000)架无人机组成三角编队队形,编队飞行过程中遭遇障碍物,需要重新调整队形,则先记录下重新编队前n架无人机的位置集合W={x1,x2...xn},及重新编队后的位置集合W'={x1’,x2’...xn’},继而计算出无人机编队所有路径集合为Sout={dn,n’|||xn’-xn||},矩阵元素dn,n'为单个无人机重新编队后移动的路径,由此得出无人机的编队距离n阶矩阵D=[dn,n’];步骤S12:设计一种最短编队算法,最短编队距离指在有限时间内无人机在队形变化过程中的行程之和最小,记为Smin;步骤S13:假设会有n!种全排列,设计一种递归思想的遍历算法,假设从n阶矩阵D的第一行逐行遍历,算法的基本思想是如果已知前n-1步的决策过程,第n步决策只需在第n行中逐一选择不同列的元素,并通过比较得出当前最优解集;步骤S14:设计决策过程,初始化一个最短路径Sout为空,设置一个初始路径栈S,用来存放单个无人机重新编队后移动的路径dn,n',路径栈S的值为当前路径栈中所有矩阵元素dn,n’的和,初始化最短路径Smin的值,可以设为+∞。其中,步骤S2具体包括:步骤S21:对递归算法中的递归函数添加一个cont参数,标记需要转化的部分,为后续CPS转化做准备;步骤S22:利用CPS技术进行转化,将递归算法中的递归函数全部转化为尾递归形式。其中,步骤S3具体包括:步骤S31:首先设置一个对象cont_v={cont:…,v:…},用来保存每次得出的结果,当递归计算过程中,超过一定范围的参数压栈,会引发爆栈行为;本文档来自技高网...

【技术保护点】
1.一种计算无人机集群重新编队的最短编队距离的方法,其特征在于,主要包括以下步骤:步骤S1、设计递归算法,并对该递归算法进行预处理,以找出递归代码部分;步骤S2、将递归算法中的递归代码部分利用CPS技术转化为尾递归形式;步骤S3、利用Trampoline技术对尾递归形式进行优化,以获得尾递归算法;步骤S4、利用优化后的尾递归算法计算无人机集群重新编队的最短编队距离以及最短编队路径集合。

【技术特征摘要】
1.一种计算无人机集群重新编队的最短编队距离的方法,其特征在于,主要包括以下步骤:步骤S1、设计递归算法,并对该递归算法进行预处理,以找出递归代码部分;步骤S2、将递归算法中的递归代码部分利用CPS技术转化为尾递归形式;步骤S3、利用Trampoline技术对尾递归形式进行优化,以获得尾递归算法;步骤S4、利用优化后的尾递归算法计算无人机集群重新编队的最短编队距离以及最短编队路径集合。2.根据权利要求1所述的计算无人机集群重新编队的最短编队距离的方法,其特征在于,步骤S2具体包括:步骤S21:对递归算法中的递归函数添加一个cont参数,标记需要转化的部分;步骤S22:利用CPS技术进行转化,将递归算法中的递归函数全部转化为尾递归形式。3.根据权利要求2所述的计算无人机集群重新编队的最短编队距离的方法,其特征在于,步骤S3具体包括:步骤S31:设置一个对象cont_v={cont:…,v:…},用来保存每次得出的结果;步骤S32:利用Trampoline技术手动强制弹出下一层调用的函数,禁止解释器的压栈行为,将尾递归形式改成循环形式。4.根据权利要求1所述的计算无人机集群重新编队的最短编队距离的方法,其特征在于,步骤S1中的预处理为:根据无人机集群重新编队前和重新编队后的位置集合,计算出n个无人机的编队距离矩阵,即n阶矩阵D。5.根据权利要求4所述的计算无人机集群重新编队的最短编队距离的方法,其特征在于:重新编队前无人机集群的位置集合为W={x1,x2...xn},重新编队后无人机集群的位置集合为W′={x1′,x2′...xn′}。6.根据权利要求5所述的计算无人机集群重新编队的最短编队距离的方...

【专利技术属性】
技术研发人员:张迎周黄秋月傅建清陈宏建肖雁冰
申请(专利权)人:南京邮电大学
类型:发明
国别省市:江苏,32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1