一种基于双层嵌套遗传算法的多林区航线调度规划方法

文档序号:31562781发布日期:2022-09-20 17:58阅读:65来源:国知局
一种基于双层嵌套遗传算法的多林区航线调度规划方法

1.本发明涉及林业管理领域,尤其涉及一种基于双层嵌套遗传算法的多林区航线调度规划方法。


背景技术:

2.我国林区地形非常复杂,既有集中的大面积林区,也有分散的小面积林地。例如东北地区、西南地区的林地多为大面积林区,而东部地区的林地以道路、村庄以及农田等地区的防护林为主,多为面积较小的片林,在航空施药的过程中,常出现施药区域为多个较小的林区,因此,多林区的调度航线规划尤为重要。目前对航空多林区施药作业时调度航线的研究较少,难以满足多林区航空施药作业的使用需求,给多林区施药操作带来了一定的困扰。


技术实现要素:

3.本发明目的是针对上述问题,提供一种操作简单、提高效率的基于双层嵌套遗传算法的多林区航线调度规划方法。
4.为了实现上述目的,本发明的技术方案是:一种基于双层嵌套遗传算法的多林区航线调度规划方法,包括以下步骤:s1、根据需要喷药的林区数量设置第一层遗传算法的种群大小和长度、交叉概率、变异概率;设置第二层遗传算法的种群大小和长度、交叉概率、变异概率;s2、采用十进制编码方式,采用随机产生种群的方式得到初始种群chrom1;并对初始种群chrom1进行扩展,得到种群chrom11;s3、对第二层遗传算法采用二进制编码,采用随机生成二进制数的方式得到种群chrom2;s4、根据种群chrom2修正扩展种群chrom11的第k行,得到针对chrom1中第k行的修正扩展种群chrom22;修正后的种群chrom22中的染色体即表示真实的进出点路径的调度路径,计算种群chrom22中每行染色体对应的调度路径长度,将种群chrom22中每行染色体对应的调度路径长度的倒数作为种群chrom2对应每行的适应度值;s5、对种群chrom2中的染色体进行选择、交叉、变异操作,然后进行逆转操作,生成更新后的种群chrom3,并把种群chrom3的数据赋予种群chrom2;s6、检测第二层遗传算法迭代次数是否超过最大迭代次数,当迭代次数未超过最大迭代次数时,返回步骤s4,否则进行步骤s7;s7、计算种群chrom1中第k行的适应度:种群chrom11中第k行根据种群chrom2中每行的二进制编码进行修正扩展种群,得修正后扩展种群chrom22,并将chrom22中距离最短值作为种群chrom1中第k行适应度,记为f1(k);s8、判断k值是否大于种群chrom1的种群数;当k≥size(chrom1,1)时,将k=1,进行步骤s8,否则将k=k+1,返回步骤s4;s9、对种群chrom1中的调度长度进行选择、交叉、变异操作,然后进行逆转操作;重
新插入得更新后的种群chrom1;s10、检测迭代次数是否超过最大迭代次数,当迭代次数未超过最大迭代次数时,返回步骤s2,否则进行步骤s11;s11、通过计算输出最短调度路径,该最短调度路径即为多林区航线调度规划的最短调度路径。
5.进一步的,所述步骤s1中第一层遗传算法种群中的种群大小设置为林区数与飞机起降点之和的4~6倍,迭代次数、交叉概率、变异概率、代沟均设置为常数;所述交叉概率设置为0.6~0.9,变异概率设置为0.0001~0.1,代沟设置为0.9~0.95。
6.进一步的,所述步骤s3中第二层遗传算法种群中的种群大小设置为林区数与飞机起降点之和的4~6倍,交叉概率、变异概率、代沟均设置为常数;交叉概率设置为0.6~0.9,变异概率设置为0.0001~0.1之间,代沟设置为0.9~0.95。
7.与现有技术相比,本发明具有的优点和积极效果是:本发明通过采用双层嵌套遗传算法对多林区航线调度路径进行规划,从而得到最短调度路径,其避免了过多的重复计算过程,计算效率较高,从而提高了多林区施药的路径规划效率;本发明可以缩短多林区施药操作的调度航程,节约了多林区施药操作的工作时间,提高了林区施药的施药效率,并且其有效减小了航空燃油的使用量,节约了林区施药作业的经济成本,给多林区施药操作带来了便利。
附图说明
8.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
9.图1为本发明中的双层嵌套遗传算法流程图;图2为多林区航线规划任务图;图3为单片区内航线规划示意图;图4为多林区全局航线调度规划结果示意图。
具体实施方式
10.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
11.如图1至图4所示,本实施例公开了一种基于双层嵌套遗传算法的多林区航线调度规划方法,其航线规划任务如下:直升机从图2中飞机起落点h出发,然后经过每个片区的进入点和出去点,遍历每个片区,然后回到h。要求区域间调度的航线最短。区域内部采用图3所示的全覆盖航线规划算法,即从边界最长边根据飞机喷福宽度以此做平行线,到其它边界交界时,飞机掉头飞行,直至遍历完片区所有面积。因此每个片区必有进入点和出入点。调度规划时必须从两点进出,但不具体哪一点。如从图2中a1进入后,必须从a2出,或者从a2
进入后,必须从a1出。区域内部按照图3所示的航线规划。按照图1所示的双层嵌套遗传算法进行路线规划,得到如图4所示的较优结果。
12.双层嵌套遗传算法流程如图1所示:以下是算法实施过程:步骤1:算法开始,根据需要喷药的林区数量设置第一层遗传算法的种群大小和长度,例如有5片林区需要施药,则种群的长度定为5+1=6。原因在于,将每个林区都用进出入点连线的中点表示,如图2中的a0所示,将图1中的飞机起降点也视为一个点,放在种群长度最后一位,则5片林区的调度任务看成是6片林区调度任务。种群的数量设置为城市数的4-6倍,如将5个片区的调度任务,种群数目可设置为24-36之间。设置第一层算法的迭代次数gen1为常数,如500;交叉概率、变异概率、代沟都设置为常数。交叉概率设置为0.6-0.9之间,变异概率设置为0.0001-0.1之间,代沟设置为0.9-0.95。然后设置第二层遗传算法的种群大小、变异概率和最大迭代次数gen2。采用二进制编码,表达各林区进出点状态。种群大小同样设置为林区数与飞机起降点之和的4-6倍。染色体长度设置为林区数与飞机起降点之和。交叉概率、变异概率、代沟都设置为常数,交叉概率设置为0.6-0.9之间,变异概率设置为0.0001-0.1之间,代沟设置为0.9-0.95。
13.步骤2:采用十进制编码方式,采用随机产生种群的方法,得到初始种群chrom1。如123456、213465、345216都是可以是该种群中其中的一个染色体,要求数字不重复。如第一步种群数设置为30,则初始种群中有30个随机产生的染色体。
14.步骤3:扩展该种群chrom1得chrom11,按照如下扩展方法。如5个片区调度任务,采用英文字母abcdeh分别与十进制数123456一一对应,其中h和6表示飞机起降点。步骤1中采用各林区进出点连线中点表示该林区,经步骤2后,得到初始化种群。接下来需要考虑各个林区的进出入点。如132456表示一个染色体,6为起降点。则在该染色体后再增加一条等长的染色体,其增加的染色体每个基因的大小为复制前染色体每个基因数值对应加上chrom1染色体长度值。则132456染色体初步扩展后变为1 3 2 4 5 6 7 9 8 10 11 12。其中7 9 8 10 11 12为复制的染色体都加上chrom1染色体长度值所得。扩展后的染色体记为chrom0,接下来对其进行排序操作。在chrom0中,前一半染色体采用1 3 2 4 5 6表示每个相应片区的进入点,后一半染色体7 9 8 10 11 12表示每个片区对应的离去点。将每个片区的进入点和离去点彼此相邻,且保持各林区作业顺序按照原来的顺序。调整完成以后的染色体1 7 3 9 2 8 4 10 5 11 6 12,该染色体就表示了表示考虑进出点后的真实调度路径。chrom0经过排序操作以后,得到扩展种群chrom11。用林区作业点描述上述染色体即为a1 a2 c1 c2 b1 b2 d1 d2 e1 e2 h1 h2。
15.林区片区编号、进出入点坐标、进出入点中点连线坐标如表1所示。表中的数值为一个随机算例参考值。其中6和h表示飞机起降点。飞机起降点的中点、进入点、离去点坐标值相同。然后将所有林区进出点和飞机起降点都看成一个伪片区,来计算得到扩展距离邻域表dd,如表2所示。
16.表1 各片区调度需要的坐标数值参考样例
表2 考虑片区进出入点和飞机起落点的领域距离矩阵 步骤4:初始化生成第二层遗传算法的种群chrom2。对第二层遗传算法采用二进制编码,以三片区域为例,作业顺序假定为abc。a区域的作业起始点可分别为a1与a2或a2与a1,两种状态分别用0与1表示。则a1a2b1b2c1c2的状态编码为000,表明作业顺序为a1进,a2出,b1进,b2出,c1进,c2出,再回到a1。则a1a2b2b1c1c2的状态编码即为010。同样采用随机生成二进制数的方式得到初始种群chrom2。如上述5片区和1个飞机起降点的调度任务,则0 0 1 0 1 0 、1 0 1 0 1 0 、1 1 1 0 1 1都可以是chrom2中的一个染色体。
17.步骤5:计算第二层遗传算法适应度f2。根据状态种群chrom2修正扩展种群chrom11的第k行,得到针对chrom1中第k行的修正扩展种群chrom22。修正后的chrom22中的染色体即表示真实的考虑进出点路径的调度路径。修正方法如表3所示。
18.表3 根据状态表chrom2修正chrom11的一个例子

如chrom11的第k行染色体,1和7分别表示a区的进入点和离去点,当chrom2中对应的状态为1时,表示a区进出点为a2进,a1出,即将chrom11中的1和7发生位置调换。得到对应的chrom22中的染色体为7和1。当chrom2中对应的状态为0时,则chrom11中对应的基因不做调整。以此类推,直至chrom11的第k行染色体根据chrom2染色体完全修正。修正后得到的chrom22中染色体如表3中第三行所示。该染色体表示的飞机航线为a2a1c1c2b1b2d2d1e1e2h2h1。chrom11的第k行染色体根据chrom2中每行染色体修正一次,得到修正后的新种群chrom22,然后根据扩展的邻域表dd,调用路径计算长度子程序pathlength,即可得chrom22中每行染色体对应的调度路径长度。如下面的染色体的长度便可以根据dd表和pathlength函数算出。染色体7 1 3 9 2 8 10 4 5 11 12 6表示路径7-1-3-9-2-8-10-4-5
ꢀ‑
11-12-6-7的长度,即a2-a1-c1-c2-b1-b2-d2-d1-e1-e2-h2-h1-a2环路的长度。该长度减去各林区内部进出点之间的连线长度,即可得真实路径长度。
19.计算适应度f2:计算chrom22中每行染色体对应的调度路径长度。将chrom22中每行染色体对应的调度路径长度的倒数作为chrom2对应每行的适应度值。f2(i)=l(chrom11(k){state(chrom2(i))})=lchrom22(i)。
20.步骤6:对chrom2的染色体进行选择、交叉、变异操作。选择采用轮盘赌的方式。
21.步骤7:对经历了步骤7中的chrom2进行逆转操作。考虑到调度任务的计算量较大,为避免求解陷入局部最优,采用逆转操作,可增强去全局搜索的能力。假如染色体为100101,在2和3,4和5处发生断裂再逆转插入,则新码串为10-01-01。
22.步骤8:重新插入生成更新后的种群chrom2。
23.步骤9:检测迭代次数是否超过最大迭代次数gen2,当迭代次数≤gen2时,返回步骤5,否则进行步骤10。
24.步骤10:计算chrom1中第k行适应度。chrom2经过了gen2次迭代优化。chrom11中第k行根据chrom2状态表中每一行修正扩展种群,得修正后扩展种群chrom22,并将chrom22中距离最短值作为chrom1中第k行适应度,记为f1(k)。
25.步骤11:判断k值是否大于chrom1种群数。当k ≥ size(chrom,1)时,将k=1,进行步骤12,否则将k=k+1,返回步骤5。
26.步骤12:对种群chrom进行选择、交叉、变异操作。按照步骤1的设定参数值进行。
27.步骤13:对种群chrom1进行逆转操作。假如染色体为12345678,在2和3,6和7处发生断裂再逆转插入,则新码串为12-6543-78。逆转操作用于增强算法的全局搜索能力。
28.步骤14:重新插入生成新的种群chrom1。
29.步骤15:检测迭代次数是否超过最大迭代次数gen1,当迭代次数≤gen1时,返回步
骤6,否则进行步骤3,否则进行步骤16。
30.步骤16:读取最短调度路径对应的chrom1中的作业顺序和chrom2中的状态表,记录最短调度路径长度。
31.步骤17:算法结束。
32.本发明采用了两层遗传算法嵌套方式;其中,第一层遗传算法的适应度计算方法依赖第二层的结果,且第一层算法的编码方式根据片区数有关,采用十进制编码;第二层遗传算法的适应度计算方法依赖于第一层的结果,且第二层算法的编码方法采用二进制,表示飞机进入各林区的状态。本算法共需要迭代gen1*gen2次。gen1和gne2分别为算法两层算法各自设置的最大迭代次数。
33.同时本发明中第一层遗传算法得到的种群需要进行扩展,采用自定义扩展算法。如abc表示第一层算法求解的一个作业顺序,用a表示1、b表示2、c表示3,即作业顺序为1-2-3,则采用1-4-2-5-3-6表示考虑进入点后的真实调度路径。此时扩展的真实调度路径中用1表示a1点,4表示a2点,2表示b1,5表示b2,3表示c1,6表示c2。即每个片区加上多林区数表示该林区的第二个点。如上述1-4-2-5-3-6的作业顺序,此时将每个进出点看成旅行商问题的一个点,根据查询扩展的邻域表计算出1-4-2-5-3-6-1的距离,即为a1-a2-b1-b2-c1-c2-a1距离,记为s1,此为完全距离。则多林区间真实调度路径距离=完全距离-各林区内进出入点连线距离之和,如s0=s1-(a1a2+b1b2+c1c2)的长度。
34.本发明通过采用双层嵌套遗传算法对多林区航线调度路径进行规划,从而得到最短调度路径,其避免了过多的重复计算过程,计算效率较高,从而提高了多林区施药的路径规划效率;本发明可以缩短多林区施药操作的调度航程,节约了多林区施药操作的工作时间,提高了林区施药的施药效率,并且其有效减小了航空燃油的使用量,节约了林区施药作业的经济成本,给多林区施药操作带来了便利。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1