基于遗传算法的股票市场选择模型

基于遗传算法的股票市场选择模型
基于遗传算法的股票市场选择模型

基于遗传算法的股票市场选择模型

摘要:为提高投资者在股票市场的收益,解决在证券投资中股票选择这一重要问题,提出一种基于遗传算法的股票选择模型。算法以上市公司的财务指标为样本特征,为克服K-means算法的不稳定性,采用基于遗传算法的K-means算法对同一板块股票进行聚类分析,剔除财务指标较差的一类中的股票。对筛选条件编码,为解决传统遗传算法处理复杂问题时存在的过早收敛现象,提出改进的遗传算子,利用改进的遗传算法寻找使股票市场投资收益最大化的选股模型参数。实验结果表明,该算法在股票选择上具有较好的效果,可供市场投资者借鉴。

关键词:股票选择;遗传算法;聚类分析;投资决策;组合优化

1引言

当今社会人们的理财投资意识日益增强,且越来越多的投资者将眼光投向了股票市场。虽然股票可以给投资者带来可观的收益,但投资者要想获得很好的投资回报,就得利用合理科学的投资策略来选择股票进行投资[1]。

股票选择从基本面而言,就是对上市公司的内在价值进行评估[2]。股票市场具有的长期记忆性使得可以通过数据分析找出股票价格或收益率的长期相关性,同时股票市场具有非线性[3],应用智能算法可以提高分析的精确度和鲁棒性。现有的很多关于股市的研究主要是应用优化算法对股价和股市态势做出预测。如文献[4] 提出一种基于遗传算法的粗糙集属性约简方法和神经网络相结合的模型来预测股价。文献[5]提出基于离群特征模式的支持向量机模型来预测股价波动。这些研究限于对单个股票或大盘价格的预测,对投资者的投资决策缺乏全面指导性。对于股票选择,最传统的基于基本面分析的股票选择方法有欧奈尔基本面CAN SLIM法则、朱雀丁远指数中性策略等经典模型[6]。这些模型大多是研究者通过对历史数据的分析和个人经验提出的,虽然具有一定的效果,但是股票筛选精度一般,灵活性较差。文献[7]定义了股票稳定性值,结合遗传算法和贪婪算法提出股票选择规划方法。此方法很好地规

1682016,52(18)Computer Engineering and Applications 计算机工程与应用

避了股票选择风险,但是没有实现收益最大化。文献[8]

通过合理地选取贝叶斯分类器的参数对股票进行分类得

出高回报股票组合,但是实验数据受大盘形势影响缺乏

贝叶斯分类需要的独立性,算法预测精度一般。

本文提出一种改进的选股策略,利用基于遗传算法改

进的K均值聚类算法和改进的遗传算法分析上市公司的

财务指标,得出合理的股票选择模型。首先在大量股票样

本的初步处理中,采用基于遗传算法的K均值算法,对

财务指标进行聚类分析,从而过滤股票样本。然后利用改

进的遗传算法,使用自适应的交叉算子与变异算子,来寻

找最佳选股模型参数,从而找出真正具有投资价值的股

票。

2股票选择模型的建立

2.1指标及样本的选择

基本面选股所涉及的因素主要是上市公司的财务指

标,包括每股指标、盈利能力、成长能力、营运能力、

现金流量、偿债能力和资本结构等指标。所以本文选取

了较能反映这些能力的十项重要指标,如表1所示。

表1 财务指标表

指标类别指标名称指标性质

每股指标每股收益/元正指标

盈利能力总资产净利润率/% 正指标

盈利能力销售净利率/% 正指标

盈利能力净资产收益率/% 正指标

成长能力净利润增长率/% 正指标

成长能力总资产增长率/% 正指标

营运能力应收账款周转率/次正指标

营运能力存货周转率/次正指标

偿债及资本结构资产负债率/% 逆指标

现金流量经营现金净流量对负债比率/% 正指标

板块是由具有共同特征的股票组成的群体。股票板

块可以根据上市公司所属的行业、地域、特色题材等多

种角度来划分[9]。本文选取了发电设备板块的50家上市

公司的股票作为样本。

2.2模型求解策略

聚类是将对象集合分组为多个类,同一类中的对象有

很大的相似性。目前国内股票市场根据上市公司的财务状

况,公司股票一般分为:绩优股、一般股和垃圾股。所以

本文采用基于遗传算法改进的K均值聚类算法将样本数

据根据财务指标属性聚类为三类,即k=3。剔除垃圾

股类中的股票样本,保留绩优股和一般股类中的样本。这

样先从大量数据中过滤掉不利于投资的股票,减少了之后

股票选择的数据量,提高了选择的准确率和效率。

求得最佳的股票选择模型可以看作是一个复杂的组

合优化问题,目标就是求得目标函数的最优解,遗传

算法具有很强的全局搜索能力,利用改进的遗传算法可

以很好地求解这一问题。

2.3模型的建立

2.3.1模型参数

x j代表股票所属上市公司的第j(0

指标(对应如表1所示)。x11代表该只股票的回报率。

S i代表第i 只股票样本(0

数),股票样本是由上市公司的10个财务指标和它的股

票回报率组成的一个11维空间,即S={x1x2x11}。

S i[ j]表示第 i 只股票样本的第 j +1个财务指标(0 j 9),

S i[10]表示第i 只股票样本的回报率。T 代表训练集,即

T={S1S2S n},n只股票样本组成模型训练数据集。V

代表验证集,即V={S1S2S n},n只股票样本组成验证

模型数据集。P代表股票选择模型筛选条件,即P

={p1p2p10},p j为对应表1所示第j个财务指标的筛

选条件。c i代表是否选择第i只股票,选择时等于1,

不选时等于0。P作为筛选条件进行股票选择时,对于第

j个财务指标,若为正指标,股票的这一项指标x j需要不

小于 p j;若为逆指标,股票的这一项指标 x j需

要不大于p j。如果股票的10项指标都满足条件,则该

只股票被选择。反之只要有一项指标不满足,则该只股

票不被选择。

2.3.2目标函数与约束条件

定义原则1证券投资理论中,投资策略是一系列投

资组合的总称,分为积极和消极的投资策略[10]。消极投

资策略是指通过基本面分析和组合投资的方法来获得平

均收益,即获得的平均收益越高,投资策略越好。

定义原则2股票组合投资中股票的平均收益率是指

总收益率除以股票个数,设定投资为等权组合投资。

基于以上原则,所以目标函数定义为选择股票的算

术平均回报率最大值,其公式为:

n

∑c i S i[10]

max i =1 (1)

n

∑c i

i =1

约束条件为:

c

i = 1 (S i[ j] p j+1(0 j 7)&&S i[8] p9&&S i[9] p10) == 1

c

i = 0, (S i[ j] p j+1(0 j 7)&&S i[8] p9&&S i[9] p10) == 0

n

∑c i>1 (2)

i =1

取得最大平均回报率时的P即为最佳的股票选择模

型参数。

3基于浮点数编码的遗传算法及改进

3.1染色体编码

染色体的编码方式有很多种,例如二进制编码、格

戎容,吴萍:基于遗传算法的股票市场选择模型2016,52(18) 169

雷码、浮点数编码、符号编码[11]。传统的遗传算法采取

二进制编码以便于算法的交叉、变异操作。但是本文涉

及的是多维数据操作,二进制编码会增加染色体编码长

度、人为离散化参数取值,并且上市公司各项财务指标

都是小数,所以在本文中采用浮点数编码,可以提高遗

传算法的精度,减少计算量。同时针对采用浮点数编码

在处理一些复杂问题时会发生的停滞现象,本文也提出

了改进策略。

3.2遗传算子

3.2.1选择运算

选择运算把较好的个体按一定规则直接遗传到下一

代群体中,适应度高的个体更容易遗传到下一代群体

中。本文使用轮盘赌选择法[12],各个体被选中的概率Pr i

与其适应度值 F i成正比。设种群规模为 N ,则:

Pr =

F

i i =1 2N (3)

N

i

∑F i

i =1

3.2.2交叉运算

交叉运算是指把2个父代染色体的部分基因按某种

方式交换重组,从而生成新个体,使得遗传算法的搜索

能力大大提升。采用浮点数编码时,交叉运算使用适合

浮点数编码的算术交叉算子[13]:

?x t +1 = ax

t + (1 -a)x t

? A A B

(4)

?

? t +1 t t

?

x

B = (1 -a)x A + ax B

其中,a是[0,1]范围内的随机数。

3.2.3变异运算

变异运算是对群体中的个体串的某些基因座上的基

因值作变动。变异操作使遗传算法具有局部的随机搜索

能力并且可维持群体多样性,以防止出现未成熟收敛现

象。均匀变异算子对于每个变异点从对应基因位的取值

范围内产生一个随机数代替原有基因值[14]。即

x = x min+ r(x max- x min) (5)

其中,r是[0,1]范围内的随机数;x max,x min分别是

该基因位的数值上下限。

3.3基于浮点数编码的遗传算法的改进

3.3.1存在的问题分析

股票样本特征属性较多,数据维数高。在进行股票筛选

的初始种群中,每一个个体P都是随机产生的,由于各样

本股票所属上市公司的发展水平各异,各股票样本财务指标

千差万别,个体P作为筛选条件对股票样本S i进行筛选

时,目标函数约束条件很难满足,即能同时满

足筛选条件S i[j]p j+1(0j7)&&S i[8]p9&&S i[9]p10

的股票非常少。若有股票满足个体,此个体很有可能为

n

非优解或局部最优解;若无股票满足个体,此时∑c i=0,

的非优个体或者无效个体。应用通常的基于浮点数编码的

遗传算法进行股票筛选的过程中,大量非优个体或者无效

个体不易被淘汰,算法就存在容易过早收敛于局部最优解

和向全局最优解收敛速度慢的问题,对遗传进化过程产生

不利影响。

3.3.2改进的自适应交叉变异算子

针对应用遗传算法进行股票筛选存在的问题,需要加

强遗传算法的全局搜索能力,在遗传进化过程中淘汰群体

中过多的非优个体,加快算法的搜索和收敛速度。在遗传

算法中,交叉运算实现了全局搜索能力,变异运算实现了

局部随机搜索能力,因此本文提出改进的自适应交叉变异

概率来提高遗传算法在股票筛选中的全局搜索能力,改进

基于以下原则:

定义原则3在遗传初期群体中,适应度较小的个体

应该采取较大的交叉概率P c和变异概率P m,而适应

度值最大的个体未必是全局最优的个体,为了避免群体

陷入局部最优,适应度较大的个体也应该采取适当大的

P c和 P m。

定义原则4在遗传后期加快收敛于群体最优解的过

程中,适应度较小的个体同样应该采取较大的P c和

P m,而优秀的个体应该被保留,个体的适应度越大,P c

和P m应该越小。

改进的自适应概率公式定义如下:

?

+ k

F avg- F

F < F

?P

c1 F - F avg

? 1

? max avg

? (6)

P

c

= ? F - F avg

?

e F max -F avg

? - k F F

?P c1 2 -i avg

?

? 1 + e iter

? F avg- F

?P + k F < F

m1 3 F - F avg

?

? max avg

? (7)

P

m

= ? F - F avg

?

e

F

max

-F

avg

? - k F F

?P m1 4 -i avg

?

? 1 + e iter

其中,P c1是基准交叉概率,P m1是基准变异概率,k1、

k2、k3、k4是调整系数,F 是个体适应度,F avg是群体平

均适应度,F max是群体最大适应度,iter是总迭代代数,

i是当前代数。

4基于遗传算法改进的K均值聚类

K 均值算法是一种基于梯度下降的贪心算法[15],传

统的K均值算法存在一些弱点:受到随机选取的初始聚

类中心的影响,算法很容易收敛于局部最优解[16],产生

不准确甚至错误的聚类结果。利用遗传算法的全局优化

能力来改进K均值聚类算法,种群中的聚类中心通过选

择、交叉和变异操作不断迭代进化,直至收敛到

目标函数分母为零,显然是无效解。所以初始群体中存全局最优个体,从而克服传统K均值算法存在的局限

1702016,52(18)Computer Engineering and Applications 计算机工程与应用

性并且提高聚类质量。

4.1K 均值聚类算法

K 均值算法是典型的基于距离的聚类算法,即认为两

个对象的距离越近,其相似度就越大[17]。算法最终将所有

对象分为k个簇,使簇内对象具有较高的相似度,而各

簇之间相似度较低。

聚类问题可以描述为:n个点x1x2x n,按照相似

性将其划分为k个集合G1G2G k,满足:

(1)G i≠φi= 1 2k

(2)G i G j=φ;i j= 1 2k ; i ≠ j

k

(3)G i={x1x2x n}

i =1

同时使得总的类内离散度和:

n

2

J

c

=

∑x i -c j (8)

i =1

达到最小。其中c j为第i个样本对应的聚类中心,x i-c j

为第i个样本到对应聚类中心的欧氏距离。

聚类的划分采用最近邻法则,若x i、c j满足:

x i- c j=min x i- c m m =1 2k (9)

则x i属于第j类。

K 均值算法的流程如图1所示。

开始

任意选择K个点作为初始聚类中心

利用公式(9)进行聚类划分

每一个聚类重新计算该类的质心

(类内所有点的均值)

Y

聚类中心是否变化

N

结束

图1 K均值算法流程图

4.2基于遗传算法改进的K均值聚类算法设计

输入股票样本数据集,设置遗传算法参数:聚类个数k

=3,种群规模N=30,交叉概率P c=0.6,变异概率

P m=0.05,迭代代数 iter =100。

输出选取最终群体中适应度值最高的个体,输出聚

类结果。

步骤1染色体编码。

通常聚类问题的数据集规模远大于聚类数目,聚类算

法的结果是求得聚类中心,所以将各个聚类中心编码为染

色体。每个聚类中心涉及10个财务指标属性,则染色体

长度为10?k,采用浮点数编码为:{X1X2X k},X k

={x1x2x10}。这种编码缩短了染色体的长度,能够快速

高效地求解这类复杂的聚类问题。

步骤2初始化种群。

从所有样本中随机抽取k个点作为k个聚类的中

心,重复进行N次,共生成N个初始个体,由此产生

规模为N的第一代种群。

步骤3按照图1的K均值算法流程对每个个体进

行K均值聚类。

步骤4计算群体各个体的适应度。

最准确的聚类结果要求类内相似度高并且类之间相

异度高。现有大多数研究都只以较高的类内相似度作为

衡量指标,虽有不错的效果,但在一些情形下效果不是

很理想。本文采用类内相似和类间相异结合的方式,定

义适应度函数为:

J =

B

c

(10)

J

c

其中B c

=

∑c i-c j,B c 为各聚类中心之间的距离

1 j

和;J c为公式(8)表示的类内离散度和。J c越小表示

类内越紧凑,B c越大表示类间差异度越大,J越大适应

度越高,聚类效果越好。

步骤5按照公式(3)对种群进行选择操作、公式

(4)对种群进行交叉操作、公式(5)对种群进行变异操

作,产生新一代群体。

步骤6重复步骤3~步骤5,直到最优个体的适应度

和群体平均适应度趋于稳定或者迭代次数达到预设代

数iter。

5基于改进遗传算法的股票筛选

输入聚类后的股票样本数据集,设置遗传算法参数:种

群规模N=50,基准交叉概率P c1=0.6,基准变异概率

P m1=0.05,迭代代数 iter =100,调整系数 k1= k2=0.6、

k3= k4=0.05,适应度函数参数 h1=100和 h2=2。

输出选取最终群体中适应度值最高的个体,即为选

股模型的最优参数。

步骤1染色体编码。

采用浮点数编码将10个财务指标参数作为筛选条

件编码为染色体,即{p1p2p10}。

步骤2初始化种群。

从所有样本中随机抽取N个样本,每个样本的10

个财务指标组成一个初始个体,由此产生规模为N的第

一代种群。

步骤3以群体中各个体为筛选条件进行股票筛选,计

算各个体的适应度。

本算法的目的是得出最佳的股票选择模型(即筛选条件),所以选出的股票组合平均回报率越高,模型效果越好,适应度就应该越高,因此可以选择满足筛选条件

戎 容,吴

萍:基于遗传算法的股票市场选择模型

2016,52(18) 171

表2 训练样本

每股收 总资产净 销售净 净资产收 净利润增 总资产增 应收账款 存货周 资产负 经营现金

股票名称

净流量对 回报率/%

益/元

利润率/% 利率/%

益率/% 长率/%

长率/% 周转率/次

转率/次

债率/%

负债比率/%

四方股份 0.022 3 0.172 7 1.523 3 0.28 -44.810 0 9.944 7 0.243 0 0.405 1 30.191 -0.150 -0.10 东方电子 0.004 5 0.643 1 4.822 2 0.30 4.016 1 9.917 9 0.482 7 0.448 5 37.792 -0.024 0.07 宝胜股份

0.035 0

0.256 4

0.887 7

0.88

4.293 5

7.892 3

0.701 0

2.272 4

70.208

-0.025

0.09

的股票的平均回报率作为个体的适应度。但是考虑到选择运算采用轮盘赌方法,平均回报率有可能是负值,而选择运算采用轮盘赌方法不允许适应度出现负值,所以不能直接将平均回报率作为个体适应度,必须先进行转化。定义适应度函数为:

F =

h

1

(11)

h - R

2

n

∑c i S i [10]

其中 R 为平均回报率( R =

i = 1

),当没有股票满

n

c

i

i = 1

足筛选条件时 R 无效,这是最差的个体,所以此时 R 取一个较大的负值(如-99)使得 F 为一个极小的值,以保证在遗传算法的选择运算中这个个体不容易遗传到下一代中。 h 1 为常数 (h 1 > 0) ,h 1 越大不同回报率对应的适应度差异越大。 h 2 也为常数,h 2 大于各样本中回报率的最大值以保证 h 2 - R > 0 ,从而适应度 F > 0 。

步骤4 按照公式(3)对种群进行选择操作。

步骤 5 根据公式(6)定义的改进自适应交叉概率,

采用公式(4)定义的算术交叉方式对种群进行交叉操作,产生新一代群体。

步骤 6 根据公式(7)定义的改进自适应变异概率,

采用公式(5)定义的均匀变异方式对种群进行变异操作,产生新一代群体。

步骤7 重复步骤3~步骤6,直到最优个体的适应度

和群体平均适应度趋于稳定或者迭代次数达到预设代数 iter 。

6 实验与结果分析

根据财务报表统计50 家上市公司2014 年一季度的十项财务指标,统计 2014 年一季度第一个交易日的股票开盘价和2014 年一季度最后一个交易日的股票收盘价格,计算其回报率,组成训练样本数据,数据如表2 所示(限于文章的篇幅,仅给出了部分股票的数据)。资料来源于新浪财经。

训练样本分别使用未改进的和基于遗传算法改进的

K 均值算法进行聚类分析,共进行10 次实验,运行情况如表3 所示。

从表3 可以看出,使用遗传算法改进的算法全部取得全局最优解,有效克服了传统 K 均值算法不稳定的缺陷。改进的 K 均值算法结果比较

聚类算法

最优解(类内

平均值(类内 最优解

离散度和 J c ) 离散度和 J c ) 次数

K 均值

162 361.38 168 180.09 6 遗传算法改进的 K 均值

162 361.38

162 361.38

10

训练样本通过基于遗传算法的 K 均值聚类算法聚类为3 类,聚类结果如下:

第一类:{湘电股份,四方股份,泰豪科技,南洋股

份,国轩高科,深圳惠程,太阳电缆,思源电气,永大集团,中元华电,九洲电气,南风股份,雅百特,茂硕电源,经纬电材}。

第二类:{通达股份,东方电子,宝胜股份,上海电

气,东方电气,特变电工,卧龙电气,恒顺众昇,中超控股,万马股份,三变科技,上风高科,正泰电器,天顺风能,金风科技,汉缆股份,泰胜风能,摩恩电气,沃尔核材,奥特迅,金杯电工,金利华电,和顺电气,许继电气,麦迪电气,特锐德,中能电气,风范股份,平高电气,森源电气,北京科锐,易世达,科泰电源,置信电气}。

第三类:{华仪电气}。

运用 PCA (Principal Component Analysis )算法将样

本数据降维,在二维坐标系中,样本数据点分布及聚类结果如图2 所示。

40

1 20

2 3

2

X

-20

-40

-60 0 200 000 800 600 400 200 200 400

1- 1

- - - - -

X 1

图2 训练样本聚类结果

分别计算三类股票的各项财务指标平均值,结果如

表4所示。

从聚类结果可以看出,第一类股票的净利润增长率指标平均值为负值,其他各项正指标也较二、三两类有较大的差距。很明显这类股票在市场投资中为垃圾股,具有较大的投资风险,所以从样本中剔除第一类中的所有股票。

172

2016,52(18)

Computer Engineering and Applications 计算机工程与应用

表4

各类股票财务指标平均值

分类

每股收 总资产净 销售净 净资产收 净利润增 总资产增 应收账款 存货周 资产负 经营现金净流量 益/元

利润率/%

利率/%

益率/%

长率/%

长率/%

周转率/次

转率/次

债率/%

对负债比率/%

第一类 0.02 0.29 4.88 0.45 -63.96

7.32 0.40 0.64 32.22 -0.08 第二类 0.07 0.89 7.69 1.44 39.65 16.25 0.56 0.83 38.82 -0.08 第三类

0.05

0.61

7.61

1.45

1 034.30

24.86

0.21

0.85

55.58

-0.05

经过第一步聚类筛选后剩余的训练样本分别使用未改进的遗传算法和改进的遗传算法进行基本面选股,共进行10 次实验,运行情况如表5 所示。

表5 改进和未改进的遗传算法结果比较

浮点数编码

最优解

最差解

最优解 收敛到最优解的 的遗传算法 (适应度) (适应度) 次数

平均迭代次数

未改进算法 408.163 289.855 3 56.8 改进的算法

408.163

327.860

7

38.1

从表 5 可以看出,使用改进的算法效果明显,最优解次数增多而收敛到最优解的迭代次数减少,说明改进算法更容易跳出局部最优解,收敛速度更快。

利用改进的遗传算法进行基本面选股,得出选股模

型的最优参数为:(0.005 7,0.074 6,1.847 4,0.599 9,0, 8.382 4,0.007,0.008 5,60.400 7,-0.001 6)。评价该股

票选择模型是否有用,关键是选出的股票的回报率如何,通常的做法是以基准回报率、同期上证综指回报率和同期深证成指回报率为参照物,将选择出的股票的平均回报率与其对比[18]。基准回报率是指样本中全部股票的平均回报率。图3 显示了训练样本的股票选择结果。

80.00

70.00

60.00 /%

50.00

40.00

回报率

30.00

20.00 10.00

0.00

-10.00

-20.00 选择股票

基准回报率

同期上证 同期深证

平均回报率 综指回报率 成指回报率

2014 年一季度

(总股票数50, 75.50% 10.48%-3.73% -11.06%

选择股票数2)

图3 训练样本选择结果

从图3 可以看出,在训练样本中选择模型选出的股票组合的回报率明显超过基准回报以及同期上证综指和深证成指回报率。

为了进一步验证该模型的可靠性和准确性,训练样本外还统计了50 家上市公司2014 年二、三、四季度的相关财务指标和回报率,统计方法同上,组成验证样本数据。数据来源于新浪财经。图 4 显示了验证样本的股票

选择结果。

60.00

50.00

/%

40.00

30.00

报率

20.00

10.00

0.00

-10.00

-20.00 2014 年二季度 2014 年三季度 2014 年四季度

(总股票数50,(总股票数50,(总股票数50,

选择股票数8) 选择股票数4)选择股票数13)

选择股票平均回报率/% 22.13 44.50 48.15 基准回报率/% 7.22 33.90 36.00 同期上证综指回报率/% -3.02 11.92 53.15 同期深证成指回报率/% -9.16 -0.04 36.26

图4 验证样本选择结果

好的效果,选出股票的平均回报率全部高于基准回报率。与同期上证综指和深证成指回报率相比较,除了四季度数据略低于上证综指回报率,其他数据也都处于较

高水平。

7 结束语

本文从股票的基本面出发,利用遗传算法进行股票选择。首先基于遗传算法的聚类分析,从上市公司的盈利能力、成长能力和营运发展水平等方面为初步评估相关股票的优劣提供了很好的依据。然后利用遗传算法较强的全局搜索能力解决最优解问题,得出最佳的股票筛选模型参数。实验证明,使用遗传算法进行基本面选股是切实可行的。由此可见,遗传算法能够为股票投资者提供科学的投资决策。

从图4 可以看出,在验证样本中选择模型依然有很 (下转178 页)

1782016,52(18)Computer Engineering and Applications 计算机工程与应用

该方法可以有效地减少计算时间与迭代次数。通过实验证明该算法相比于传统方法能够得到比较理想的重建结果。

MATLAB实验遗传算法和优化设计

实验六 遗传算法与优化设计 一、实验目的 1. 了解遗传算法的基本原理和基本操作(选择、交叉、变异); 2. 学习使用Matlab 中的遗传算法工具箱(gatool)来解决优化设计问题; 二、实验原理及遗传算法工具箱介绍 1. 一个优化设计例子 图1所示是用于传输微波信号的微带线(电极)的横截面结构示意图,上下两根黑条分别代表上电极和下电极,一般下电极接地,上电极接输入信号,电极之间是介质(如空气,陶瓷等)。微带电极的结构参数如图所示,W 、t 分别是上电极的宽度和厚度,D 是上下电极间距。当微波信号在微带线中传输时,由于趋肤效应,微带线中的电流集中在电极的表面,会产生较大的欧姆损耗。根据微带传输线理论,高频工作状态下(假定信号频率1GHz ),电极的欧姆损耗可以写成(简单起见,不考虑电极厚度造成电极宽度的增加): 图1 微带线横截面结构以及场分布示意图 {} 28.6821ln 5020.942ln 20.942S W R W D D D t D W D D W W t D W W D e D D παπππ=+++-+++?????? ? ??? ??????????? ??????? (1) 其中πρμ0=S R 为金属的表面电阻率, ρ为电阻率。可见电极的结构参数影响着电极损耗,通过合理设计这些参数可以使电极的欧姆损耗做到最小,这就是所谓的最优化问题或者称为规划设计问题。此处设计变量有3个:W 、D 、t ,它们组成决策向量[W, D ,t ] T ,待优化函数(,,)W D t α称为目标函数。 上述优化设计问题可以抽象为数学描述: ()()min .. 0,1,2,...,j f X s t g X j p ????≤=? (2)

遗传算法与优化问题(重要,有代码)

实验十遗传算法与优化问题 一、问题背景与实验目的 遗传算法(Genetic Algorithm—GA),是模拟达尔文的遗传选择和自然淘汰的生物进化过程的计算模型,它是由美国Michigan大学的J.Holland教授于1975年首先提出的.遗传算法作为一种新的全局优化搜索算法,以其简单通用、鲁棒性强、适于并行处理及应用范围广等显著特点,奠定了它作为21世纪关键智能计算之一的地位. 本实验将首先介绍一下遗传算法的基本理论,然后用其解决几个简单的函数最值问题,使读者能够学会利用遗传算法进行初步的优化计算.1.遗传算法的基本原理 遗传算法的基本思想正是基于模仿生物界遗传学的遗传过程.它把问题的参数用基因代表,把问题的解用染色体代表(在计算机里用二进制码表示),从而得到一个由具有不同染色体的个体组成的群体.这个群体在问题特定的环境里生存竞争,适者有最好的机会生存和产生后代.后代随机化地继承了父代的最好特征,并也在生存环境的控制支配下继续这一过程.群体的染色体都将逐渐适应环境,不断进化,最后收敛到一族最适应环境的类似个体,即得到问题最优的解.值得注意的一点是,现在的遗传算法是受生物进化论学说的启发提出的,这种学说对我们用计算机解决复杂问题很有用,而它本身是否完全正确并不重要(目前生物界对此学说尚有争议). (1)遗传算法中的生物遗传学概念 由于遗传算法是由进化论和遗传学机理而产生的直接搜索优化方法;故而在这个算法中要用到各种进化和遗传学的概念. 首先给出遗传学概念、遗传算法概念和相应的数学概念三者之间的对应关系.这些概念如下: 序号遗传学概念遗传算法概念数学概念 1 个体要处理的基本对象、结构也就是可行解 2 群体个体的集合被选定的一组可行解 3 染色体个体的表现形式可行解的编码 4 基因染色体中的元素编码中的元素 5 基因位某一基因在染色体中的位置元素在编码中的位置 6 适应值个体对于环境的适应程度, 或在环境压力下的生存能力可行解所对应的适应函数值 7 种群被选定的一组染色体或个体根据入选概率定出的一组 可行解 8 选择从群体中选择优胜的个体, 淘汰劣质个体的操作保留或复制适应值大的可行解,去掉小的可行解 9 交叉一组染色体上对应基因段的 交换根据交叉原则产生的一组新解 10 交叉概率染色体对应基因段交换的概 率(可能性大小)闭区间[0,1]上的一个值,一般为0.65~0.90 11 变异染色体水平上基因变化编码的某些元素被改变

4遗传算法与函数优化

第四章遗传算法与函数优化 4.1 研究函数优化的必要性: 首先,对很多实际问题进行数学建模后,可将其抽象为一个数值函数的优化问题。由于问题种类的繁多,影响因素的复杂,这些数学函数会呈现出不同的数学特征。除了在函数是连续、可求导、低阶的简单情况下可解析地求出其最优解外,大部分情况下需要通过数值计算的方法来进行近似优化计算。 其次,如何评价一个遗传算法的性能优劣程度一直是一个比较难的问题。这主要是因为现实问题种类繁多,影响因素复杂,若对各种情况都加以考虑进行试算,其计算工作量势必太大。由于纯数值函数优化问题不包含有某一具体应用领域中的专门知识,它们便于不同应用领域中的研究人员能够进行相互理解和相互交流,并且能够较好地反映算法本身所具有的本质特征和实际应用能力。所以人们专门设计了一些具有复杂数学特征的纯数学函数,通过遗传算法对这些函数的优化计算情况来测试各种遗传算法的性能。 4.2 评价遗传算法性能的常用测试函数 在设计用于评价遗传算法性能的测试函数时,必须考虑实际应用问题的数学模型中所可能呈现出的各种数学特性,以及可能遇到的各种情况和影响因素。这里所说的数学特性主要包括: ●连续函数或离散函数; ●凹函数或凸函数; ●二次函数或非二次函数; ●低维函数或高维函数; ●确定性函数或随机性函数; ●单峰值函数或多峰值函数,等等。 下面是一些在评价遗传算法性能时经常用到的测试函数: (1)De Jong函数F1: 这是一个简单的平方和函数,只有一个极小点f1(0, 0, 0)=0。

(2)De Jong 函数F2: 这是一个二维函数,它具有一个全局极小点f 2(1,1) = 0。该函数虽然是单峰值的函数,但它却是病态的,难以进行全局极小化。 (3)De Jong 函数F3: 这是一个不连续函数,对于]0.5,12.5[--∈i x 区域内的每一个点,它都取全局极小值 30),,,,(543213-=x x x x x f 。

TSP问题的遗传算法求解 优化设计小论文

TSP问题的遗传算法求解 摘要:遗传算法是模拟生物进化过程的一种新的全局优化搜索算法,本文简单介绍了遗传算法,并应用标准遗传算法对旅行包问题进行求解。 关键词:遗传算法、旅行包问题 一、旅行包问题描述: 旅行商问题,即TSP问题(Traveling Saleman Problem)是数学领域的一个著名问题,也称作货郎担问题,简单描述为:一个旅行商需要拜访n个城市(1,2,…,n),他必须选择所走的路径,每个城市只能拜访一次,最后回到原来出发的城市,使得所走的路径最短。其最早的描述是1759年欧拉研究的骑士周游问题,对于国际象棋棋盘中的64个方格,走访64个方格一次且最终返回起始点。 用图论解释为有一个图G=(V,E),其中V是顶点集,E是边集,设D=(d ij)是有顶点i和顶点j之间的距离所组成的距离矩阵,旅行商问题就是求出一条通过所有顶点且每个顶点只能通过一次的具有最短距离的回路。若对于城市V={v1,v2,v3,...,vn}的一个访问顺序为T=(t1,t2,t3,…,ti,…,tn),其中ti∈V(i=1,2,3,…,n),且记tn+1= t1,则旅行商问题的数学模型为:min L=Σd(t(i),t(i+1)) (i=1,…,n) 旅行商问题是一个典型组合优化的问题,是一个NP难问题,其可能的路径数为(n-1)!,随着城市数目的增加,路径数急剧增加,对与小规模的旅行商问题,可以采取穷举法得到最优路径,但对于大型旅行商问题,则很难采用穷举法进行计算。 在生活中TSP有着广泛的应用,在交通方面,如何规划合理高效的道路交通,以减少拥堵;在物流方面,更好的规划物流,减少运营成本;在互联网中,如何设置节点,更好的让信息流动。许多实际工程问题属于大规模TSP,Korte于1988年提出的VLSI芯片加工问题可以对应于1.2e6的城市TSP,Bland于1989年提出X-ray衍射问题对应于14000城市TSP,Litke于1984年提出电路板设计中钻孔问题对应于17000城市TSP,以及Grotschel1991年提出的对应于442城市TSP的PCB442问题。

基于遗传算法的股票市场选择模型

基于遗传算法的股票市场选择模型 摘要:为提高投资者在股票市场的收益,解决在证券投资中股票选择这一重要问题,提出一种基于遗传算法的股票选择模型。算法以上市公司的财务指标为样本特征,为克服K-means算法的不稳定性,采用基于遗传算法的K-means算法对同一板块股票进行聚类分析,剔除财务指标较差的一类中的股票。对筛选条件编码,为解决传统遗传算法处理复杂问题时存在的过早收敛现象,提出改进的遗传算子,利用改进的遗传算法寻找使股票市场投资收益最大化的选股模型参数。实验结果表明,该算法在股票选择上具有较好的效果,可供市场投资者借鉴。 关键词:股票选择;遗传算法;聚类分析;投资决策;组合优化 1引言 当今社会人们的理财投资意识日益增强,且越来越多的投资者将眼光投向了股票市场。虽然股票可以给投资者带来可观的收益,但投资者要想获得很好的投资回报,就得利用合理科学的投资策略来选择股票进行投资[1]。 股票选择从基本面而言,就是对上市公司的内在价值进行评估[2]。股票市场具有的长期记忆性使得可以通过数据分析找出股票价格或收益率的长期相关性,同时股票市场具有非线性[3],应用智能算法可以提高分析的精确度和鲁棒性。现有的很多关于股市的研究主要是应用优化算法对股价和股市态势做出预测。如文献[4] 提出一种基于遗传算法的粗糙集属性约简方法和神经网络相结合的模型来预测股价。文献[5]提出基于离群特征模式的支持向量机模型来预测股价波动。这些研究限于对单个股票或大盘价格的预测,对投资者的投资决策缺乏全面指导性。对于股票选择,最传统的基于基本面分析的股票选择方法有欧奈尔基本面CAN SLIM法则、朱雀丁远指数中性策略等经典模型[6]。这些模型大多是研究者通过对历史数据的分析和个人经验提出的,虽然具有一定的效果,但是股票筛选精度一般,灵活性较差。文献[7]定义了股票稳定性值,结合遗传算法和贪婪算法提出股票选择规划方法。此方法很好地规

遗传算法优化的BP神经网络建模[精选.]

遗传算法优化的BP神经网络建模 十一月匆匆过去,每天依然在忙碌着与文档相关的东西,在寒假前一个多月里,努力做好手头上的事的前提下多学习专业知识,依然是坚持学习与素质提高并重,依然是坚持锻炼身体,为明年找工作打下基础。 遗传算法优化的BP神经网络建模借鉴别人的程序做出的仿真,最近才有时间整理。 目标: 对y=x1^2+x2^2非线性系统进行建模,用1500组数据对网络进行构建网络,500组数据测试网络。由于BP神经网络初始神经元之间的权值和阈值一般随机选择,因此容易陷入局部最小值。本方法使用遗传算法优化初始神经元之间的权值和阈值,并对比使用遗传算法前后的效果。 步骤: 未经遗传算法优化的BP神经网络建模 1、随机生成2000组两维随机数(x1,x2),并计算对应的输出y=x1^2+x2^2,前1500组数据作为训练数据input_train,后500组数据作为测试数据input_test。并将数据存储在data中待遗传算法中使用相同的数据。 2、数据预处理:归一化处理。 3、构建BP神经网络的隐层数,次数,步长,目标。 4、使用训练数据input_train训练BP神经网络net。 5、用测试数据input_test测试神经网络,并将预测的数据反归一化处理。 6、分析预测数据与期望数据之间的误差。 遗传算法优化的BP神经网络建模 1、读取前面步骤中保存的数据data; 2、对数据进行归一化处理; 3、设置隐层数目; 4、初始化进化次数,种群规模,交叉概率,变异概率 5、对种群进行实数编码,并将预测数据与期望数据之间的误差作为适应度函数; 6、循环进行选择、交叉、变异、计算适应度操作,直到达到进化次数,得到最优的初始权值和阈值; 7、将得到最佳初始权值和阈值来构建BP神经网络; 8、使用训练数据input_train训练BP神经网络net; 9、用测试数据input_test测试神经网络,并将预测的数据反归一化处理; 10、分析预测数据与期望数据之间的误差。 算法流程图如下:

基于遗传算法的库位优化问题

Logistics Sci-Tech 2010.5 收稿日期:2010-02-07 作者简介:周兴建(1979-),男,湖北黄冈人,武汉科技学院经济管理学院,讲师,武汉理工大学交通学院博士研究生,研究方向:物流价值链、物流系统规划;刘元奇(1988-),男,甘肃天水人,武汉科技学院经济管理学院;李泉(1989-),男,湖北 武汉人,武汉科技学院经济管理学院。 文章编号:1002-3100(2010)05-0038-03 物流科技2010年第5期Logistics Sci-Tech No.5,2010 摘 要:应用遗传算法对邯运集团仓库库位进行优化。在充分考虑邯运集团仓库所存放的货物种类、货物数量、出入库频 率等因素的基础上进行库位预分区规划,建立了二次指派问题的数学模型。利用遗传算法对其求解,结合MATLAB 进行编程计算并得出最优划分方案。 关键词:遗传算法;预分区规划;库位优化中图分类号:F253.4 文献标识码:A Abstract:The paper optimize the storage position in warehouse of Hanyun Group based on genetic algorithm.With thinking of the factors such as goods categories,quantities and frequencies of I/O,etc,firstly,the storage district is planned.Then the model of quadratic assignment problems is build,and genetic algorithm is utilized to resolve the problem.The software MATLAB is used to program and figure out the best alternatives. Key words:genetic algorithm;district planning;storage position optimization 1 库位优化的提出 邯郸交通运输集团有限公司(简称“邯运集团”)是一家集多种业务为一体的大型综合性物流企业。邯运集团的主要业务板块有原料采购(天信运业及天昊、天诚、天恒等)、快递服务(飞马快运)、汽贸业务(天诚汽贸)及仓储配送(河北快运)等。其中,邯运集团的仓储配送业务由河北快运经营,现有仓库面积总共40000㎡,主要的业务范围为医药、日用百货、卷烟、陶瓷、化工产品的配送,其中以医药为主。邯运集团库存货物主要涉及两个方面:一个是大宗的供应商货物,如医药,化工产品等;另一方面主要是大规模的小件快递货物,如日用百货等[1]。经分析,邯运集团在仓储运作方面存在如下问题: (1)存储货物繁多而分拣速度低下。仓库每天到货近400箱,有近200多种规格,缺乏一套行之有效的仓储管理系统。(2)货架高度不当而货位分配混乱。现在采用的货架高度在2米以上,而且将整箱货物直接码垛在货架上,不严格按货位摆放。当需要往货架最上层码放货物需要借助梯子,增加操作难度且操作效率较低。货物在拣货区货架摆放是以件为单位的,分拣和搬运速度较慢。 (3)拣货货架设计不当而仓储效率低下。发货前装箱工作主要由人工协同完成,出库效率低,出错率难以控制。 (4)存储能力和分拣能力不能满足需求。根据邯运集团的业务发展现状及趋势,现有的仓库储存和分拣能力远远达不到集团公司对配送业务量的需求。 当前邯运集团的货位分配主要采用物理地址编码的方式,很少考虑货位分配对仓储管理员工作效率的影响。对其进行库位优化设计不仅直接影响到其库存量的大小、出入库的效率,还间接影响到邯运集团的整体经营效益。本文对邯运集团的仓库货位进行优化时,结合考虑仓库所存放的货物种类、货物数量、出入库频率等因素,对仓库货位进行规划,以提高仓储效率。 2库位预分区规划 在进行仓库货位规划时,作如下假设: (1)货物的存放种类已知; (2)货物每种类的单位时间内存放的数量己知; (3) 每一种货物的存取频率已知。 在仓库货位优化中一个重要的环节即预分区。所谓预分区,是指没有存放货物时的分区,分区时只考虑仓储作业人员的速基于遗传算法的库位优化问题 Optimization of Storage Position in Warehouse Based on Genetic Algorithm 周兴建1,2,刘元奇1,李泉1 ZHOU Xing-jian 1,2,LIU Yuan-qi 1,LI Quan 1 (1.武汉科技学院经济管理学院,湖北武汉430073;2.武汉理工大学交通学院,湖北武汉430063) (1.College of Economics &Management,Wuhan University of Science &Engineering,Wuhan 430073,China; 2.School of Transportation,Wuhan University of Technology,Wuhan 430063,China) !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 38

基于遗传算法的齿轮减速器优化设计

煤矿机械Coal Mine Machinery Vol.30No.12 Dec.2009 第30卷第12期2009年12月 0引言 工程机械中所用电动机的转速较高,为了满足工作机低转速的需要,一般在电动机和工作机之间安装减速器,用来降低电机的转速或增大转矩,减速器是一种机械传动装置,广泛地应用于运输机械、矿山机械和建筑机械等重型机械中。因此,减速器的设计非常重要。 遗传算法(GA)是模拟生物在自然界中优胜劣汰的自然进化过程而形成的一种具有全局范围内优化的启发式搜索算法。这种方法已在很多学科得到广泛的应用,为减速器的优化设计提供有力的保证。因此,本文采用遗传算法对两级齿轮减速器进行优化设计,并通过与惩罚函数法和模拟退火算法等优化方法计算结果进行比较,来探讨适合于减速器的优化设计方法。 1建立数学模型 两级齿轮传动减速器结构如图1所示。该减速器的总中心距 a∑=[m n1z1(1+i1)+m n2z3(1+i2)]/2cosβ(1)式中m n1、m n2—— —高速级与低速级的齿轮法面模 数; i1、i2—— —高速级与低速级传动比; z1、z3—— —高速级与低速级的小齿轮齿数: β—— —2组齿轮组的螺旋角。 1.1设计变量的确定 在进行两级齿轮传动减速器设计时,一般选择齿轮传动独立的基本参数或性能参数,如齿轮的齿数、模数、传动比、螺旋角等为设计变量。两级齿轮传动由4个齿轮组成,分别用z1、z2、z3、z4表示,高速级的传动比由i1表示,低速级传动比由i2表示,两组齿轮组的法面模数分别由m n1和m n2表示,2组齿轮的螺旋角用β表示,由于两级齿轮传动减速器的总传动比i0,在设计时会给出具体数据,并且满足i0=i1i2,可以得出i2=i0/i1,可以确定独立的参数有z1、z3、m n1、m n2、i1和β。因此,可以确定该设计变量X=[z1,z3,m n1,m n2,i1,β]T=[x1,x2,x3,x4,x5,x6]T。 图1减速器结构简图 1.2目标函数的建立 在对减速器进行优化设计时,首先要确定目标函数。确定目标函数的原则是在满足各种性能要求的前提下,使减速器的体积最小,这样设计的减速器既经济又实用,从而达到了优化的目的。要使减速器的体积最小,必须使减速器的总中心距最小。因此,以减速器的中心距最小建立目标函数为 a∑=[x3x1(1+x5)+x4x2(1+i0/x5)] 6 (2)1.3约束条件的确定 为使两级齿轮传动减速器满足强度、设计变量 基于遗传算法的齿轮减速器优化设计* 吴婷,张礼兵,黄磊 (安徽建筑工业学院机电学院,合肥230601) 摘要:对两级齿轮减速器优化设计进行了分析,建立了其优化设计的数学模型,确定了优化设计的约束条件,采用遗传算法对两级齿轮减速器进行优化设计,并通过实例说明,采用遗传算法对减速器进行优化,可以得到更加优化的设计结果。 关键词:减速器;遗传算法;优化设计 中图分类号:TH132文献标志码:A文章编号:1003-0794(2009)12-0009-03 Gear Reducer Optimal Design Based on Genetic Algorithm WU Ting,ZHANG Li-bing,HUANG Lei (School of Mechanical and Electrical Engineering,Anhui University of Architecture,Hefei230601,China)Abstract:T he optimal design of a gear reducer was analyzed,the mathematic model was established, and the restriction condition was confirmed.Design of the gear reducer was optimized with genetic algorithm and the examples showed that design of the gear reducer based on genetic algorithm can gain more optimized result. Key words:reducer;genetic algorithm;optimal design *安徽省教育厅自然基金项目(2006KJ015C) 轴1轴2轴3 z1z2 z3z4 9

基于遗传算法的参数优化估算模型

基于遗传算法的参数优化估算模型 【摘要】支持向量机中参数的设置是模型是否精确和稳定的关键。固定的参数设置往往不能满足优化模型的要求,同时使得学习算法过于死板,不能体现出来算法的智能化优点,因此利用遗传算法(Genetic Algorithm,简称GA)对估算模型的参数进行优化,使得估算模型灵活、智能,更加符合实际工程建模的需求。 【关键词】遗传算法;参数优化;估算模型 1.引言 随着支持向量机估算模型在工程应用的不断深入。研究发现,支持向量机算法(包括LS-SVM算法)存在着一些本身不可避免的缺陷,最为突出的是参数的选取和优化问题,以往在参数选取方面,一般依靠专家系统或者设定初始值盲目搜寻等等,在实际应用必然会影响模型的精准度,造成一定影响。如何选取合理的参数成为支持向量机算法应用过程中应用中关注的问题,同时也是目前应用研究的重点。而常用的交叉验证试算的方法,不仅耗时,且搜索目的不清,使得资源浪费,耗时耗力。不能有效的对参数进行优化。 针对参选取的问题,本文使用GA算法对模型中的参数设置进行优化。 2.遗传算法 2.1 遗传算法的实施过程 遗传算法的实施过程中包括了编码、产生群体、计算适应度、复制、交换、变异等操作。图1详细的描述了遗传算法的流程。 其中,变量GEN是当前进化代数;N是群体规模;M是算法执行的最大次数。 遗传算法在参数寻优过程中,基于生物遗传学的基本原理,模拟自然界生物种群的“物竞天则,适者生存”的自然规律。把自变量看作生物体,把它转化成由基因构成的染色体(个体),把寻优的目标函数定义为适应度,未知函数视为生存环境,通过基因操作(如复制、交换和变异等),最终求出全局最优解。 2.2 GA算法的基本步骤 遗传算法操作的实施过程就是对群体的个体按照自然进化原则(适应度评估)施加一定的操作,从而实现模型中数据的优胜劣汰,使得进化过程趋于完美。从优化搜索角度出发,遗传算法可使问题的解,一代一代地进行优化,并逼近最优解。 通常采用的遗传算法的工作流程和结果形式有Goldberg提出的,常用的GA 算法基本步骤如下: ①选择编码策略,把参数集合X和域转换为位串结构空间S。常用的编码方法有二进制编码和浮点数编码。 ②定义合适的适应度函数,保证适应度函数非负。 ③确定遗传策略,包括选择群体大小,选择、交叉、变异方法,以及确定交叉概率、变异概率等其它参数。 ④随机初始化生成群体N,常用的群体规模:N=20~200。 ⑤计算群体中个体位串解码后的适应值。 ⑥按照遗传策略,运用选择、交叉和变异算子作用于群体,形成下一代群体。 ⑦判断群体性能是否满足某一个指标,或者以完成预订迭代次数,若满足则

基本遗传算法及应用举例

基本遗传算法及应用举例 遗传算法(Genetic Algorithms)是一种借鉴生物界自然选择和自然遗传机制的随机、高度并行、自适应搜索算法。遗传算法是多学科相互结合与渗透的产物。目前它已发展成一种自组织、自适应的多学科技术。 针对各种不同类型的问题,借鉴自然界中生物遗传与进化的机理,学者们设计了不同的编码方法来表示问题的可行解,开发出了许多不同环境下的生物遗传特征。这样由不同的编码方法和不同的遗传操作方法就构成了各种不同的遗传算法。但这些遗传算法有共同的特点,即通过对生物的遗传和进化过程中的选择、交叉、变异机理的模仿来完成对最优解的自适应搜索过程。基于此共同点,人们总结出了最基本的遗传算法——基本遗传算法。基本遗传算法只使用选择、交叉、变异三种基本遗传操作。遗传操作的过程也比较简单、容易理解。同时,基本遗传算法也是其他一些遗传算法的基础与雏形。 1.1.1 编码方法 用遗传算法求解问题时,不是对所求解问题的实际决策变量直接进行操作,而是对表示可行解的个体编码的操作,不断搜索出适应度较高的个体,并在群体中增加其数量,最终寻找到问题的最优解或近似最优解。因此,必须建立问题的可行解的实际表示和遗传算法的染色体位串结构之间的联系。在遗传算法中,把一个问题的可行解从其解空间转换到遗传算法所能处理的搜索空间的转换方法称之为编码。反之,个体从搜索空间的基因型变换到解空间的表现型的方法称之为解码方法。 编码是应用遗传算法是需要解决的首要问题,也是一个关键步骤。迄今为止人们已经设计出了许多种不同的编码方法。基本遗传算法使用的是二进制符号0和1所组成的二进制符号集{0,1},也就是说,把问题空间的参数表示为基于字符集{0,1}构成的染色体位串。每个个体的染色体中所包含的数字的个数L 称为染色体的长度或称为符号串的长度。一般染色体的长度L 为一固定的数,如 X=1010100 表示一个个体,该个体的染色体长度L=20。 二进制编码符号串的长度与问题所要求的求解精度有关。假设某一参数的取值范围是[a ,b],我们用长度为L 的二进制编码符号串来表示该参数,总共能产生L 2种不同的编码,若参数与编码的对应关系为 00000000000……00000000=0 →a 00000000000……00000001=1 →a+δ ? ? ? ……=L 2-1→b 则二进制编码的编码精度1 2--= L a b δ 假设某一个个体的编码是kl k k k a a a x 21=,则对应的解码公式为 )2(121 ∑=---+=L j j L kj L k a a b a x 例如,对于x ∈[0,1023],若用长度为10的二进制编码来表示该参数的话,则下述符号串:

基于数据挖掘的遗传算法

基于数据挖掘的遗传算法 xxx 摘要:本文定义了遗传算法概念和理论的来源,介绍遗传算法的研究方向和应用领域,解释了遗传算法的相关概念、编码规则、三个主要算子和适应度函数,描述遗传算法计算过程和参数的选择的准则,并且在给出的遗传算法的基础上结合实际应用加以说明。 关键词:数据挖掘遗传算法 Genetic Algorithm Based on Data Mining xxx Abstract:This paper defines the concepts and theories of genetic algorithm source, Introducing genetic algorithm research directions and application areas, explaining the concepts of genetic algorithms, coding rules, the three main operator and fitness function,describing genetic algorithm parameter selection process and criteria,in addition in the given combination of genetic algorithm based on the practical application. Key words: Data Mining genetic algorithm 前言 遗传算法(genetic algorithm,GAs)试图计算模仿自然选择的过程,并将它们运用于解决商业和研究问题。遗传算法于20世界六七十年代由John Holland[1]发展而成。它提供了一个用于研究一些生物因素相互作用的框架,如配偶的选择、繁殖、物种突变和遗传信息的交叉。在自然界中,特定环境限制和压力迫使不同物种竞争以产生最适应于生存的后代。在遗传算法的世界里,会比较各种候选解的适合度,最适合的解被进一步改进以产生更加优化的解。 遗传算法借助了大量的基因术语。遗传算法的基本思想基于达尔文的进化论和孟德尔的遗传学说,是一类借鉴生物界自然选择和自然遗传机制的随机搜索算法。生物在自然界的生存繁殖,显示对其自然环境的优异自适应能力。受其启发,人们致力于对生物各种生存特性的机制研究和行为模拟。通过仿效生物的进化与遗传,根据“生存竞争”和“优胜劣汰”的原则,借助选择、交叉、变异等操作,使所要解决的问题从随机初始解一步步逼近最优解。现在已经广泛的应用于计算机科学、人工智能、信息技术及工程实践。[2]在工业、经济管理、交通运输、工业设计等不同领域,成功解决了许多问题。例如,可靠性优化、流水车间调度、作业车间调度、机器调度、设备布局设计、图像处理以及数据挖掘等。遗传算法作为一类自组织于自适应的人工智能技术,尤其适用于处理传统搜索方法难以解决的复杂的和非线性的问题。 1.遗传算法的应用领域和研 究方向 1.1遗传算法的特点 遗传算法作为一种新型、模拟生物进化过程的随机化搜索方法,在各类结 构对象的优化过程中显示出比传统优 化方法更为独特的优势和良好的性能。 它利用其生物进化和遗传的思想,所以 它有许多传统算法不具有的特点[3]: ※搜索过程不直接作用在变量上,而是 作用于由参数集进行了编码的个体 上。此编码操作使遗传算法可以直接 对结构对象进行操作。 ※搜索过程是从一组解迭代到另一组 解,采用同时处理群体中多个个体的 方法,降低了陷入局部最优解的可能 性,易于并行化。

遗传算法电机优化设计简介

收稿日期:20001225 综 述 遗传算法电机优化设计简介 李鲲鹏,胡虔生 (东南大学,南京210096) B rief I ntroduction of Motor Optimizing Design B ased on G enetic Algorithms L I Kun -peng ,HU Qian -sheng (S outheast University ,Nanjing 210096,China ) 摘 要:介绍了遗传算法的基本思想及其特点,实现了基于遗传算法的电机优化设计,讨论了保证其全局收敛性的方法,最后给出了基于遗传算法的电机优化设计实例。 关键词:电机优化设计;遗传算法;全局收敛性中图分类号:T M302 文献标识码:A 文章编号:1004-7018(2001)04-0032-02 Abstract :In this paper ,the essence and a pplications of genetic alg orithms are friendly introduced.Based on com paris ons between ge 2netic alg orithms and conventional methods ,the a pplication of genetic alg orithm to motor design is im plemented.In this process ,the meth 2ods to improve the global convergence of genetic alg orithm are dis 2cussed.Finally ,the results of the optimization of three -phase electri 2cal machine design based on genetic alg orithms are presented. K eyw ords :motor optimal design ;genetic alg orithms (G A );glob 2al convergence 1遗传算法的基本思想及其特点 遗传算法是模拟生物进化机制的一种现代优化计算方法。其基本思想是:首先通过编码操作将问题空间映射到编码空间(如[0,1]L ),然后在编码空间内进行选择、交叉、变异三种遗传操作及其循环迭代操作,模拟生物遗传进化机制,搜索编码空间的最优解,最后逆映射到原问题空间,从而得到原问题的最优解。选择操作模拟了个体之间和个体与环境之间的生存竞争,优良个体有更多的生存繁殖机会。在这种选择压力作用下,个体之间通过交叉、变异遗传操作进行基因重组,期望得到更优秀的后代个体,在这场竞争中胜出。选择、交叉、变异遗传操作都是以概率值进行的。这些概率值与当时生存环境和个体适应能力密切相关。从这里可以看出遗传算法是一种随机性搜索算法,但是它不同于传统的随机搜索算法。遗传算法通过交叉算子(Cross over operator )和变异算子(Mutation Operator )的协同作用确保状态空间([0,1]L )各点的概 率可达性,在选择算子(Selection Operator )的作用下保证迭代进程的方向性。 2电机优化设计的数学模型和一般优化方法 电机优化设计的一般数学模型: min/max :f (x ) g i (X )≤0,i =1,2,3,…,m X j ∈[a j ,b j ],j =1,2,3,…,n (1) 其中:X =[x 1,x 2,x 3,…,x n ]为设计参量即电磁系统的参数,如冲片尺寸、绕组参量等。g i (X )(i =1,2,3,…,m )为约束条件,如性能约束和一般约束。由于目标函数f (X )和约束条件g i (X )都是X 的高度非线性函数,因此电机优化设计问题是求解约束非线性最优化问题。 由于电机设计的目标函数f (X )不是一个单纯的数学表达式,而是一段电机设计分析计算程序,在计算目标函数值的同时还计算各个性能指标值,即约束条件函数值,因此利用目标函数的梯度确定搜索方向的优化方法在电机优化设计中是相当繁琐,直接利用目标函数值的优化方法在电机优化设计中具有优势,遗传算法通过选择、交叉、变异算子的协同作用,既保证了搜索的方向性,又满足了状态空间各点的概率可达性,具有概率意义下的全局收敛性。遗传算法继承了传统确定性算法和一般随机算法的优点,是一种新的启发式随机搜索算法。 遗传算法对约束的处理有两种思路:增加修正算子将约束条件反映在遗传算子的设计中;利用惩罚函数法将有约束优化问题转化为无约束优化问题。在电机优化设计中常采取后者。基于遗传算法的惩罚函数主要分为静态惩罚函数、动态惩罚函数和自适应惩罚函数三种[4]。自适应惩罚函数法效果较好,但较复杂; 静态、动态惩罚函数相对较简单,经常使用。约束条件 23 微特电机 2001年第4期

第七章遗传算法应用举例

第七章 遗传算法应用举例 遗传算法提供了一种求解非线性、多模型、多目标等复杂系统优化问题的通用框架,它不依赖于问题具体的领域。随着对遗传算法技术的不断研究,人们对遗传算法的实际应用越来越重视,它已经广泛地应用于函数优化、组合优化、自动控制、机器人学、图象处理、人工生命、遗传编码、机器学习等科技领域。遗传算法已经在求解旅行商问题、背包问题、装箱问题、图形划分问题等多方面的应用取得了成功。本章通过一些例子,介绍如何利用第五章提供的遗传算法通用函数,编写MATLAB 程序,解决实际问题。 7.1 简单一元函数优化实例 利用遗传算法计算下面函数的最大值: ()sin(10) 2.0[1,2]f x x x x π=?+∈-, 选择二进制编码,种群中个体数目为40,每个种群的长度为20,使用代沟为0.9,最大遗传代数为25。 下面为一元函数优化问题的MA TLAB 代码。 figure(1); fplot ('variable.*sin(10*pi*variable)+2.0',[-1,2]); %画出函数曲线 % 定义遗传算法参数 NIND= 40; % 个体数目(Number of individuals) MAXGEN = 25; % 最大遗传代数(Maximum number of generations) PRECI = 20; % 变量的二进制位数(Precision of variables) GGAP = 0.9; % 代沟(Generation gap) trace=zeros (2, MAXGEN); % 寻优结果的初始值 FieldD = [20;-1;2;1;0;1;1]; % 区域描述器(Build field descriptor) Chrom = crtbp(NIND, PRECI); % 初始种群 gen = 0; % 代计数器 variable=bs2rv(Chrom,FieldD); % 计算初始种群的十进制转换 ObjV = variable.*sin (10*pi*variable)+2.0; % 计算目标函数值 while gen < MAXGEN, FitnV = ranking (-ObjV); % 分配适应度值(Assign fitness values) SelCh = select ('sus', Chrom, FitnV , GGAP); % 选择 SelCh = recombin ('xovsp',SelCh,0.7); % 重组 SelCh = mut(SelCh); % 变异 variable=bs2rv(SelCh,FieldD); % 子代个体的十进制转换 ObjVSel =variable.*sin(10*pi*variable)+2.0; % 计算子代的目标函数值 [Chrom ObjV]=reins(Chrom,SelCh,1,1,ObjV ,ObjVSel); % 重插入子代的新种群 gen = gen+1; % 代计数器增加 % 输出最优解及其序号,并在目标函数图象中标出,Y 为最优解,I 为种群的序号 [Y,I]=max(ObjV),hold on; plot (variable (I),Y , 'bo'); trace (1,gen)=max (ObjV); %遗传算法性能跟踪

遗传算法的研究及应用

龙源期刊网 https://www.360docs.net/doc/372436401.html, 遗传算法的研究及应用 作者:彭志勇邓世权 来源:《计算机光盘软件与应用》2013年第07期 摘要:遗传算法是一种典型的优化搜索算法,它的构造是使用人工的方式,并对生物遗传学和自然选择机理来进行模仿,是一种典型的数学仿真,而这种数学仿真是通过生物进化的过程来进行的,它是进化计算的一种非常重要的形式,它可以应用与生活中的很多领域。 关键词:遗传算法;函数优化;生产调度;自动控制 中图分类号:TP183文献标识码:A文章编号:1007-9599 (2013) 07-0000-02 遗传算法是一种典型的优化搜索算法,它的构造是使用人工的方式,并对生物遗传学和自然选择机理来进行模仿,是一种典型的数学仿真,而这种数学仿真是通过生物进化的过程来进行的,它是进化计算的一种非常重要的形式。与传统的数学模型进行比较,遗传算法有很多的不同的地方,因为它能够解决很多复杂的问题,而传统的数学模型却没办法做到。 1遗传算法的理论研究 1.1遗传算法的由来。美国密西根大学的霍兰德(Holland)将该算法应用于自然和人工系统的自适应行为的研究之中,并且在二十世纪七十年代中期,出版他的第一部著作《自然与人工系统中的适应》。随后,Holland与他的学生们将该算法进行了大力的推广,并把它应用到优化及机器学习等问题之中,而且正式定名为遗传算法。 1.2遗传算法的发展。遗传算法的兴起于20世纪70年代,而到了20世纪80年代的时 候,它正好属于一个发展中的过程,到了20世纪90年代时,它已经发展到了颠疯时刻。为一种实用性较强而又很有效率的优化技术,遗传算法的发展还是非常迅速,在国内外已经造成了非常大的影响力。 1.3遗传算法的基本思想。遗传算法是从一个种群(population)开始的,而这个种群代表问题可能潜在解集的,一个种群是由经过基因(gene)编码(coding)的一定数目的个体(individual)所组成。染色体是遗传物质的主要载体,它是由多个基因的集合,其内部表现是某种基因组合决定的。自从初始种群产生以后,按照适者生存和优胜劣汰的原理,逐代(generation)演化产生出越来越好的近似解。在每一代,根据问题域中个体的适应度(fitness)大小来挑选(selection)个体,遗传算法是采纳了选择、交叉、变异、迁移、局域 与邻域等自然进化模型,并借助于自然遗传学的遗传算子(genetic operators)进行组合交叉(crossover)和变异(mutation),从而产生出代表新的解集的种群。 遗传算法和传统搜索算法有很大的不同,它是通过一组随机产生的初始解开始搜索过程。染色体是类似于二进制串的一串符号,对于染色体的测量,我们通常是用适应度来它的好坏

matlab基本遗传算法应用实例

基本遗传算法应用实例。用基本遗传算法求下面函数的最大值 10090060)(23++-=x x x x f 300≤≤x 个体数目取50,最大进化代数取100,离散精度取0.001,杂交概率取0.9,变异概率取0.004 1、在editor 中建立基本遗传算法函数:GA 程序如下: function[xv,fv]=GA(fitness,a,b,NP,NG,pc,pm,eps) %待优化的目标函数:fitness %自变量下界:a %自变量上界:b %种群个体数:NP %最大进化代数:NG %杂交概率:pc %自变量概率:pm %自变量离散精度:eps %目标函数取最小值时的自变量值:xm %目标函数的最小值:fv L=ceil(log2((b-a)/eps+1)); %根据离散精度,确定二进制编码需要的码长 x=zeros(NP,L); for i=1:NP x(i,:)=Initial(L);%种群初始化 fx(i)=fitness(Dec(a,b,x(i,:),L)); %个体适应值 end for k=1:NG sumfx=sum(fx); %所有个体适应值之和 px=fx/sumfx; %所有个体适应值的平均值 ppx=0; ppx(1)=px(1); for i=2:NP %用于轮盘赌策略的累加 ppx(i)=ppx(i-1)+px(i); end for i=1:NP sita=rand(); for n=1:NP if sita<=ppx(n) SelFather=n; %根据轮盘赌策略确定的父亲 break; end end Selmother=floor(rand()*(NP-1))+1; %随机选择母亲 posCut=floor(rand()*(L-2))+1; %随机选择交叉点 r1=rand(); if r1<=pc %交叉

相关文档
最新文档