梁勇,赵贺伟,王志强,王锐
(1.海军航空大学,山东烟台264001;2.91404部队,河北秦皇岛066000;3.陆军研究院工程设计研究所,北京100042)
现代信息化战争以电子对抗为主,任意一方夺取制电磁权后便会集中火力进行空袭,伴随着大量航空弹药的消耗,为了能够在作战时对航空弹药准确而高效的保障,需要对航空弹药消耗量进行准确的预测。但是现代战争战场态势瞬息万变,不确定因素多,预测过程复杂,数学模型建立困难,这些因素给弹药预测问题带来了巨大的难度。
导弹消耗需求量的预测对平时导弹的生产及储存等都有指导意义。弹药消耗量预测对保障工作有积极的促进作用,甚至直接影响到战争的胜负。随着各种高精尖技术的不断应用,航空弹药的预测也变得更复杂[1]。为此,应通过多方面、多角度的深入探究,力求得出最为可靠预测,使得保障工作更好地进行。
随着国防建设现代化及高新技术在实战中的广泛运用,作战中消耗的航空弹药数量随之大量增加。本文以空空导弹的供应保障为例,通过分析影响空空导弹消耗需求量的各种因素,例如作战类型、战场环境等,再根据实际作战的环境条件和战场形势,准确地给出相应的实战数据;然后,经过数据处理,便可建立能够反映作战空空导弹实际需求量的数学模型。
空空导弹是未来空中战机交战的火力重点,消耗量预测的准确与否关乎作战科学决策的制定。因此,弹药消耗规律的科学研究的重要性便不言而喻。大多数航空弹药消耗需求量的研究主要是基于微观层面上的具体计算方法上,但这类方法不能够反映战场实际的航空弹药消耗的趋势及规律。因此,在原有的基础上可建立动力学模型,联系实际战场上的人员、武器等因素,便可从宏观层面上探索实际作战各个阶段的航空弹药消耗规律,对作战指挥人员布置作战计划及把握战场规律具有重要的战略意义[2]。充足的弹药有助于未来战场的火力投入,是取得战争胜利的关键。但是过多的弹药供给运输会浪费大量的人力物力,甚至是延误战机,直至战争失败。因此,需要运用科学合理的预测方法来进行弹药调配,减少浪费,保障胜利。然而基于战场的各种不确定和复杂性,使得预测工作变得十分困难,对制定作战计划及影响战局都有重要意义[3]。
当前,我军结合部队实际需求,着手军备物资的供应、物流与保障研究,向实战靠拢,并取得了很多成果,为未来信息化战争航空弹药保障提供借鉴经验[4]。
国内关于航空弹药需求量预测的研究方法主要有3种。
一是统计分析法。邱国斌等运用统计学方法对弹药的消耗量规律进行了分析[5]。这种方法大体综合了实际战场的弹药消耗规律,能够得出一般情况下的航空弹药消耗量,具有一定的规律性,而且该方法实现简单。但是统计分析的前提是需要大量可靠的历史数据作为理论支撑,并且要求未来发生的战争与过去的战争具有一定的相似性,因而该方法所得出的预测数据及弹药消耗规律并不适合未来战场。当前,高新技术广泛应用于国防军事,未来战争将会与历史战役千差万别,统计分析法的预测结果将不适用于未来信息化战场。
二是任务量法。任务量法是以我军的武器装备数量、作战技术手段作为基础参考依据,由作战部队所承担的作战任务及预计毁伤效果来制定弹药的使用数量,是一种以打击效果为基本参考原则的预测方法[6]。该方法以作战任务为出发点,从对敌方目标的打击效果开始,对各种航空弹药的使用量一一计算得到总量。所得到的预测数据具有针对性强、预测过程简单易行等优点,能够反映我军的作战意图及所期望的战争激烈程度,在部队中被广泛应用,对以后的弹药消耗量预测工作有一定的参考作用。但是该方法不能够反映战场上航空弹药的实际消耗情况,预测结果与实际弹药消耗量往往有较大偏差,使得保障工作被动进行[7]。
三是神经网络法。过程采用指数法、层次分析法等数学方法[8]。首先,将影响航空弹药的各个因素量化,并将结果输入神经网络;之后,通过模糊控制与神经网络相结合的方式优化网络结构;再将历史战例数据迭代运算训练权值,便得到航空弹药消耗量预测的模型。航空弹药需求量预测本身就是一个较为复杂的问题,且影响因素众多。
但是该方法仍存在网络结构构建困难、连接权值训练效果不佳、实现过程较为复杂等问题。并且在确定网络结构上,要依靠预测者的经验和需求,使得一些重要的信息会被认为丢失,导致预测结果的不准确。神经网理论自20世纪80年代兴起便掀起研究应用的热潮,应用到各个领域并且取得优秀成果。但该方法并不适用于所有的需求量预测。作战时,敌我双方的作战方式和可被攻击单元目标具有隐蔽性与多变性的特点,战场态势千变万化,对物资的消耗也会增加,部队因无法掌握自身的需求量等信息而产生诸多不确定性。另外,还存在保障方式与地点的不确定性。综合上述各种高突变性因素,考虑到需要历史数据,这种含有固定参数的神经网络的数学模型便是不合适的,即使能够将输入的数据很好的拟合,也不能长期对需求量准确预测。又由于平时的飞行训练具有规律性,这种预测方法对于战时的各种高突变因素便不适用。
国外关于航空弹药消耗需求量的研究主要是对预测模型的建立与改进,较为常见的方法有Monto-Carlo方法、神经网络法、支持向量机法等[9]。
其中,美军在该领域的研究成果较为突出,在经历了2次高技术战争后,美军在航空弹药预测方面均有较强的权威性。自19世纪初,美军就开始将训练与实战时弹药消耗数据以单位时间的消耗量作为实际的度量单位,并运用系统分析技术与运筹学的方式进行预测辅助,开始了长达几十年的弹药消耗量预测的研究。海湾战争、伊拉克战争、科索沃战争为美军提供了良好的素材条件,其各项研究成果有机会进行战场实践。
在《海湾战争空中力量调查报告》中,美军提出要杜绝装备保障人员应付差事,要预先筹备所需的弹药和明确所要打击的目标。该报告从侧面反映出美军对弹药消耗量预测要求更高的精度,以避免作战过程中的弹药短缺或过剩。虽然美军在航空弹药消耗模型的建立上有很大的优势,但是在面临高技术战争实践时仍表现出弹药消耗与测量与实际需求之间有较大出入,表现出面对未来战场,弹药消耗量预测的难度较大且精度欠佳。
2005年,William等对美国战时航空弹消耗需求量的预测进行了深入的剖析与研究[10]。在《美国海军陆战队地面弹药需求研究》一文中,作者对美国海军陆战队的弹药消耗做出相关研讨[11]。美国陆军在2009年12月颁布条例AR5-13,该条例对弹药的供给及需求过程的优化做出了明确规定[12]。
20世纪70年代,美国著名教授霍兰德(J.H.Holland)首次提出遗传算法的思想,将自然界生物遗传与进化思想应用到解决复杂程序中,将“遗传”与“进化”思想应用到人工智能系统中,遗传算法具有极强的搜索能力,大量应用在各类系统优化问题中,并且在多个自动化程序设计中得到了较好的应用,遗传算法正在受到人们极大的关注[13]。
根据优秀基因随着环境改变得以保留的生物遗传特点,由问题的一组解出发并改进至较好的另一组解,然后从这一组解再改进至另一组解,经过选择、交叉及变异等操作,从而在最短的时间内对适应度最好的个体进行保留,这个个体即反映了具体实际问题中的最优解[14]。
遗传算法的具体实施步骤如下:
1)确定解答问题的染色体,由N个个体组成初始种群P0;
2)初始化染色体种群;
3)染色体个体基因进行选择、交叉及变异操作;
4)评价新的群体并计算适应度;
5)满足条件后结束流程并输出结果,否则,重复进行第3步[15]。
基本流程图如图1所示[16]。
图1 遗传算法流程框图Fig.1 Flow chart of genetic algorithm
实际问题中的各个变量映射为一个个染色体,染色体种群经过一系列选择、交叉及变异产生新的个体,构成新的种群,经过自适应度的计算及筛选,得到较优解或最优解。具体的操作如下:
1)选择。选择操作过程中将适应度值较高的个体从染色体群中筛选出来,并作为新一代优秀个体传承下去。
2)交叉。交叉时,通过将2个不同个体的部分片段进行互换从而得到新的个体。这种通过交换部分片段从而产生新的染色体的过程实际上模拟的是基因的变异过程,这是传统的数理方法所不能达到的,变异后的新个体变现出新的特征、新的适应度值,从而丰富样本种类。具体操作如图2所示。
图2 交叉操作Fig.2 Interlace operation
3)变异。变异操作将染色体的一点进行翻转变异,最明显的是二进制编码时的0、1相互转换。变异是染色体存在一定的概率变化操作,具体表现为遗传因子的部分片段替换成为与其对立的编码,通过这种方法引入染色体的多样性变化[17]。操作如图3所示。
图3 变异操作Fig.3 Mutation operation
遗传算法的编码方式多种多样,通过对染色体的编码,使输入数据与算法主体之间建立联系,主要的编码方式有以下4种。
1)二进制编码。染色体由二进制数0、1组成,在编码的过程中要先给出问题求解的精度,故要确定编码的长度,精度一旦确定,在算法执行的过程中就不能随意调整,使得算法不具有微调的功能。
2)实数编码。实数编码是区别二进制编码的高精度编码方式,染色体有实数组成,具有较大的搜索空间,在算法执行的过程中,不存在编码和解码的过程。
3)浮点数编码。染色体由浮点数组成,该编码方式主要用于解决实际问题在连续函数优化时局部搜索能力差的问题。
4)序列编码。该编码方式常用于解决路径问题。
遗传算法中,通过适应度函数来计算染色体的适应度,适应度较高的个体将随着算法的进行保留下去,并作为优秀的基因传承下去。通过适应度函数来评估染色体的适应度。
一般优化问题求解过程中,优化问题是求函数的f(X)最小值而非最大值,虽然某些问题可以自然地表示成为求最大值的形式,但是并不能确保在X的取值范围内,f(X)都能取到非负值。在问题优化过程中,算法执行时要对染色体的适应度进行排序,从而筛选出适应度较高的个体,因此适应度函数要取非负值。
将一个最小化问题转化成为求最大化问题,简单的做法是将原函数乘以-1即可。但是在遗传算法优化过程中,该方法不能够确保适应度函数的非负,于是可采用如下做法进行转换:
Cmax可采取多种方式进行选择,例如可选取进化过程中f(X)当前的最大值或是f(X)的最大值。如果进化过程中适应度函数f(X)始终非负,亦可采取进行转换。
在求解问题的适应度函数f(X)取最大值时,函数值有时需要保持正值,适应度函数可进行如下变换:
Cmin的选取可以是适当的输入值或进化过程中f(X)当前的最小值,亦或是f(X)的最小值。
BP神经网络是一种单向传播网络。BP神经网络就像是一个黑盒,通过向黑盒输入数据进行训练,使黑盒能够具备一定预的测功能。训练的过程中用非线性函数的输入和输出进行训练,使网络具有一定的非线性拟合预测能力。BP神经网络广泛应用于优化计算、自适应控制和最优预测等方面[18]。BP神经网络具有如下特点:
1)对输入样本的过度拟合虽然会使样本预测精确度提升,但是对于其他的样本数据预测精度将会下降,隐含层神经元节点数太少则不能建立输入与输出之间的映射关系,从而导致预测结果的巨大偏差。一般情况下,网络的预测误差先是随着隐含层节点数的增加而降低再增加;
2)激发函数为S函数,权值通过δ算法进行调节,BP神经算法有很强的非线性拟合能力,但是当面对较为复杂的问题时,网络的拟合能力就显得捉襟见肘;
3)BP神经算法由正向传播和反向传播2部分组成;
4)信息的传播方式为双向传播,但各层之间的连接是单向的。
基本结构图如图4所示:
图4 BP神经网络结构Fig.4 Architecture of BP neural network
BP神经网络算法的基本执行步骤如下:
1)神经网络初始值的设定,包括训练精度、训练时间、传递函数及训练方法等参数;
2)初始化网络的权值及阈值,权值及阈值为一定范围内的随机数;
3)输入训练数据集和预期输出的数据集,并对网络进行训练;
4)根据输入的样本数据及权值、阈值,计算输出层的输出;
5)通过不断调整阈值及权值计算均方差误差;
6)循环2)至5)步直至均方差误差满足精度为止。
遗传算法优化的BP神经网络算法主要有4种形式[19],GA-BP算法流程框图如图5所示。
图5 GA-BP算法流程框图Fig.5 Flow chart of GA-BP algorithm
1)神经网络结构及学习规则的优化。遗传算法不仅可以优化神经网络的结构,还可以优化神经网络的学习规则及相应的参数,或者是用于优化适应度函数的计算方程。
2)遗传算法优化权值及阈值。计算适应度函数及均方差的大小;之后,通过调整权值及阈值的大小,使得平均误差最小。这种方法相对简单明了,但是当使用该方法进行大规模遗传算法的优化时,连接权值及阈值的数量将会随着神经元数量的增加而大量增加,这一方面使得遗传算法的搜索空间急剧增大,另一方面使得运算时间及误差也增大。
3)遗传算法同时寻优权值、阈值。该方法综合了2种方法的优点并且增大了计算精度、加快了收敛,但是优化过程较为复杂,还可能引起适应度的剧烈不连续变化。遗传算法优化径向基神经网络。该方法是部分优化网络连接权值的一种方法。
空空导弹消耗需求量的预测受多种不确定或随机因素的影响,对于不同的战斗样式,影响航空弹药预测的因素有战斗种类、作战样式、战斗持续时间、参战人员数量、战斗机种类架次、航空弹药种类以及毁伤效果等。各因素之间存在随机性、模糊性以及一定的交互性,对于任意一次空战实例,影响航空弹药消耗量的因素都不相同,即使影响因素基本相同,所消耗的航空弹药也不同。因此,在进行需求量预测的过程中,应尽量将所有影响弹药预测的因素都考虑在内。
在空空导弹消耗量预测时,考虑到所有的影响因素是不可能的,如飞行员的飞行素质、心理素质等对预测结果都会产生影响,但是这些因素的量化就成了难以解决的问题。隐含层的层数多样,隐含层的层数较多时网络的预测精度提高,但是训练与预测的过程更为复杂,消耗时间更多。隐含层的数量取决于实际问题的需要,本文采用单隐含层结构,输入神经元数为6,分别是作战类型、战争强度、战场条件、经济因素、我方参战飞机架次、战斗持续时间,隐含神经元30,输出神经元为1,为弹药的消耗量。网络模型结构如图6所示。输入层、中间层和输出层之间的关系表达式为:
图6 BP神经网络模型结构图Fig.6 Structure diagram of BP neural network model
式(3)~(5)中:wij为输入层到输出层的权值;xj为输入的第j各参数;θj为中间层权值;vi为中间层到输出层的权值;β为输出层阈值。
作战类型、作战强度、战场条件等军事因素依靠相关军事规则进行量化,由军事专家根据作战军事理论和实践经验制定,量化处理过程主要采用三角模糊数的运算来确定评价指标。如,作战类型量化如表1所示,权值的大小决定弹药消耗量的大小[20]。
表1 作战类型量化参照表Tab.1 Quantified reference table of combat type
为验证预测模型的可行性,采用近似数据如表2所示。将其中100次作为网络训练数据,另外20次作为测试数据,验证预测模型的准确性。
由于建立的数学模型所采用的是单极性Sigmoid传递函数,要求数据的范围在(0,1)之间,因而需要对数据进行归一化处理。归一化处理主要采用线性函数转换:
式(6)中:Xmax为样本最大值;Xmin为样本最小值;XP为归一化前的数据;Xf为归一化处理后的数据[21]。
本文采用Matlab语句进行归一化处理:
式(7)中:P为归一化处理之前的数据集;minP为数据集中的最小数;maxP为数据集中的最大值[22]。
表2 120次典型空战空空导弹弹药消耗量Tab.2 120 typical air to air missile ammunition consumption
续表
Matlab程序中自带一些神经网络工具箱,本程序仿真过程还用到了改进遗传算法工具箱gaot,该工具箱中包含函数ga、initalizega等,节省了大量复杂繁琐的编码过程,通过设置路径保存后便可调用[23]。
BP神经网络算法训练参数设置为net.trainParam.show=10;net.trainParam.epochs=1800;net.trainParam.goal=1.0e-28;net.trainParam.lr=0.3;将归一化后的空战数据代入Matlab程序并运行,采取双曲正切传递函数、trainglm训练算法,运行得到仿真实验结果见图7。
图7显示了BP神经网络算法输出预测值与期望值轨迹。其中,星形直线为期望输出,圈形虚线为网络预测输出,当两曲线折线点越接近时表示网络预测越准确,从中可以看出两曲线折线点基本重合,表示传统BP神经算法能够对空空导弹的消耗量进行一定程度的有效的预测。但是从图中可以看出仍有部分折点偏出期望值较大距离,传统BP神经网络算法的预测精准度欠佳。
图7 BP网络预测输出Fig.7 BP network predictive output
GA-BP优化算法各参数设置为种群规模popu=100;遗传代数gen=200;将归一化处理后的数据带入进行Matlab仿真,添加遗传算法gaot工具箱并添加路径,其中使用到ga和initializega函数,运行得到仿真实验结果如图8~10所示。
遗传算法的种群规模为100,进化代数为200,算法的适应度值变化如图8所示,虚线表示遗传算法过程中染色体的平均适应度值的变化,直线表示染色体的最大适应度值的变化,随着适应度值的不断升高,显示了遗传算法寻优过程中权值及阈值的变化轨迹,样本染色体的适应度随着染色体的复制、交叉、变异操作逐步上升,最终平均适应度值与最佳适应度值趋于相等,遗传算法的寻优过程结束,得到最优权值及阈值。
图8 适应度函数变化曲线Fig.8 Fitness function change curve
图9 均方误差变化曲线Fig.9 Mean square error change curve
图10 GA-BP网络预测输出Fig.10 GA-BP network predictive output
遗传算法的寻优过程中适应度值不断上升,适应度均方误差逐步减少,最终最小均方误差与平均均方误差值趋于相等、稳定如图9所示。其中,染色体达到最优适应度时的均方误差逐步接近0,表明遗传算法寻优过程的有效性。
图10表示遗传算法优化的BP神经网络算法,图中星形直线表示空空导弹消耗量期望输出值,即测试数据弹药消耗量,圈形虚线表示GA-BP算法模型的预测输出。模型预测的准确性体现在两曲线的折点重合程度上,折点重合程度越高,弹药预测的精准度越高。从图中可以看出,期望输出和预测输出曲线基本重合,折线点也基本重合,表明该优化算法的预测准确度较高,遗传算法优化的BP网络算法具有较高的预测精度。
根据网络预测误差公式(8)计算得到2种方法的网络预测误差如图11、12所示。
图11 BP网络预测误差Fig.11 BP network prediction error
图12 GA-BP网络预测误差Fig.12 GA-BP network prediction error
如图11所示,传统BP神经网络算法的网络预测误差范围在(-0.036,0.062)之间,大部分误差值均落在(-0.02,0.04)之间。遗传算法优化的BP神经网络算法的预测误差范围在(-0.017,0.022)之间,大部分误差值落在(-0.01,0.02)之间。
由图12可知弹药预测误差的最大值为0.022,在利用该算法进行空空导弹消耗需求量预测时,应在预测弹药消耗量结果的基础上再增加2.2%,作为最终的空空导弹消耗量预测值。
在进行Matlab仿真的过程中,神经网络训练时间(步长)和隐含神经元的个数等参数的设定由于没有明确的公式计算,常常采用经验或实验的方法来确定,现采用实验的方法对神经网络训练时间(步长)进行确定,具体实验方法如下。
神经网络的训练时间(步长)通常设定在2 000左右,此时遗传算法的BP神经网络预测误差见图13。
图13 训练时间为2 000时的GA-BP网络预测误差Fig.13 GA-BP network prediction error when training time is2 000
如图14所示,当神经网络训练时间由2 000增长到2 500时,网络预测误差值部分区域平缓,但第12、14次预测误差值偏差较大,误差整体范围变大,网络预测误差范围由(-0.028,0.039)变为(-0.015,0.054),因而考虑到应当适当减少网络训练时间。
图14 训练时间为2 500时的GA-BP网络预测误差Fig.14 GA-BP network prediction error when training time is2 500
训练时间为1 500时,神经网络预测误差如图15所示。当训练时间由2 000缩减到1 500时,网络预测误差范围变为(-0.027,0.028),误差范围有了较大的改善,神经网络的训练时间范围可在(1 500,2 000)之间,最终选定训练时间为1 800,网络预测误差如图16所示。通过同样的方法确定了遗传算法的隐含神经元个数为25,网络学习率为0.2。
图15 训练时间为1 500时的GA-BP网络预测误差Fig.15 GA-BP network prediction error when training time is1 500
图16 训练时间为1 800时的GA-BP网络预测误差Fig.16 GA-BP network prediction error when training time is1 800
本文对传统的几种弹药预测方法进行对比研究,总结出各个方法的性能优劣,主要有任务量法、支持向量机法、神经网络法等,各个方法有各自的优点和不足。本文主要完成了基于遗传算法优化的BP神经网络算法对空空导弹消耗需求量的预测,同时与传统BP神经网络算法进行对比研究,预测结果有了较大的提升,验证了优化算法的有效性,提供了一种关于预测的新的方法。
BP神经网络算法能够将影响到航空弹药消耗量的各种因素量化,将整个战场作为一个系统,能够较为全面地反映航空弹药的消耗:一方面,可以考虑到影响空空导弹消耗量的各种因素,相较于其他方法,该方法考虑的因素更加全面;另一方面,该方法可以体现出各个输入因素的模糊性与非线性等特点,但是各个因素的输入量权值、比重难以确定,对预测结果将产生较大误差。本文采用遗传算法对未来输入的权值及阈值进行优化,遗传算法在全局范围内进行搜索。
采用遗传算法优化权值、阈值,能在一定程度上增大预测精度,但是对于未来信息化战争的精确保障还相差较大。神经网络只是一种数据之间的非线性拟合,并不能反映出影响因素之间的内在联系。这是未来关于航空弹药预测方面所要考虑的主要问题之一。