matlab遗传算法预测,遗传算法matlab程序_遗传算法在建立预测预报模型中的应用研究...

[摘要] 预测预报是人们对客观事物发展变化的一种认识与估计。对某个对象系统选择哪一种方法来建立预测预报模型,关键在于用此方法建立的预测模型的计算值与实际值的拟合程度。近几年发展起来的遗传算法(GA, Genetic Algorithm)是借鉴生物遗传机制的一种随机化搜索算法,其主要特点是群体搜索和群体中的个体之间的信息交换。遗传算法尤其适用于处理传统方法难以解决的复杂的和非线性的问题,己在许多领域有广泛的应用,它将成为智能计算的主要技术之一。文章以某企业各年度资金实际需要量动态数列为例,探讨了基于遗传算法的时序预测模型的建模方法及预测精度的有效性。

[关键词] 遗传算法 预测 建模 拟合 精度

预测预报是人们对客观事物发展变化的一种认识与估计。预测预报对人类社会的重要性早己为人们所认识,“凡事预则立,不预则废”,说明了人们对预测的重要性的认识。预测可采用的方法很多,例如,传统的回归分析方法、基于灰色理论的灰色模型(Grey Model),以及近几年发展起来的遗传算法和人工神经网络模型等。对某个对象系统选择哪一种方法来建立预测预报模型,关键在于用此方法建立的预测模型的计算值与实际值的拟合程度。

遗传算法(GA,Genetic Algorithm)是借鉴生物遗传机制的一种随机化搜索算法,其主要特点是群体搜索和群体中的个体之间的信息交换遗传算法尤其适用于处理传统方法难以解决的复杂的和非线性的问题,己在许多领域有广泛的应用,它将成为智能计算的主要技术之一。

一、遗传算法原理综述

1.基本术语

遗传算法是遗传学和计算机科学相互结合渗透而成的新的计算方法,它使用了遗传学的一些概念和基本术语来描述它的计算方法。

生物遗传物质的主要载体是染色体,最主要的遗传物质是DNA。染色体由基因组成,染色体中基因的位置称为基因座,基因所取的值称为等位基因。基因和基因座决定了染色体的特征,也决定了生物个体的性状。

染色体有两种表示模式,即基因型(genetype)表示模式和表现型(phenotype)表示模式。表现型是指生物个体所表现出来的性状。基因型是指与生物个体表现出来的性状密切相关的基因组成。同一种基因型的生物个体在不同的环境条件下表现出来的性状会有差异,因此,表现型是基因型与环境条件相互作用的结果。

2.编译码操作

在遗传算法中,与染色体相对应的是数据或数组。在标准的遗传算法中,染色体可用一维的串结构数据来表示,串的各个位置对应染色体的基因座,各位置上所取的值对应等位基因。遗传算法对染色体进行处理,或者称为对基因型个体(individuals)进行处理。一定数量的个体组成群体(population),群体中的个体数称为群体大小(population size)或群体规模。各个个体对环境的适应程度称为适应度(fitness)。

执行遗传算法时有两个必需的数据转换操作,一个操作是把搜索空间中的参数或解数据转换成遗传空间的染色体或个体,或者说是把染色体数据从表现型表示转换成基因型表示,这个过程称为编码操作;另一个操作称为译码操作,它是同编码操作相反的数据转换操作,译码操作把染色体数据从基因型表示转换成表现型表示。

3.算法流程

遗传算法的基本流程如下图所示。遗传算法以群体中的所有个体为对象,选择(selection)、杂交(crossbreed)和变异(mutation)是遗传算法的三个主要操作算子,它们构成了所谓的遗传操作(Genetic Operations),使遗传算法具有了其他传统方法所没有的特征。

4.基本要素

应用遗传算法求解问题,需要根据求解的具体问题进行下述五个方面的工作,这是遗传算法的核心内容,也称为遗传算法的五个基本要素:

(1)参数编码的格式设定及参数编码

(2)初始群体的设定

(3)适应度函数的设计

(4)遗传操作设计

(5)控制参数设计,主要是指群体规模和遗传操作中所需使用的有关控制参数的设定和设计

二、应用遗传算法建立预测预报模型

下面是一个用来说明遗传算法在建立预测预报模型中的应用实例。

例:己知某企业从1985年~2006年各年的资金实际需要量(万元)如下表所示,应用遗传算法建立该企业资金年需要量预测模型。

1.建模分析

由表给出的1985年~2006年的资金实际需要量,可作出如下图所示的年资金实际需要量曲线。由此曲线可见,企业年资金实际需要量的总趋势在增长,但有准周期性的振荡,因此,年资金实际需要量预测模型应考虑曲线总体增长趋势的描述和振荡规律的描述两部分组成。

(1)企业年资金需要量总体增长趋势的描述。

在一个企业的成长发展时期中,企业年资金需要量的变化情况可分为发生、发展、成熟三个阶段。在发生阶段,随着企业基础设施和管理的到位,年资金需要量增长速度较慢,并逐渐加大增长趋势;在发展阶段,随着企业品牌形象的逐步形成,年资金需要量增长速度较快,并维持一段时间后进入成熟期;在成熟阶段,其增长速度将逐渐变慢,增长趋于饱和。企业年资金需要量的这种总体发展变化规律可采用Logistic生长曲线描述。Logistic生长曲线是下述非线性常微分方程:

的解:

式中各参数在本例中的含义是:Y是年资金需要量,t是时间(年),a是年资金需要量增长速度系数,b是企业年资金需要量的极限值,m和c是与a,b有关的参数。

Logistic生长曲线如下图所示,可用于反映一般处于成长发展时期中的对象系统随时间的生长情况。由于Logistic曲线符合企业年资金需要量随企业打拼发展的变化规律,所以采用Logistic曲线描述企业年资金需要量的总体增长趋势是比较合适的。

考虑到1985年以前的年资金需要量应对Logistic生成曲线的起点定位及其预测值有“抬高”的影响,故对Logistic曲线进行如下修改:

(2)企业年资金需要量振荡规律的描述。

由企业年资金需要量曲线可见,从1985年~2006年,实际年资金需要量的变化与Logistic曲线有较大差异。实际年资金需要量曲线有较大幅度的振荡,是一个多峰曲线。企业年资金需要量出现振荡多峰的原因是复杂的,但是,我们这里并不需要去探讨振荡的原因及其各种原因是如何影响预测模型的,只需要在预测模型中给出振荡规律的大致描述。

由图所示的实际年资金需要量曲线的振荡具有准周期性衰减,周期性可以用正弦函数描述,幅值的衰减性可以用负指数函数描述。因此,考虑到年资金需要量曲线的振荡特征后,需要对由Logistic曲线表示的年资金需要量总体增长趋势乘以一个振荡修正因子,即有:

式中,p为相对振荡幅值,h为振荡半周期长度(年),u为振荡的初始幅角,g为振荡衰减系数。

上式中含有8个待定参数b,c,d.m,p,g,h和u。我们采用遗传算法求解这8个参数,从而得出企业年资金需要量的预测模型y(t)。

2.采用遗传算法求解模型的待定参数

(1)编码

把待定的8个参数表示成一维数组x=(b,c,d,m,p,g,h,u),数组各元为带符号的十进制数。

(2)初始群体的随机生成

设群体规模为n,随机生成初始群体的n个个体xi=(ai1,ai2,ai3,ai4,ai5,ai6,ai7,ai8),i=1,2, …,n。个体xi中基因座k上的基因值aik(1≤k≤8)就是数组xi的第k个元的值。

(3)适应度函数

待定参数的确定应使得预测模型的年资金需要量计算值y(t)与年资金需要量实际值y*(t)的拟合最好,即从1985年~2006年共22年的计算值y(t)与实际值y*(t)的误差累计最小。故建立适应度函数为:

(4)选择操作

为减小计算的复杂程度,可直接选择适应度fi最小的个体xi作为优良个体,对其复制一次,并淘汰适应度最大的一个个体。对规模较大的群体,优良个体被选择的次数可多于两次,并相应淘汰多个劣质个体,以保持群体规模n不变。

(5)杂交操作

对配对池MP=(x1,…,xi,…,xj,…,xn)中的n个个体随机配对进行杂交繁殖。若随机选择xi=(ai1,ai2,ai3,ai4,ai5,ai6,ai7,ai8)与xj=(aj1,aj2,aj3,aj4,aj5,aj6,aj7,aj8)配对,则杂交操作为:

其中,杂交参数β可以是一个随机数,β的取值范围为0

这是遗传算法的一些相关知识遗传算法(Genetic Algorithm)是模拟达尔文生物进化论的自然选择和遗传学机理的生物进化过程的计算模型,是一种通过模拟自然进化过程搜索最优解的方法,它最初由美国Michigan大学J.Holland教授于1975年首先提出来的,并出版了颇有影响的专著《Adaptation in Natural and Artificial Systems》,GA这个名称才逐渐为人所知,J.Holland教授所提出的GA通常为简单遗传算法(SGA)。   遗传算法是从代表问题可能潜在的解集的一个种群(population)开始的,而一个种群则由经过基因(gene)编码的一定数目的个体(individual)组成。每个个体实际上是染色体(chromosome)带有特征的实体。染色体作为遗传物质的主要载体,即多个基因的集合,其内部表现(即基因型)是某种基因组合,它决定了个体的形状的外部表现,如黑头发的特征是由染色体控制这一特征的某种基因组合决定的。因此,在一开始需要实现从表现型到基因型的映射即编码工作。由于仿照基因编码的工作很复杂,我们往往进行简化,如二进制编码,初代种群产生之后,按照适者生存和优胜劣汰的原理,逐代(generation)演化产生出越来越好的近似解,在每一代,根据问题域个体的适应度(fitness)大小选择(selection)个体,并借助于自然遗传学的遗传算子(genetic operators)进行组合交叉(crossover)和变异(mutation),产生出代表新的解集的种群。这个过程将导致种群像自然进化一样的后生代种群比前代更加适应于环境,末代种群的最优个体经过解码(decoding),可以作为问题近似最优解。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值