- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
遗传算法课件宣讲;五.遗传算法的各种变形
5.1其它编码方法
5.2遗传运算中的问题
5.3适值函数的标定(Scaling)
5.4选择策略
5.5停止准则
六. 应用;5.1 其它编码方法
顺序编码:用1到N的自然数的不同顺序来
编码,此种编码不允许重复,即
且 ,又称自然数编码。
该法适用范围很广:指派问题、旅行商问题和单机调度问题等等。
合法性问题:是否符合采用的编码规则的问题;实数编码: ,R为实数集
特征:方便运算简单,但反映不出基因的特征
整数编码类似于顺序编码,但编码允许重复
适用于:新产品投入,时间优化,伙伴挑选
例:3212345 对顺序编码来说是不合法的,而
对整数编码来说是合法的;010200不合法的01
编码;;5.2 遗传运算中的问题
在顺序编码遗传运算的过程中会遇见不合法
的编码,应战的策略有二:拒绝或修复。
例如:经双切点交叉后,后代编码不合法
21 | 345 | 67 21 | 125 | 67
43 | 125 | 76 43 | 345 | 76
我们采用下面的修复策略使以上的编码合法。;顺序编码的合法性修复:
交叉修复策略,分为以下几种:
部分映射交叉
顺序交叉
循环交叉;部分映射交叉(PMX) ( Partially Mapped Crossover):用特别的修复程序解决简单的双切点交叉引起的非法性,步骤:
⑴选切点X,Y;
⑵交换中间部分;
⑶确定映射关系;
⑷将未换部分按映射关系恢复合法性。;PMX例题:;顺序交叉( OX )Order Crossover:可看做是带有不同修复程序的部分映射交叉的变形。
OX步骤:
⑴ 选切点X,Y;
⑵ 交换中间部分;
⑶ 从切点Y后第一个基因起列出原顺序,去掉已有基因;
⑷ 从切点Y后第一个位置起,按顺序填入。;OX例题:
;OX的特点:
较好的保留了相邻关系、先后关系,满足了TSP
问题的需要,但不保留位值特征。
;循环交叉(CX) Cycle Crossover
基本思想:子串位置上的值必须与父母的相同
位置上的位值相等。
CX步骤:
⑴ 选 的第一个元素作为 的第一位,
选 的第一个元素作为 的第一位;;⑵ 到 中找 的第一个元素赋给 的相对位置…,重复此过程,直到 上得到 的第一个元素为止,称为一个循环;
⑶ 对最前的基因按 、 基因轮替原则重复以上过程;
⑷ 重复以上过程,直到所有位都完成。;CX
例题:;CX的特点:
与OX的特点不同的是, CX较好的保留了位值
特征,适合指派问题;而OX较好的保留了相邻
关系、先后关系满足了TSP问题的需要。;变异的修复策略
换位变异(最常用)是随机地在染色体上选取两个位置,交换基因的位值。
例: 4 3 1 2 5 6 7 4 5 1 2 3 6 7
移位变异:任选一位移到最前
例: 4 3 1 2 5 6 7 5 4 3 1 2 6 7;实数编码的合法性修复
交叉
单切点交叉
;双切点交叉(与单切点交叉类似)
该方法最大的问题:如何在实际优化中保持可行性。;五.GA的各种变形(17);变异
位值变异:
任选一位加Δ(变异步长),
例:
;向梯度方向变异
缺点:只能用于目标函数可微的问题。
例:对于最大化问题可采用如下操作:
优点:考虑到了问题本身的性质,效率较高。但染色体种群也可能因此而趋于聚集,导致种群的多样性较差。
;5.3 适值函数的标定(Scaling)
;标定的目的:
使适值函数不会太大,有一定差别
选择压力的概念:
选择压力是种群好、坏个体被选中的概率
之差,差大称为选择压力大。
注意:上述概念中的“差大小”是相对于适值函数而言的。;局部搜索、广域搜索与选择压力的关系
局部搜索与广域搜索是GA中的一对矛盾,只注重局部搜索很可能陷入局优,只注重广域搜索则会导致精确开发能力不强。因此,好的算法要将以上二者综合考虑。一般来说,算法开始时应注重广域搜索,通过使用较小的选择压力来实现;随着迭代的进行,逐步偏重于局部搜索,通过使用较大的选择压力来实现。;适值的标定方法
线性标定:
函数表达式: ,
为目标函数, 为适值函数;对 ,
=1, =
文档评论(0)