基于人工蜂群算法的空间负荷预测

2018-09-11 06:34马星河娄晨阳赵军营
Traditional Medicine Research 2018年1期
关键词:蜜源适应度蜂群

马星河,娄晨阳,赵军营,许 丹

(河南理工大学电气工程与自动化学院,焦作 454000)

空间负荷预测SLF(spatial load forecasting)[1]用来预测未来负荷量的变化规律,并且对未来负荷地理分布情况也可做相应的预测。目前的SLF方法有很多种,包括趋势分析法、负荷密度指标法、用地仿真法等。用地仿真法是通过分析规划区域土地利用变化的情况,预测规划区域的未来土地利用类型,并在此基础上将土地利用情况转化成空间负荷,是SLF的常用方法。

土地使用决策是用地仿真方法的核心,传统的用地仿真法通常依赖于专家的经验,得到的预测结果往往出现不同程度的偏差。近年来,国内外学者在这方面上提出了很多新的方法。文献[2-3]通过引入模糊逻辑技术用于用地仿真法的土地使用决策,隶属函数的选取本身具有主观因素。文献[4-5]提出了一种基于模糊粗糙集理论的SLF,该方法建立的模型没有解决数据在离散过程中本身带来的不确定性,也没有解决在小区用地评分时小区空间属性泛化后概念的模糊性。文献[6]提出将元胞自动机理论应用于SLF,由于获取的数据工作量较大,很难实际操作。很多预测方法都是采用静态决策规则应用于未来年规划区域用地类型的预测,然而静态决策规则只适合规划区域近几年的发展。

由于人工蜂群ABC(artificial bee colony)算法的设计思路遵循自下而上的原则,因此可以同其他模型结合构建以提取土地利用变化的转换规则。文献[7]研究表明蜂群算法应用于土地利用变化建模具有可行性,而且ABC算法模拟总体精度达到85%。因此,本文提出基于ABC算法的SLF,利用用地仿真法理论来预测规划区域各小区的未来用地类型,定义各小区用地类型的属性节点和类节点的连线为蜂群搜索路径,确定蜂群初始参数以及适应度函数的选取,从而预测未来年各用地类型的面积总量。

1 ABC算法

1.1 ABC算法基本概念

蜜蜂是社会化的昆虫群体,无论身处什么样的环境,蜜蜂群体能够以较高的效率发现优良的食物源。Karaboga等[8-9]于2005年提出了ABC算法及其改进算法。ABC算法的基本思想为首先介绍蜜源,其代表解空间内的各种可能解,适应度函数值用来衡量蜜源;然后引入3种蜂,分别是采蜜蜂、观察蜂(也叫跟随蜂)、侦察蜂,采蜜蜂与所采的蜜源相对应,一个蜜源对应一个采蜜蜂,采蜜蜂通过摇摆舞与其他蜜蜂分享信息,跟随蜂守候在摇摆舞区通过分享采蜜蜂的信息去选择蜜源,采蜜蜂不断更新位置并选择更好的蜜源,侦察蜂的任务是在蜂巢附近随机搜索一个新位置。蜜蜂采蜜过程如图1所示,其中S为侦察蜂;UF为观察蜂;EF1为第1个采蜜蜂;EF2为第2个采蜜蜂;R为蜜蜂在没有蜜源信息的前提下所走的路线。

ABC算法的主要步骤如下:

步骤1 蜂群的初始化;

步骤2 根据记忆在附近蜜源中采蜜蜂确定蜜源,并分享信息;

步骤3 根据记忆和信息,观察蜂确定蜜源;

步骤4 侦察蜂至搜寻区以发现新的蜜源;

步骤5 保留目前最好的蜜源信息;

步骤6 重复步骤2~步骤5直到条件满足。

图1 蜜蜂采蜜过程Fig.1 Behavior of bees foraging for nectar

1.2 基于ABC算法的用地类型动态转换规则挖掘

ABC算法是一种新的群体智能算法,易于并行实现,该算法复杂度低,鲁棒性强,设定的参数较少,每次迭代都进行全局和局部搜索,从而在较大程度上避免了局部最优,具有很强的全局收敛性。

基于ABC算法的用地类型动态转换规则的挖掘算法分成4个主要部分:转换规则构造、适应度函数、转换规则挖掘和规则修剪及样本更新。

1.2.1 转换规则构造

转换规则是根据规划区域某个小区的当前状态及其邻居状况确定未来年该小区状态的对应关系,是从两期土地利用变化情况作为训练样本数据进行挖掘得到的,因此利用逻辑语句“If…Then…”可以表达转换规则。定义各小区用地类型的属性节点和类节点的连线为蜂群搜索路径,其中属性节点的出现最多一次,而且类节点必须出现。如图2所示,寻找一条最合适的路径就相当于找到最优的转换规则。初始时刻,蜂群随机搜索一条规则,规则形式如下:

式中:term为属性值;class为样本数据中的预测类型。

图2 ABC中转换规则构造对应的路径Fig.2 Paths corresponding to the construction of ABC transition rules

1.2.2 适应度函数

转换规则(采蜜蜂种群)的适应度函数用来描述规则质量的好坏,也就是蜜源的丰富程度。本文的适应度函数可以表示为

式中:fit为转换规则的质量;TP为在样本数据中属性节点满足规则,并且类节点和规则相同的样本数;FP为在样本数据中属性节点满足规则,并且类节点和规则不相同的样本数;TN为在样本数据中属性节点不满足规则,并且类节点和规则不相同的

样本数;FN为在样本数据中属性节点不满足规则,

并且类节点和规则相同的样本数。

1.2.3 转换规则挖掘

转换规则挖掘过程模仿了蜜蜂的采蜜行为,蜂群在样本数据中能找到最优的转换规则。假设蜜蜂总数为Ns,其中采蜜蜂数量为Ne,观察蜂数量为Nu(一般定义Ne=Nu),个体向量维度为D,S=RD为个体搜索空间,SNe为采蜜蜂种群空间。若Xi∈S(i≤ Ne)是 Ne个个体,X=(X1,X2,…,XNe)代表一个采蜜蜂种群,用X(0)表示初始采蜜蜂种群,X(n)表示第n代采蜜蜂种群,则转换规则挖掘过程可做如下描述。

步骤1 初始时刻(n=0),所有蜜蜂都是侦察蜂,全局随机搜索蜜源即是按式(1)格式随机构造Ns条转换规则X=(X1,X2,…,XNe),根据蜜源情况得出的所有适应度值fitNs(即转换规则的质量),将排名前一半的蜜源作为采蜜蜂种群X(0),并记录采蜜蜂在同一蜜源位置停留的循环次数。随机产生的转换规则为

步骤2 第n只采蜜蜂X(n)在原来的蜜源位置附近上随机寻找新蜜源(即寻找新的转换规则),搜索公式可以表示为

步骤3 计算每只采蜜蜂找到新蜜源。Xnew,i的适应度值 f(Xnew,i)和原来蜜源Xi的适应度值f(Xi)(即新旧规则的质量比较),若优于原来的蜜源,用新的蜜源代替原来的蜜源,否则保留原来的蜜源,并更新采蜜蜂在原位置的连续停留次数,采蜜蜂寻找的新蜜源Xnew,i代替原蜜源Xi的概率分布可表示为

式中,Ts为随机映射,Ts:S2→S。

步骤4 每只观察蜂根据概率Pi选择要跟随的采蜜蜂,并在其领域内同采蜜蜂一样寻找新的蜜源,计算其适应度值,判断是否保留蜜源,并更新蜜蜂连续停留次数。选择概率可表示为

式中:fiti为第i个蜜源对应的适应度值;N为蜜源的总数,n=1,2,…,N。

步骤5 同步骤2和步骤3,保存目前最好的蜜源,并记下其适应度值以及相应的参数。

步骤6 当某只采蜜蜂在当前蜜源的位置附近搜索次数Nbas超过一定阈值Nlimit时仍然没有找到更好的位置,放弃当前蜜源,转换为侦察蜂,重新开始初始化该蜜源的位置,可表示为

式中:Xi(n)为侦察蜂寻找新的蜜源;Xmin、Xmax分别为在某维中的下界和上界;Nbasi为采蜜蜂在第i个蜜源的位置附近搜索的次数。

步骤7 若满足停止准则,则循环结束并保存目前最优适应度值及相应的参数,否则转向步骤2。

1.2.4 规则修剪及样本更新

根据搜索到的最优适应度值和对应的蜜源位置得出一条转换规则。为了避免规则对样本数据的过度拟合,移除规则中一些对规则预测类型影响小的属性,以便提高规则的质量。因此对规则进行修剪,基本思路为依次删掉转换规则的某种条件项,若规则质量提高,则删除该条件项,继续删除下一条件项,否则将该条件项放回到规则中,直到任何一个条件项的删掉都会降低规则的质量为止。

转换规则经过修剪之后被保存到用地类型的转换规则中,并移除在样本数据中被当前规则覆盖的样例,即删除符合此规则的样本例子,之后在被规则覆盖后的样本数据中搜索下一条转换规则,直到所有的规则挖掘完毕。

2 SLF方法

2.1 用地类型的划分及其负荷密度预测

空间负荷预测流程如图3所示。按照SLF的要求,将要进行负荷预测的区域划分为各个小区,每个小区有不同的用地类型,按照电力负荷分类可以划分为工业、商业、居民和行政4类,每个用地类型有不同的负荷密度曲线,各类用地的未来负荷总量可由灰色理论、组合预测方法等常用方法进行负荷预测[10-12]。

图3 空间负荷预测流程Fig.3 Flow chart of spatial load forecasting

2.2 空间数据的提取

从空间数据库中提取空间数据,首先将规划区域数字化后的地图分为若干图层,例如交通层、居民层、工业层、商业层、学校层等,从空间数据库中选取空间信息包括:C1为与最近主干道的距离;C2为与市中心的距离;C3为与最近工业区的距离;C4为与最近商业区的距离;C5为与最近居民区的距离;C6为与最近学校的距离;C7为当前的小区邻居中与该小区用地类型相同的小区数;D为小区的土地利用类型。

2.3 数据预处理及建立样本数据表

在空间数据库中提取相关的数据之后,利用上述数据可生成一个用于训练的样本数据表。不同的城市规模大小不同,发展程度不同,空间属性数据也不相同,所取的离散区间往往不同。故在进行数据挖掘前需要将条件属性进行离散化。

将在样本数据中连续的距离属性模糊离散化为定性的属性值,按当地人在日常生活中对距离远近的理解方式将属性值离散化为“近”、“中”和“远”,分别用1、2、3代表;土地分类属性D按用地类型分为工业、商业、居民和行政,分别用1、2、3、4代表。通过数据离散化,最终建立一个适合于蜂群算法挖掘规则的样本数据表。

2.4 转换规则的获取

转换规则将从两期土地利用变化情况中用ABC算法挖掘出来,具体挖掘过程在第2.2节详细叙述过。利用Matlab R2012a按照ABC算法挖掘用地类型转换规则进行编程序。该算法的程序流程如图4所示。其中,Niter为搜索到最好蜜源的迭代次数,NC_max为最大迭代次数。

图4 ABC算法挖掘转换规则的流程Fig.4 Flow chart of transition rules mined by ABC algorithm

2.5 小区负荷预测

规划区域某一小区的负荷预测值是通过该小区土地使用面积的预测值乘以其负荷密度得到的,由于各用地类型的负荷通常不是在同一时刻出现,规划区域的负荷总量总是小于各个小区的负荷之和,因此计算规划区域负荷总量时需考虑同时率。

3 实验结果

本文将2010年某市规划区作为研究对象,预测区域面积为8 km2。采用正方形网络划分方法,划分为300个200 m×200 m的小区。通过空间数据库对其提取相关的空间信息,并对其条件属性进行离散化,建立规划区域的样本数据表,如表1所示,其中S为小区的总数。

表1 规划区域的样本数据表Tab.1 Sample data sheet for planning area

以2010年为基期年,以2015年为预测目标年,用ABC算法从2010年、2012年两期土地利用变化数据中将转换规则挖掘出来。在Matlab R2012a环境下实现ABC算法对土地利用变化情况作为训练样本数据进行转换规则挖掘。经过多次试验,设定蜂群参数:蜂群总数为20,采蜜蜂规模为10,最大迭代次数100次;局部搜索优化值不变次数限制为10次,所得到部分转换规则如下。

规则1:

IfC1=1 andC2=3 andC4=3

Then D=1,Fitness=0.75

规则2:

IfC1=2 andC2=1 andC5=1

Then D=2,Fitness=0.67

规则3:

IfC1=2 andC3=3 andC7≥2

Then D=3,Fitness=0.44

规则4:

IfC1=1 andC3=3 andC6=3

Then D=4,Fitness=0.56

将获得的转换规则对规划区域的样本数据进行用地分类,即可得到未来年各用地类型的面积总量。按照文献[9-10]所说的方法对各类用地类型的未来负荷增长总量进行预测,得到了各类负荷的负荷密度曲线。2015年预测结果见表2。

表2 2015年预测结果Tab.2 Forecasting result for 2015

为了验证基于蜂群算法的SLF的有效性,本文将该模型得到预测结果与实际结果进行对比,得到了2015年的分类负荷密度相对误差[1],工业、商业、居民和行政的预测误差分别是2.33%、3.10%、2.02%和0.15%,且更接近实际的负荷空间分布情况,说明该方法是有效的。

将本文提出的方法所得到分类负荷预测与文献[13]提出的方法进行对比,2015年负荷预测结果对比见表3。证明本文所提方法比粗糙集和元胞自动机的方法所得分类负荷预测精确度更高。

由于城市的发展,转换规则只适合规划区域几年的发展,几年以后,转换规则可能不再适用。因此,转换规则需要不断地调整,为了预测2020年规划区域的小区未来利用类型,可以把2010年作为基期年,2020作为目标年,而转换规则从2010年、2015年两期土地利用变化情况中挖掘出来。表4为2020年预测结果,图5为2015年与2020年各类用地类型的负荷预测结果。通过对比,该规划区域居民用地类型的发展可能性最大,周围可能出现部分商业,相反,工业用地类型的发展可能性最小。

表3 2015年负荷预测结果对比Tab.3 Comparison of load forecasting results for 2015

表4 2020年预测结果Tab.4 Forecasting results for 2020

图5 各用地类型的负荷预测值Fig.5 Load forecast result of each land-usage type

4 结语

基于ABC算法的SLF方法,结合了用地仿真法和蜂群算法的优点,有效地解决了以往预测过程中应用于规划区域发展的静态规则带来的问题,提高了空间负荷预测精度。本文根据规划区域用地类型的发展情况,在ABC算法原理的基础上,构造了用地类型转换规则的挖掘算法,确定蜂群参数,从而进一步提高用地类型的分类精度。

猜你喜欢
蜜源适应度蜂群
改进的自适应复制、交叉和突变遗传算法
林下拓蜜源 蜂业上台阶
“蜂群”席卷天下
蜂群自组网双信道频率分集多址接入协议
指示蜜源的导蜜鸟
一种基于改进适应度的多机器人协作策略
蜜蜂采花蜜
改进gbest引导的人工蜂群算法
自适应遗传算法的改进与应用*