一种装载灭火弹的森林消防救援车辆路径优化方法与流程

文档序号:33150032发布日期:2023-02-03 22:39阅读:27来源:国知局
一种装载灭火弹的森林消防救援车辆路径优化方法与流程

1.本发明涉森林应急救援的技术领域,具体涉及一种装载灭火弹的森林消防救援车辆路径优化方法。


背景技术:

2.近年来,受全球气候变化影响,森林火灾频繁发生,造成巨大损失。据统计,我国每年因森林火灾损失的森林面积约110万平方公顷,占全国森林面积的0.8%-0.9%。森林火灾应急救援问题不同于草原火灾、城市火灾等其他火灾,与草原火灾相比,森林火灾受地形坡度和可燃物类型(树木种类)的影响,其灭火救援过程更为复杂;与城市火灾相比,受地形坡度、可燃物类型、温度和风力等诸多因素的影响,森林火灾火势蔓延速度快,且受夏季雷电影响,在同一区域可能同时发生多起森林火灾,灭火过程更困难。
3.森林火灾初期控制火势尤为重要,但是如果火点地处深山峡谷等地形,会给整体救援带来巨大困难。一些特种灭火设备——装载灭火弹的森林消防救援车能够有效解决这一问题。在救援过程中将装载灭火弹的森林消防救援车辆开到指定地点,用发射器将灭火弹发射到火灾区域对地表火、树冠火、悬崖火及其他定点火区实施有效的压制和扑灭,可以达到控制并消灭火灾的目的。
4.此外,与其它自然灾害有所不同,森林火灾受火势蔓延速度的影响,一旦突发森林火灾,如果不能快速响应、及时扑灭火灾,那么火灾将会发展成更大级别火灾并造成更大资源损失,因此,当森林火灾突发时急需快速有效的消防灭火响应方案,而在消防资源有限和救援环境受限条件下如何合理调度森林消防救援车辆以更高效的方式扑灭火灾,缩短消防灭火救援时间并降低火灾造成的资源损失是关键环节。


技术实现要素:

5.针对现有技术的不足,本发明旨在提供一种装载灭火弹的森林消防救援车辆路径优化方法,具体的说,通过对无人探测设备收集到的火情数据进行分析,确定森林中不同着火点的火情并推算出着火点的时变损失值;建立一个在给定时间范围内以最小化森林全部着火点累积损失值为目标的整数线性规划模型;设计遗传算法进行求解,得到装载灭火弹的森林消防救援车的最优路径规划方案。
6.为了实现上述目的,本发明采用如下技术方案:
7.一种装载灭火弹的森林消防救援车辆路径优化方法,包括以下步骤:
8.第一步,收集森林火灾数据并对其进行分析,预估不同类型着火点随时间变化的累积损失值及救援时间范围;
9.第二步,基于确定的救援时间范围和各个着火点时变损失值,明确装载灭火弹的森林消防救援车辆路径优化的目标以及相应的约束条件,其中目标是最小化全部着火点的累积损失值,约束条件包括森林消防救援车辆的灭火能力限制、着火点访问次数限制等;
10.第三步,根据优化目标和约束条件,建立整数线性规划模型;
11.第四步,设计遗传算法对得到的整数线性规划模型进行求解,得到森林消防救援车辆的最优路径,即每辆车需要访问的着火点标号、次序以及该车到达各个着火点的时刻。
12.需要说明的是,所述整数线性规划模型为:
[0013][0014]
s.t.
[0015][0016][0017][0018][0019][0020][0021][0022][0023][0024][0025][0026][0027]
at
ik
≥0,k=1,2

,k;i=0,1,2,

,n+1
[0028][0029][0030][0031]
其中:k:所有可用森林消防救援车辆的数量;k:森林消防救援车辆的编号,k=1,2,

,k;n:为所有着火点的数量;i,j:着火点的标号,i,j=1,2,

,n;0,n+1:森林消防救援车辆的起始场站和终止场站;l:时段数量;l:时段标号,l=1,2,

,l;[to,td]:救援时间范围;t
ij
:i和j两点之间的旅行时间;f
il
:第i个着火点在前l个时段内的累积损失值;cap:森林消防救援车辆最大装载的灭火弹数量;ht:森林消防救援车的灭火操作时间,即发射灭火弹的时间;决策变量,如果森林消防救援车k从节点i到节点j,则取值1,否则取值0;
决策变量,如果车辆k在l时段到达着火点i,则取值1,否则取值0;at
ik
:决策变量,消防车辆到达着火点i的时刻。
[0032]
需要说明的是,所述设计遗传算法对得到的整数线性规划模型进行求解包括:
[0033]
步骤1:参数编码
[0034]
采用实数编码的方式,即染色体中每一辆森林消防救援车所经过的着火点对应一个基因,并且所有车辆均从场站0出发,并回到场站n+1;
[0035]
步骤2:初始化种群
[0036]
确定种群大小及初始化原则,创建由pop_size个染色体组成的初始种群,每个染色体的行数代表实际使用的车辆数k,其中k≤k,k为车队规模上限,染色体中的每一行表示车辆所访问的着火点的次序,每辆车访问的着火点数量小于等于车载灭火弹的容量cap;
[0037]
步骤3:判断终止条件、计算适应度值
[0038]
终止条件用于算法判断是否搜索到原问题的最优解或者可行解,也是算法循环迭代中用于终止算法程序的判断条件;
[0039]
适应度函数值是评价个体优良好坏的重要且唯一指标,对于森林消防救援车辆路径优化问题来说,适应度函数值与着火点累积损失值呈负相关,即累积损失值越大适应度值越小。计算各染色体适应度值,采用终止条件1-3作为遗传算法的终止判断条件;若满足以上终止条件之一,则停止迭代,并输出最佳个体染色体所代表的最优解;
[0040]
步骤4:选择操作
[0041]
采用轮盘赌法选择个体,组成下一代的种群;将所有的适应度值加和,得到总体适应度值,然后分别计算每个个体适应度值占总体的比值,得到个体的选择概率。生成一个0-1之间的随机数,若随机数落在某个个体的概率区间范围内,则选择该个体;
[0042]
步骤5:个体交叉
[0043]
设计三种交叉算子进行个体交叉操作;
[0044]
交叉算子1:两个父代个体间随机选择路径进行交换,首先生成一个0-1之间的随机数,若该随机数大于交叉概率,则不进行个体交叉操作,否则对应两条路径互换;
[0045]
交叉算子2:一个父代个体两条路径之间进行基因片段互换,首先生成一个0-1之间的随机数,若该随机数大于交叉概率,则不进行个体交叉操作;
[0046]
交叉算子3:随机选择父代中一条路径,重排序该路径上除起始场站0和终止场站n+1外的基因片段,首先生成一个0-1之间的随机数,若该随机数大于交叉概率,则不进行个体交叉操作,否则对应随机路径上除起始场站0和终止场站n+1外的基因重排序;
[0047]
步骤6:染色体修复
[0048]
经过交叉后的个体,有一定概率产生不可行解,即在一个染色体中,某个除起始场站0和终止场站n+1外的基因在不同行中多次出现。因此需要对染色体中的基因进行去重操作。首先找到重复基因及其对应位置,然后根据重复基因所在位置进行判断,如果该重复基因所在行的长度等于3,则保留该基因,删除其余行中的重复基因,即从起始场站出发的车辆必须经过至少一个着火点才能够返回终点场站;如果重复点所在行的长度均大于3,则随机保留一个重复基因,删除剩余其他重复基因;
[0049]
步骤7:个体变异
[0050]
通过采取变异操作来增加个体的广泛性。采用位置交换变异,首先生成一个0-1之间的随机数,若该随机数小于变异概率,则在父代染色体中随机选择两行,将除起始场站0和终止场站n+1外两个随机位置的基因互换,否则不变;
[0051]
步骤8:产生新的个体后,转到步骤3继续执行算法程序。
[0052]
需要说明的是,在交叉算子2中,当随机数小于交叉概率时,执行:
[0053]
随机选择父代中两条路径;
[0054]
随机选择基因片段长度,基因片段长度应均小于两条路径的实际长度,实际长度为除去起始场站0和终止场站n+1外的路径长度;
[0055]
在两条路径中随机选择两个交换初始点位,并交换这两个点位后步骤2中确定长度的基因片段。
[0056]
本发明有益效果在于:
[0057]
本发明基于森林火情数据分析,确定森林中不同着火点的火情并推算出着火点的时变损失值。针对地处深山峡谷等救援人员难以近距离接触的火灾点,综合考虑装载灭火弹的森林消防救援车容量、着火点访问次数限制及不同着火点之间的行驶时间,建立以全部着火点的累积损失值最小为目标的整数规划模型,优化装载灭火弹的特种森林消防救援车的路径来最大限度地减少森林火灾造成的资源损失。通过设计遗传算法能够快速得到合理的路径规划方案,获得使用消防救援车的数量、每辆消防救援车需要救援的着火点位置、次序以及该车到达各个着火点的时刻,实际操作性强。
附图说明
[0058]
图1为本发明的流程示意图;
[0059]
图2为本发明中为初始种群示意图;
[0060]
图3为本发明中交叉算子1示意图;
[0061]
图4为本发明中交叉算子2示意图;
[0062]
图5为本发明中交叉算子3示意图;
[0063]
图6为本发明中染色体修复示意图;
[0064]
图7为本发明中染色体变异示意图;
[0065]
图8为本发明仿真中森林消防救援车辆的路径优化结果。
具体实施方式
[0066]
以下将对本发明作进一步的描述,需要说明的是,以下实施例以本技术方案为前提,给出了详细的实施方式和具体的操作过程,但本发明的保护范围并不限于本实施例。
[0067]
本发明为一种装载灭火弹的森林消防救援车辆路径优化方法,包括以下步骤:
[0068]
第一步,收集森林火灾数据并对其进行分析,预估不同类型着火点随时间变化的累积损失值及救援时间范围;
[0069]
第二步,基于确定的救援时间范围和各个着火点时变损失值,明确装载灭火弹的森林消防救援车辆路径优化的目标以及相应的约束条件,其中目标是最小化全部着火点的累积损失值,约束条件包括森林消防救援车辆的灭火能力限制、着火点访问次数限制等;
[0070]
第三步,根据优化目标和约束条件,建立整数线性规划模型;
[0071]
第四步,设计遗传算法对得到的整数线性规划模型进行求解,得到森林消防救援车辆的最优路径,即每辆车需要访问的着火点标号、次序以及该车到达各个着火点的时刻。
[0072]
需要说明的是,所述整数线性规划模型为:
[0073][0074]
s.t.
[0075][0076][0077][0078][0079][0080][0081][0082][0083][0084][0085][0086][0087]
at
ik
≥0,k=1,2

,k;i=0,1,2,

,n+1
[0088][0089][0090][0091]
其中:k:所有可用森林消防救援车辆的数量;k:森林消防救援车辆的编号,k=1,2,

,k;n:为所有着火点的数量;i,j:着火点的标号,i,j=1,2,

,n;0,n+1:森林消防救援车辆的起始场站和终止场站;l:时段数量;l:时段标号,l=1,2,

,l;[to,td]:救援时间范围;t
ij
:i和j两点之间的旅行时间;f
il
:第i个着火点在前l个时段内的累积损失值;cap:森林消防救援车辆最大装载的灭火弹数量;ht:森林消防救援车的灭火操作时间,即发射灭火弹的时间;决策变量,如果森林消防救援车k从节点i到节点j,则取值1,否则取值0;
决策变量,如果车辆k在l时段到达着火点i,则取值1,否则取值0;at
ik
:决策变量,消防车辆到达着火点i的时刻。
[0092]
需要说明的是,所述设计遗传算法对得到的整数线性规划模型进行求解包括:
[0093]
步骤1:参数编码
[0094]
采用实数编码的方式,即染色体中每一辆森林消防救援车所经过的着火点对应一个基因,并且所有车辆均从场站0出发,并回到场站n+1;
[0095]
步骤2:初始化种群
[0096]
确定种群大小及初始化原则,创建由pop_size个染色体组成的初始种群,每个染色体的行数代表实际使用的车辆数k,其中k≤k,k为车队规模上限,染色体中的每一行表示车辆所访问的着火点的次序,每辆车访问的着火点数量小于等于车载灭火弹的容量cap;
[0097]
步骤3:判断终止条件、计算适应度值
[0098]
终止条件用于算法判断是否搜索到原问题的最优解或者可行解,也是算法循环迭代中用于终止算法程序的判断条件;
[0099]
适应度函数值是评价个体优良好坏的重要且唯一指标,对于森林消防救援车辆路径优化问题来说,适应度函数值与着火点累积损失值呈负相关,即累积损失值越大适应度值越小。计算各染色体适应度值,采用终止条件1-3作为遗传算法的终止判断条件;若满足以上终止条件之一,则停止迭代,并输出最佳个体染色体所代表的最优解;
[0100]
步骤4:选择操作
[0101]
采用轮盘赌法选择个体,组成下一代的种群;将所有的适应度值加和,得到总体适应度值,然后分别计算每个个体适应度值占总体的比值,得到个体的选择概率。生成一个0-1之间的随机数,若随机数落在某个个体的概率区间范围内,则选择该个体;
[0102]
步骤5:个体交叉
[0103]
设计三种交叉算子进行个体交叉操作;
[0104]
交叉算子1:两个父代个体间随机选择路径进行交换,首先生成一个0-1之间的随机数,若该随机数大于交叉概率,则不进行个体交叉操作,否则对应两条路径互换;
[0105]
交叉算子2:一个父代个体两条路径之间进行基因片段互换,首先生成一个0-1之间的随机数,若该随机数大于交叉概率,则不进行个体交叉操作;
[0106]
交叉算子3:随机选择父代中一条路径,重排序该路径上除起始场站0和终止场站n+1外的基因片段,首先生成一个0-1之间的随机数,若该随机数大于交叉概率,则不进行个体交叉操作,否则对应随机路径上除起始场站0和终止场站n+1外的基因重排序;
[0107]
步骤6:染色体修复
[0108]
经过交叉后的个体,有一定概率产生不可行解,即在一个染色体中,某个除起始场站0和终止场站n+1外的基因在不同行中多次出现。因此需要对染色体中的基因进行去重操作。首先找到重复基因及其对应位置,然后根据重复基因所在位置进行判断,如果该重复基因所在行的长度等于3,则保留该基因,删除其余行中的重复基因,即从起始场站出发的车辆必须经过至少一个着火点才能够返回终点场站;如果重复点所在行的长度均大于3,则随机保留一个重复基因,删除剩余其他重复基因;
[0109]
步骤7:个体变异
[0110]
通过采取变异操作来增加个体的广泛性。采用位置交换变异,首先生成一个0-1之间的随机数,若该随机数小于变异概率,则在父代染色体中随机选择两行,将除起始场站0和终止场站n+1外两个随机位置的基因互换,否则不变;
[0111]
步骤8:产生新的个体后,转到步骤3继续执行算法程序。
[0112]
需要说明的是,在交叉算子2中,当随机数小于交叉概率时,执行:
[0113]
随机选择父代中两条路径;
[0114]
随机选择基因片段长度,基因片段长度应均小于两条路径的实际长度,实际长度为除去起始场站0和终止场站n+1外的路径长度;
[0115]
在两条路径中随机选择两个交换初始点位,并交换这两个点位后步骤2中确定长度的基因片段。
[0116]
实施例
[0117]
特别的,本发明中的遗传算法通过以下方法设计:
[0118]
参数编码
[0119]
采用实数编码的方式,即染色体中每一辆森林消防救援车所经过的着火点对应一个基因,并且所有车辆均从场站0出发,并回到场站n+1。
[0120]
初始化种群
[0121]
确定种群大小及初始化,创建由pop_size个染色体组成的初始种群,每个染色体的行数代表实际使用的车辆数k,其中k≤k,k为车队规模上限,染色体中的每一行表示车辆所访问的着火点的次序,每辆车访问的着火点数量小于等于车载灭火弹的容量cap。
[0122]
图2为初始种群示意图。以染色体1为例,由编号为0-9的基因组成,0代表初始场站,1-8代表着火点,9代表终止场站;该染色体共3行,代表实际使用3辆消防救援车,每辆消防救援车的路径分别为:
[0123]
(1)0-3-8-1-2-9;
[0124]
(2)0-4-9;
[0125]
(3)0-7-6-5-9。
[0126]
判断终止条件、计算适应度值
[0127]
终止条件用于算法判断是否搜索到原问题的最优解或者可行解,也是算法循环迭代中用于终止算法程序的判断条件。常见的算法终止条件设置遵循以下三种机制:
[0128]
1、当个体最优适应度值低于预先设定的误差值时,算法终止
[0129]
2、当算法迭代次数达到预定义次数时,算法终止
[0130]
3、当所有个体的适应度不再发生变化或变化很小时,算法终止。
[0131]
适应度函数值是评价个体优良好坏的重要且唯一指标,对于森林消防救援车辆路径优化问题来说,适应度函数值与着火点累积损失值呈负相关,即累积损失值越大适应度值越小。计算各染色体适应度值,采用终止条件1-3作为遗传算法的终止判断条件;若满足以上终止条件之一,则停止迭代,并输出最佳个体染色体所代表的最优解。
[0132]
选择操作
[0133]
采用轮盘赌法选择个体,组成下一代的种群。将所有的适应度值加和,得到总体适应度值,然后分别计算每个个体适应度值占总体的比值,得到个体的选择概率。生成一个0-1之间的随机数,若随机数落在某个个体的概率区间范围内,则选择该个体。
[0134]
个体交叉
[0135]
设计三种交叉算子进行个体交叉操作,图3-5为三种交叉算子示意图。
[0136]
交叉算子1:两个父代个体间随机选择路径进行交换,首先生成一个0-1之间的随机数,若该随机数大于交叉概率,则不进行个体交叉操作,否则对应两条路径互换。
[0137]
交叉算子2:一个父代个体两条路径之间进行基因片段互换,首先生成一个0-1之间的随机数,若该随机数大于交叉概率,则不进行个体交叉操作,否则执行如下步骤:
[0138]
1、随机选择父代中两条路径
[0139]
2、随机选择基因片段长度,基因片段长度应均小于两条路径的实际长度,实际长度为除去起始场站0和终止场站n+1外的路径长度
[0140]
3、在两条路径中随机选择两个交换初始点位,并交换这两个点位后步骤2中确定长度的基因片段
[0141]
交叉算子3:随机选择父代中一条路径,重排序该路径上除起始场站0和终止场站n+1外的基因片段,首先生成一个0-1之间的随机数,若该随机数大于交叉概率,则不进行个体交叉操作,否则对应随机路径上除起始场站0和终止场站n+1外的基因重排序。
[0142]
图3为交叉算子1示意图,其中父代1染色体第1行与父代2染色体第2行交换后生成新的子代1、子代2。
[0143]
图4为交叉算子2示意图,其中父代染色体中第1行中基因片段8-5与第2行中基因片段3-7交换得到子代染色体。
[0144]
图5为交叉算子3示意图,其中父代染色体中第1行除起始场站0和终止场站n+1外的基因片段顺序重新排列得到子代染色体。
[0145]
染色体修复
[0146]
经过交叉后的个体,有一定概率产生不可行解,即在一个染色体中,某个除起始场站0和终止场站n+1外的基因在不同行中多次出现。因此需要对染色体中的基因进行去重操作。首先找到重复基因及其对应位置,然后根据重复基因所在位置进行判断,如果该重复基因所在行的长度等于3,则保留该基因,删除其余行中的重复基因,即从起始场站出发的车辆必须经过至少一个着火点才能够返回终点场站;如果重复点所在行的长度均大于3,则随机保留一个重复基因,删除剩余其他重复基因。
[0147]
图6为染色体修复示意图,其中修复前染色体中基因1、6、8存在重复,按照规则去重后得到修复后的染色体。
[0148]
个体变异
[0149]
通过采取变异操作来增加个体的广泛性。采用位置交换变异,首先生成一个0-1之间的随机数,若该随机数小于变异概率,则在父代染色体中随机选择两行,将除起始场站0和终止场站n+1外两个随机位置的基因互换,否则不变。
[0150]
图7为染色体变异示意图,其中变异前染色体中随机选择的第1行基因8与第2行基因5交换得到变异后染色体。
[0151]
产生新的个体后,转到步骤判断终止条件、计算适应度值继续执行算法程序。
[0152]
仿真试验
[0153]
具体考虑一个在特殊地形下有15个着火点的森林火灾场景,需要在240分钟内进行紧急救援,当前可用装载灭火弹的森林消防救援车6辆。以40分钟为一个时段来计算森林
中不同着火点的时变损失值,每辆消防救援车装载的灭火弹容量上限为8,灭火操作时间为15分钟。考虑上述火灾场景,本发明通过建立以全部着火点的累积损失值最小为目标的整数规划模型,优化装载灭火弹的森林消防救援车的救援路径,最小化森林火灾造成的资源损失。具体步骤如下:
[0154]
(1)分析收集到的森林火灾数据,得到不同类型着火点随时间变化的累积损失值,见表1。
[0155]
表1着火点累积损失值(单位:万元)
[0156]
着火点编号时段1时段1时段3时段4时段5时段6时段710.121.5018.4322.6077.18139.87416.7420.0160.120.250.622.004.6712.1930.121.592.015.4514.8540.6091.2840.0951.904.628.2048.1474.38108.0850.080.722.105.1723.8747.2095.4160.050.261.387.1917.2328.3989.8570.090.942.419.0017.6854.03103.1880.020.341.102.144.7810.2642.0990.103.509.8024.0057.0093.00180.00100.040.451.266.8115.4326.2470.00110.0180.641.534.2913.2046.1988.80120.121.802.715.2513.7529.6061.28130.092.105.629.2017.1438.3078.08140.081.123.108.1717.8747.20125.41150.050.761.583.697.2320.3979.85
[0157]
表1为15个不同着火点的累积损失值,以40分钟为一个时段来计算森林中不同着火点的时变损失值,救援时间可分为6个时段,救援时间超过240分钟归为第7个时段。
[0158]
(2)确定好救援时间范围和各个着火点时变损失值后,明确森林消防救援车辆路径优化的目标以及相应的约束条件,其中目标是最小化全部着火点的累积损失值,约束条件包括消防救援车辆的能力限制为8、每个着火点最多被访问1次,可用森林消防救援车数量为6,所有车辆均从场站0出发,并回到场站16。
[0159]
(3)根据优化目标和约束条件,建立如下整数线性规划模型:
[0160]
建立如下整数线性规划模型:
[0161][0162]
s.t.
[0163]
[0164][0165][0166][0167][0168][0169][0170][0171][0172][0173][0174][0175]
at
ik
≥0,k=1,2

,6;i=0,1,2,

,16
[0176][0177][0178][0179]
(4)设计遗传算法对得到的整数线性规划模型进行求解,得到森林消防救援车辆的最优路径,即每辆消防救援车需要救援的着火点位置、次序以及该车到达各个着火点的时刻,具体如下:
[0180]
步骤1:参数编码
[0181]
采用实数编码的方式,即染色体中每一辆森林消防救援车所经过的着火点对应一个基因,并且所有车辆均从场站0出发,并回到场站16。
[0182]
步骤2:初始化种群
[0183]
确定种群大小及初始化原则,创建由500个染色体组成的初始种群,每个染色体的行数代表实际使用的车辆数k,其中k≤6,染色体中每一行表示车辆所访问的着火点的次序,每辆车访问的着火点数量小于等于8。
[0184]
步骤3:判断终止条件、计算适应度值
[0185]
计算各染色体适应度值,当算法迭代次数达到预定义次数50时,则停止迭代,并输出最佳个体染色体所代表的最优解。
[0186]
步骤4:选择操作
[0187]
采用轮盘赌法选择个体,组成下一代的种群。将所有的适应度值加和,得到总体适应度值,然后分别计算每个个体适应度值占总体的比值,得到个体的选择概率。生成一个0-1之间的随机数,若随机数落在某个个体的概率区间范围内,则将它选作父本。
[0188]
步骤5:个体交叉
[0189]
交叉算子1:两个父代个体间随机选择路径进行交换,首先生成一个0-1之间的随机数,若该随机数大于交叉概率0.8,则不进行个体交叉操作,否则对应两条路径互换。
[0190]
交叉算子2:一个父代个体两条路径之间进行基因片段互换,首先生成一个0-1之间的随机数,若该随机数大于交叉概率0.8,则不进行个体交叉操作,否则执行如下步骤:
[0191]
1、随机选择父代中两条路径
[0192]
2、随机选择基因片段长度,基因片段长度应均小于两条路径的实际长度,实际长度为除去起始场站0和终止场站16外的路径长度
[0193]
3、在两条路径中随机选择两个交换初始点位,并交换这两个点位后步骤2中确定长度的基因片段
[0194]
交叉算子3:随机选择父代中一条路径,重排序该路径上除起始场站0和终止场站16外的基因片段,首先生成一个0-1之间的随机数,若该随机数大于交叉概率,则不进行个体交叉操作,否则对应随机路径上除起始场站0和终止场站16外的基因重排序。
[0195]
步骤6:染色体修复
[0196]
经过交叉后的个体,有一定概率发生某个除起始场站0和终止场站16外的基因在不同行中多次出现的情况,因此需要对染色体中的基因进行去重操作。首先找到重复基因及其对应位置,然后根据重复基因所在位置进行判断,如果该重复基因所在行的长度等于3,则保留该基因,删除其余行中的重复基因,即从起始场站出发的车辆必须经过至少一个着火点才能够返回终点场站;如果重复点所在行的长度均大于3,则随机保留一个重复基因,删除剩余其他重复基因。
[0197]
步骤7:个体变异
[0198]
为了避免产生随机搜索的结果,变异的概率一般较低。采用位置交换变异,首先生成一个0-1之间的随机数,若该随机数小于交叉概率0.1,则在父代染色体中随机选择两行,将除起始场站0和终止场站16外两个随机位置的基因互换,否则不变。
[0199]
步骤8:产生新的个体后,转到步骤3继续执行算法程序。
[0200]
使用所设计的遗传算法对模型进行求解,结果得到6辆车全部被使用,每辆消防救援车的救援路径和到达时刻为(括号内数字为消防救援车到达着火点的时刻):
[0201]
车辆1:0-1(19)-7(36)-13(78)-16(103)
[0202]
车辆2:0-15(25)-6(65)-16(90)
[0203]
车辆3:0-10(21)-9(47)-5(73)-3(95)-16(120)
[0204]
车辆4:0-4(46)-11(98)-16(123)
[0205]
车辆5:0-8(24)-12(49)-2(73)-16(98)
[0206]
车辆6:0-14(76)-16(101)
[0207]
森林消防救援车辆路径优化结果如图8所示,根据结果可知通过优化车辆路径,能够在规定救援时间范围内将特殊地形下全部着火点扑灭,全部着火点的总损失值为14.29万元,说明了本发明对于解决森林火灾救援问题的有效性。
[0208]
对于本领域的技术人员来说,可以根据以上的技术方案和构思,给出各种相应的改变和变形,而所有的这些改变和变形,都应该包括在本发明权利要求的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1