时间:2024-05-22
谭树东,谭立献(.辽宁省建平县气象局,辽宁朝阳400;.辽宁省东港市气象局,辽宁丹东83000)
辽西建平地区耕地总计14.6万hm2,平均每人拥有耕地0.3 hm2,位居辽宁省第一,是我国农村人均耕地占有量的1倍,主要经济作物为马铃薯、玉米等,气候条件属于半湿润、半干旱季风型大陆性气候,雨热同期,近10年平均降水量615.7 mm。由于夏季温度较高且降水不足,常需进行人工增雨工作,该地区气象工作对农业生产有着重要影响。
现代气象工作主要以气象观测的数据为主要依据,其中地面气象观测数据的主要来源是地面气象自动站。自动气象站是一种通过传感器进行气象数据采集,然后通过通信网络进行数据实时传输或存储起来供以后使用,其目的是节省人力和测量更为全面的气象数据,然而由于气象观测的环境要求,其地理位置分布较广且基本上均处于偏僻地区,由于环境因素和电子仪器的敏感性其经常出现问题,需要定期对其进行巡视维护,以保证其正常运行。笔者在此以辽西建平地区的气象自动站为例,提出了通过遗传算法建立数学模型并通过MATLAB数学软件进行计算的解决办法。
建平县内一共拥有15个自动气象观测站,其中14个分布在乡下农村地区,日常巡视要求每一个自动站均要进行巡视并维修有问题的自动气象站,这是一个典型的TSP问题(TSP问题就是寻找一条最短的遍历n个城市的最短路径)。
遗传算法是通过自然界的生物进化规律演化而来的随机化搜索方法,算法通过自然选择、遗传、变异等步骤,使每代个体的适应度逐渐增强,其主要特点是直接对结构对象进行操作,不存在求导和函数连续性的限定;具有内在的隐并行性和更好的全局寻优能力,采用概率化的寻优方法,能自动获取和指导优化的搜索空间,自适应地调整搜索方向,不需要确定的规则,遗传算法在解决TSP问题中有着其他算法没有的优势[1]。标遗传算法包括群体的初始化、选择、交叉、变异操作。通过遗传算法解决TSP问题的主要步骤可描述如下。
1.1 初始化 随机产生一组初始个体构成的初始种群,设置进化代数计数器i=0,设置最大进化代数I,随机生成n个个体作为初始群体Z(0)。
1.2 个体评价 计算群体Z(i)中各个个体的适应度。
1.3 选择运算 将选择算子作用于群体。选择的目的是把优化的个体直接遗传到下一代或通过配对交叉产生新的个体再遗传到下一代。
1.4 交叉和变异运算 按交叉概率Zc执行交叉操作,再按变异概率Zn执行变异操作。
1.5 判断是否终止循环 判断算法的收敛性是否符合要求,如果i=I,输出遗传进化过程中具有最大适应度的个体作为最优解,否则重复步骤“1.2”[2]。
2.1 数据收集与坐标转换 通过GPS定位得到建平县23个自动气象站的经度、纬度,通过软件转化成平面的X、Y坐标,结果如表1所示。
2.2 Matlab 编程
2.2.1 数据输入与种群初始化。矩阵defaultConfig.xy储存的是个城市的坐标(设维护人员出发点的坐标为(0,0)),且创建一个全新的种群。代码如下:
2.2.2 距离矩阵和适应度函数。距离矩阵使用一个n×n阶矩阵pop存储,pop(i,j)代表城市 i和城市j之间的距离。pop(i,j)=sqrt((Xi-Xj)2+(Yi-Yj)2)在该问题的求解中,用距离的总和来衡量适应度,距离的总和越大,则适应度越小,进而研究得到的解是否是最优解。每个个体(每条路径距离)总和的计算公式如下:
2.2.3 选择操作。选择操作的目的是为了在当前的种群中选出优良的个体,让他们作为父代产生适应度更高的子代个体。代码如下:
表1 自动站坐标
2.2.4 交叉操作。群体中的每个个体之间均以一定的概率p1交叉,即2个个体从各自字符串的某一位置(一般是随机确定)开始互相交换,这类似生物进化过程中的基因分裂与重组。如假设2个父代个体x1、x2分别为x1=0100110、x2=1010001,从这2个个体的第2位开始交叉,交叉完成后得到2个新的子代个体 y1、y2分别为y1=0100101、y2=1010010,这样2个子代个体就分别具有了2个父代个体的一些特征。利用交叉操作可以由父代个体在子代组合成具有更高适应度的新个体。Matlab实现步骤如下:2.2.5 变异操作。基因突变情况普遍的存在于生物进化过程当中。变异是指父代中个体的每一位均以同一概率p2翻转,即由“1”变为“0”,或由“0”变为“1”。遗传算法所具有的变异性可以使求解过程能够随机地搜索到最优解可能存在的整个空间,因此可以在一定程度上求得全局最优解。这一部分的代码如下:
2.3 Matlab求解 通过Matlab运算,发现经过4 600次遗传之后最优路径的值不会再发生特别大的变化(图1),最后经过4 637次的遗传之后最终得到一条最优路径0-23-15-19-7-13-1-5-3-11-4-12-2-10-14-17-22-6-8-16-21-9-18-20,即本站-昌隆-老官地-沙海-三家-奎德素-太平庄-八家-黑水-热水-哈拉道口-烧过营子-廿家子-马场-罗福沟-杨树岭-张家营子-青松岭-喀喇沁-榆树林子-朱碌科-深井-青峰山-小塘,基本路径如图2所示。
图1 经过n代遗传之后的最优解大小
该研究通过建立遗传算法的数学模型,并通过MATLAB软件求解的方法给出了一条辽西建平地区气象自动站巡视维护的最佳路径,能够提升自动站维护人员的工作效率,减少日常维护的消耗开支,为自动站巡视问题提供了理论上的参考,在实际应用中有很大的参考意义。
图2 通过遗传算法得到的最短路径图
[1]洪玮.基于实例的归纳学习在遗传算法策略优选中的应用研究[D].西安:西安理工大学,2010.
[2]百度文库.遗传算法实例[EB/OL].http://wenku.baidu.com/view/1e27d0ed6294dd88d0d26bff.html.
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!