孙焰,赵剑翔,郑文家
(同济大学道路与交通工程教育部重点实验室上海201804)
【摘要】城市物流需求预测是城市物流规划的重要前提,为了提高物流需求预测的精度,本文首先通过分析影响城市物流需求的经济活动,选取城市物流需求预测的指标。随后,为了改善BP算法预测效果受到网络初始权值与阈值影响的缺陷,提出多种群遗传BP算法进行改进。通过仿真表明,该方法与BP预测模型以及单种群遗传BP预测模型相比,具有较高的预测精度。
【关键词】多种群遗传算法;城市物流;BP神经网络;需求预测
随着我国经济迅速发展,城市物流作为城市经济发展的基础,物流行业迎来飞速发展的机遇。城市物流需求预测作为城市物流资源合理配置的前提,在城市物流系统规划中有着重要的地位,许多学者都对这个问题展开了相关的研究。在城市物流需求产生机理的研究中,发现城市经济发展水平以及相关经济活动是影响物流需求的主要因素,物流需求与其有着密切的关系。在城市物流需求预测中,目前主要使用的方法有趋势外推法、时间序列法、灰色预测法、回归分析以及BP (back propagation,BP)神经网络法等方法。这些模型的预测方法与原理各有不同,其预测结果也各互有优劣。鉴于城市物流系统复杂性与非线性,在城市物流需求预测中,选择合适的预测方法就显得比较重要。BP神经网络由于具有非线性映射的优点,适合分析具有复杂内部系的系统,且其学习算法具有较好的泛化能力,因此可以用于城市物流需求的预测。
本文在之前研究的基础上,从城市物流作为经济活动的派生需求出发,选取了城市物流需求的预测指标,并对其原因机理进行了分析。在预测方法上,分析了神经网络与遗传算法的缺陷,并针对这些缺陷提出来基于多种群遗传改进的BP神经网络预测方法。
1城市物流需求
1.1城市物流需求的内容
城市物流是指物品在城市内的实体流动、城市内部与外部区域之间货物集散等活动,而这些活动是由城市经济活动所派生出来的。随着城市经济经济总量、产业结构、资源分布等因素的改变,城市物流需求量、需求结构和层次也发生改变。
城市物流需求是主体为了满足其生产经营、事业展开以及生活需要,产生的对社会化服务需求。其中城市的主体产生需求的类型可以分为城市的生产活动产生的需求、城市居民生活产生的需求以及贸易产生的需求等。
城市物流需求的产生,从根本上来说,是为了服务于城市中各个主体满足其不同需求而产生的,而这些需求绝大部分都与城市经济有着密不可分的联系。因此从城市经济活动影响城市物流需求的角度来分析,主要分为以下几类:(1)城市经济总量对于物流需求的影响:通过将城市GDP与货运量进行比较分析,城市物流运输量和城市经济变化方向大体趋势总是相同,所以城市经济发展程度在一定程度上决定着城市物流运输的水平。(2)不同产业物流需求特性对城市物流需求的影响:由于不同产业其物流需求的不同特性,因此城市产业结构的调整,会影响到城市物流需求的规模与结构。第一、二、三产业的发展与物流发展是相互依存与影响的,其中物流和第二产业的联系更为密切。这主要是和第二产业的生产过程密不可分的,其从原材料的运输加工到工业成品的配送至客户,整个过程都伴随而来的都是较大的物流量。(3)进出口贸易对于物流需求的影响:这类对于城市物流的影响,主要体现在一些有着大量进出口贸易的港口城市中,外贸物流对于城市物流无论是规模上以及服务水平上,都有着一定的影响。(4)城市居民生活消费对城市物流的影响:随着经济的发展,城市居民收入也与日俱增,购买能力得到增强。并且城市中提供的商品类型也往多样化个性化发展。在这两者相互作用之下,具有小批量、高频率、多批次的城市物流配送需求也得到了极大的增长。
1.2城市物流需求预测的影响因素
城市物流需是城市经济活动派生需求,它是由城市经济发展所产生的,它与城市的经济活动有着紧密的联系。通过对于城市影响物流需求经济活动的类别的分析,可知随着城市经济总量、产业结构、居民消费习惯等因素改变,城市的物流需求量也会随之改变。因此选取以下经济中影响物流需求的因素,并简述原因。
(1)第一、二、三产业生产总值:通过上节所述,城市物流需求不仅与城市经济规模总量相关,更与城市产业机构有关。这主要是由于不同行业其物流需求特性所决定的,生产制造业相同产值货物所带来的物流需求远远大于农业以及服务业等行业,因此在选择指标时,我们需要充分考虑到行业之间的区别。目前,城市中的各行各业主要分为三大类:第一产业、第二产业和第三产业。由产业经济学中“配第一克拉克”定律可知一个城市的经济发展其产业结构大致会由以第一产业为主逐渐变化为以第二产业为主,最后在转向以第三产业为主。由于不同产业的物流需求特性,由第一产业向第三产业逐级变化,其产品附加值逐级递增但其物流需求量却在逐级递减。因此,在本文中选择第一、二、三产业生产总值,不仅可以表示一个地区的经济规模,还能表示该城市物流量受到产业结构变化的影响。
(2)进出口贸易总额:进出口贸易总额从很大程度上显示了一个城市外贸物流的量,而对于一些全国性港口城市而言,外贸物流在其城市物流的规模之中占有一定的比例。
(3)社会消费品零售总额:随着城市化发展以及城市化的不断进行,城市居民规模以及城市居民人均消费水平都在不断增长,而由此产生的物流需求无疑是城市物流需求的重要组成部分之一。社会消费品零售总额能很好说明一个城市商贸流通的活跃程度。
2多种群遗传BP神经网络算法
2.1 BP神经网络算法
BP神经网络是由Rumelhard和McClelland于1986年提出,从结构上看,它是一种典型的多层前向神经网络,具有一个输入层、数个隐含层(一层或多层)和一个输出层。层与层之间采用全连接的方式,同一层的神经元不存在相互连接。理论上已经证明,具有一个隐含层的三层网络可以逼近任意非线性函数,因此本文预测所使用的神经网络为三层结构。
如图1所示,为本文BP神经网络所使用的结构,该网络为三层结构,具有一个输入层神经元数目为m,隐含层神经元数目L,输出层神经元数目为n。隐含层采用S型传递函数tansig,输出层传递函数为purelin。其中IW与LW分别为隐含层与输出层的权值,b1与b2为隐含层与输出层的阈值。
BP神经网络的误差反向算法是典型的监督型学习算法,其基本的逻辑是将样本(p)输送至网络输入层的每个神经元,经过隐含层与输出层计算后,输出对应的预测值(y),若之间误差不满足精度要求时,则由后向前调整权值和阈值。
但在BP神经网络的预测使用中在存在着一下缺陷,由于神经网络初始权值与阈值时随机选取的,但如果这些参数选择不当,在网络训练的过程中会导致网络误差陷入局部最优点以及收敛速度慢等原因。因此针对这些缺点我们可以采用遗传算法对神经网络的初始权值和阈值的选择进行优化,选择合适的初始网络权值与阈值,从而减小训练误差。
2.2 多种群遗传算法
遗传算法是一种借鉴生物界自然选择和进化的高度并行、随机、自适应的全局优化概率搜索算法。由于优化时不依赖于梯度,具有很强的鲁棒性和全局搜索能力。随着应用的推广,遗传算法也有早熟收敛的问题出现。
早熟收敛是遗传算法中不可忽视的现象,主要表现在群体中的所有个体都趋于同一状态而停止进化,算法最终不能给出令人满意的解。其主要与以下几方面有关。
(1)交叉和变异操作的频率受到交叉概率和变异概率控制,不同交叉概率和变异概率的取值很可能会导致不同的计算结果,其对于初始取值比较敏感。(2)选择操作是根据当前群体中个体的适应度大小产生的概率进行的,当群体中存在个别超常个体时(该个体的适应度比其它优秀许多时),该个体在选择算子的作用下将会被多次选中,导致群体过早失去竞争性,从而导致群体停滞不前。
针对遗传算法存在的早熟问题,本文使用多种群同时进行进化的方法来对其进行改进,避免上述问题的发生。对比遗传算法主要改变以下几点:(1)针对第一个问题,其引入多个种群同时进行优化搜索,不同种群使用不同的交叉概率与变异概率,以达到不同的搜索目的。(2)各种群是相对独立的,但又有一定的联系。其实是通过各个种群之间的移民算子进行联系,实现多种群共同进化。其中移民算子是将目标种群中的最差个体用源种群的最优个体替换(每隔一定的代数)。(3)通过人工选择算子保存各种群每代进化中的最优个体,即将每个种群中最优个体选人精华种群中保存。
2.3多种群遗传BP算法流程
本文算法流程如图2所示,分为以下几个步骤:
Step1:确定神经网络结构:对于一般预测问题,三层BP神经网络可以很好的解决问题,因此使用三层网络来进行之后全部的预测。在三层网络中,通常隐含层神经元数确定经验公式为:
式中:1为隐含层神经元数,n为输出层神经元数,m为输入层神经元数,a为1~10之间的常数。
Step2:随机产生初始种群并进行编码:神经网络的权值和阈值一般是通过随机初始化为[-1,1]区间的随机数。同时对染色体进行编码,本文个体编码使用二进制编码,每个个体均为一个长度为10位二进制串,由输入层与隐含层连接权值、隐含层阈值、隐含层与输出层连接权值以及输出层阈值四部分组成。
Setp3:解码得到不同群体中每个个体的神经网络权值与阂值。
Step4:将新的权值与阈值赋予神经网络,使用样本训练网络并得到测试误差,并将测试误差作为每个个体适应度函数值。测试误差是首先使用训练集训练网络,再将测试集的数据代入网络得到的预测值与测试集实际值误差均值,具体公式如下:
式中:y。,表示误差,Yr表示测试集的实际值,yf表示测试集的预测值,N表示预测集中数据个数。
Step5:选择与交叉:首先采用随机的选择算子选择种群中的优秀个体,然后交叉操作采用单点交叉算子,即在待交叉的两个个体中随机产生一个变异点,然后将之后染色体部分进行互换。在这里需要指出的是,由于使用多种群遗传算法因此不同种群中的r交交叉概率是不同的,这样可以从某种程度上增加进化的多样性,有助于搜索到全局最优的结果。
Step6:变异操作:以一定概率产生变异基因数,由于本文采用二进制编码,因此将改位基因上的数字由1变为0,或者由0变为1。不同种群之间的变异概率。变也是不同的。
Step7:间隔一定代数进行移民操作:将目标种群中最差的个体用源种群的最优个体替代。即当执行移民操作时,种群2中的最差个体会被种群1的最优个体替代,依此类推。这样的优点在于,在进化的过程中,即保持了每个种群的独立性,也使得种群间有沟通交流的方式。
Step8:人工选择算子:通过人工选择的方式将其他种群中最优个体,放入精华种群进行保存。
Step9:判断是否满足收敛条件:采用最精华种群中最优个体最少保持代数作为终止条件。如判断为是:转至Stepl0,否:转至Step3。
Step10:对结果进行解码得到权值与阈值,将数据带入网络训练并得到预测结果。
3仿真实例
以上海市的货运数据与经济数据为例(表1),进行实例验证。为了对比,本文分别采用了BP神经网络、遗传BP算法和多种群遗传BP算法三种方法,分别建立了预测模型进行比较。
在模型建立前,首先需将表1中的数据进行预处理。表1中每列数据都有着自己单位并且数据的幅值都有所不同。如果直接使用,会导致网络训练时间增加以及网络无法收敛的情况发生。为避免此类情况的发生,需对原始数据进行归一化处理。归一化的方法有许多种,在本文中,由于神经网络传递函数属于S型函数,其输入范围应在[0,1]之间为优。
将表1中归一化处理后。将前18组数据作为训练集,后6组数据作为测试集,多次使用BP神经网络训练,其训练网络初始权值与阈值为随机值,表2中可见其预测值与实际值的误差。之后,使用遗传BP神经网络对数据进行模型的建立与预测。其中种群个体数为50,代数为100代。交叉概率为0.95,变异概率为0.01,表2中可见其预测值与实际值的误差。最后,使用多种群遗传BP神经网络对归一化后的数据进行训练,模型的种群数为50个,每个种群的个体数为50,进化代数为100代。其中每个种群交叉概率为[0.75,0.9]之间的随机数,变异概率为[0.01,0.05]之间的随机数。
三种模型的预测结果如表2所示,模型误差分别为2.02%、0.45%与0.10%,多种群遗传BP算法的平均误差明显小于BP神经网络与遗传BP算法。而从误差的离散程度观察,离散程度从火到小依次是BP神经网络算法、遗传BP算法、多种群遗传BP算法。由于BP神经网络其初始权值与阈值为完全随机,因此其每次预测误差都较大且误差离散程度也最大。
遗传BP算法虽然经过了优化,但还是比较容易陷入局部最优,其解的误差已经明显优于BP算法,但离最优解之间仍有一定的距离,且其误差离散程度虽小于BP模型,但仍说明还为到达最优解。
多种群遗传BP算法则较好的避免了陷入局部最优的问题,因此其多次运行的误差均值基本相同,由此我们可以认为其达到了较好的收敛,并且结果优于另外两种算法,因此可以认为已经接近最优解。
4结语
城市物流需求的合理预测对城市物流资源的分配起着重要的作用,本文通过分析城市物流需求受到经济活动影响的类别,选取了城市经济指标进行预测。为了使模型预测结果更为精确,本文提出了多种群遗传BP算法,避免了陷入遗传算法局部最优的缺点,对BP神经网络的初始权值和阀值进行优化。通过仿真实验表明,其具有较高的精度与收敛性好的优点,在实际城市物流需求预测应用中具有一定的价值。
上一篇:高铁争夺战的社会经济逻辑
下一篇:返回列表