- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第二章 基本遗传算法及进第二章 基本遗传算法及改进.doc
PAGE
PAGE 30
第二章 基本遗传算法及改进
Holland创建的遗传算法是一种概率搜索算法,它利用某种编码技术作用于称为染色体的数串,其基本思想是模拟由这些串组成的个体进化过程。该算法通过有组织地、然而是随机地进行信息交换,重新组合那些适应性好的串。在每一代中,利用上一代串结构中适应好的位和段来生成一个新的串的群体;作为额外增添,偶尔也要在串结构中尝试用新的位和段来替代原来的部分。
遗传算法是一类随机优化算法,但是它不是简单的随机走动,它可以有效地利用已经有的信息处理来搜索那些有希望改善解质量的串。类似于自然进化,遗传算法通过作用于染色体上的基因,寻找好的染色体来求解问题。与自然界相似,遗传算法对待求解问题本身一无所知,它所需要的仅是对算法所产生的每个染色体进行评价,并基于适应度值来改变染色体,使适用性好的染色体比适应性差的染色体有更多的繁殖机会。
2.1 遗传算法的运行过程
遗传算法模拟了自然选择和遗传中发生的复制、交叉和变异等现象,从任一初始种群(population)出发,通过随机选择、交叉和变异操作,产生一群更适应环境的个体,使群体进化到搜索空间中越来越好的区域,这样一代一代地不断繁衍进化,最后收敛到一群最适应环境的个体(Individual),求得问题的最优解。
2.1.1 完整的遗传算法运算流程
交叉
遗传算法的一般步骤如图2.1所示。
解
1100101010
1011011101
0011001010
1010110001
1100101010
1011011101
1100101110
1011011001
0011001010
译码
适值计算
1100101010
1011011101
0011001010
1010110001
解
转轮
编码
选择
评估
变异
0011011010
图2.1 遗传算法的一般步骤
完整的遗传算法运算流程可以用图2.2来描述。
编码成位串
实际问题参数集
计算适应值
种群1
统计结果
选择与遗传
经过优化的一个或多个参数集(由解码得到)
多个参数集合
种群2
改善或解决实际问题群2
随机算子
位串解释得到参数
计算目标函数
函数值向适值映射
适值调整
三种基本遗传算子:
选择算子
交叉算子
变异算子
种 群1 种 群2
图2.2 遗传算法运算流程
图1.3 遗传算法运算流程
由图2.2可以看出,使用上述三种遗传算子(选择算子、交叉算子、变异算子) 的遗传算法的主要运算过程如下:
(1) 编码:解空间中的解数据,作为遗传算法的表现型形式。从表现型到基因型的映射称为编码。遗传算法在进行搜索之前先将解空间的解数据表示成遗传空间的基因型串结构数据,这些串结构数据的不同组合就构成了不同的点。
(2) 初始群体的生成:随机产生N个初始串结构数据,每个串结构数据称为一个个体,N个个体构成了一个群体。遗传算法以这N个串结构作为初始点开始迭代。设置进化代数计数器t←0;设置最大进化代数T;随机生成M个个体作为初始群体P(0) 。
(3) 适应度值评价检测:适应度函数表明个体或解的优劣性。对于不同的问题,适应度函数的定义方式不同。根据具体问题,计算群体P(t) 中各个个体的适应度。
(4) 选择:将选择算子作用于群体。
(5) 交叉:将交叉算子作用于群体。
(6) 变异:将变异算子作用于群体。群体P(t) 经过选择、交叉、变异运算后得到下一代群体P(t+1)。
(7) 终止条件判断:若t≤T,则t←t+1,转到步骤(2);若tT,则以进化过程中所得到的具有最大适应度的个体作为最优解输出,终止运算。
从遗传算法运算流程可以看出,进化操作过程简单,容易理解,它给其他各种遗传算法提供了一个基本框架。
一个简单的遗传算法被Goldberg用来进行轮廓描述,并用来举例说明遗传算法的基本组成。t代种群用变量P(t)表示,初始种群是随机设计的P(0)。简单遗传算法的伪代码描述如下:
2.1.2 遗传算法的三个基本操作procedure GA
begin
t = 0;
initialize P(t);
evaluate P(t);
while not finished do
begin
t = t + 1;
select P(t) from P(t -1);
reproduce pairs in P(t);
evaluate P(t);
end
end.
遗传算法有三个基本操作:选择(Selection)、交叉(Crossover)和变异(Mutation)。
(1) 选择。选择的目的是为了从当前群体中选出优良的个体,使它们有机会作为父代为
原创力文档


文档评论(0)