第四章_遗传算法
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
11111111 11111111 2l 1 B
其中,
B A l 2 1
假设某一个个体的编码是:
X : xl xl 1 xl 2 x2 x1
则上述二进制编码所对应的解码公式为:
B A l x B l bi 2i 1 2 1 2l 1
其他编码方法:
上取得最大值的点 x0
1)编码:在区间[0,31]上的整参数x可用一个5位的二进制位串进行 编码,x的值直接对应二进制位串的数值:
x 0 00000 x 31 11111
2)初始种群的产生:用抛硬币的方法随机产生一个由4个位串组成的初 始种群。
01101 11000 01000 10011
eval(v1 ) f ( x1 ) 1.586345 eval(v2 ) f ( x2 ) 0.078878 eval(v3 ) f ( x3 ) 2.25065
不难看出,染色体v 3 是最优的,因为它所对应的适应值最大。
(4)遗传操作 假设 v2 和 v 3染色体发生交叉,交叉点为高位第5位遗传因子:
遗传算法的工作示意图
实际问题参数集 编码成位串形式 种群1 计算适配值
复制 交叉 变异
选择和遗传 统计结果 种群2
随机 算子
种群1 ← 种群2
经过优化的一个或多个参数值 改善或解决实际问题
v1 (1000101110 1101010001 ) 11 v2 (0000001110 0000000100 ) 00 v3 (1110000000 1111110001 ) 01
分别表示:
x1 0.637197 x2 0.958973 x3 1.627888
目标函数值如下:
fi / fi
交叉 简单的交叉操作分两步实现 第一步:将新复制产生位串个体随机两两配对; 第二步:随机地选择交叉点,对匹配的位串进行 交叉繁殖,产生一对新的位串。
例:假设有如下八位长的两个个体:
P1
1 1
0 1
0 0 0 1
1 1 1 0
1 0 0 1
P2
产生一个在1~7之间的随机数c,假设现在产生的是3,将P1和P2的低三位 交换:
选择
选择是指具有精选的能力,它决定生物进化 的方向。在进化过程中,有的要保留,有的要 被淘汰。 自然选择是指生物在自然界的生存环境中适 者生存,不适者被淘汰的过程。通过不断地自 然选择,有利于生存的变异就会遗传下去,积 累起来,使变异越来越大,逐步产生了新的物 种。
生物就是在遗传、变异和选择三种因素的综合作 用过程中,不断地向前发展和进化。 选择是通过遗传和变异起作用的,变异为选择提 供资料,遗传巩固与积累选择的资料,而选择则能 控制变异与遗传的主向,使变异和遗传向着适应环 境方向发展。 这样,生物就会从简单到复杂、从低到高级不断 向前发展。
f ( x) x 2
01101 11000 11000 10011
2 1 4 3
总和 平均 最大值
4 4 2 2
01100 11001 11011 10000
12 25 27 16
144 625 729 256 1754
439
729
6)变异: 取变异概率Pm=0.001,则平均每1000位中才有一位变异。 由4个位串组成的种群共有4×5=20位,则变异的期望值为 20×0.001=0.02(位)。事实上,在我们的这个单代遗传的实 验中没有变异发生。
4)遗传算法的寻优规则是由概率决定的,而非确定性的。
5)遗传算法在解空间进行高效启发式搜索,而非盲目地穷举 或完全随机搜索。
6)遗传算法对于待寻优的函数基本无限制,因而应用范围较 广。
7)遗传算法具有并行计算的特点,因而可通过大规模并行计 算来提高计算速度。 8)遗传算法更适合大规模复杂问题的优化。 9)遗传算法计算简单,功能强。
P1的高五位与P2的低三位组成数串10001001,这就是P1和P2的一个后代 Q1个体;
P2的高五位与P1的低三位组成数串11011110,这就是P1和P2的另一个后代 Q2个体。
1 1
0 1
0 0
0 1
1 1
1 0
1 0
0 1
1
0
0
0
1
0
0
1
1
1
0
1
1
1
1
0
交叉点
交叉点
变异 变异就是某个字符串某一位的值偶然的(概率 很小的)随机的改变,即在某些特定位置上简单地 把1变成0或反之。
二进制编码
例:假设某一参数的取值范围是[A,B],A<B。用长度 l 的二进制 l 编码来表示该参数,将[A,B]等份成 2 1个子部分,记每一个等 l 分的长度为 ,则它能够产生 2 种不同的编码,参数编码的对应关系 如下:
00000000 00000000 0 A 00000000 00000001 1 A
eval(v2 ) f (0.998113 0.940865 ) eval(v3 ) f (1.666028 2.459245 )
可以看出,子代的适应值比父代高。
(5)算法参数 遗传算法的主要参数有群体规模和算法执行的最大代数目,次要参数有 复制概率、交叉概率和变异概率等参数。 针对本例,使用如下参数:群体规模为了,交叉概率为0.25,变异概率 为0.01。
3)计算适配值及选择率: ① 对初始种群的各个体位串解码,得到相应的参数x的值; ② 由参数值计算目标函数值 f ( x) x 2; ③ 由目标函数值得到相应个体位串的适配值(直接取目标函数值); ④ 计算相应的选择率(选择复制的概率);
Pselect
f
fi
i
⑤ 计算期望的复制数
f i / f i ,计算结果:
第四章 遗传算法
Leabharlann Baidu
遗传算法(Genetic Algorithms)
遗传算法是一种基于自然选择和基因遗传学 原理的优化搜索方法。
研究目的:
抽象和严谨地解释自然界的适应过程;
为了将自然生物系统的重要机理运用到工程系统、 计算机系统或商业系统等人工系统的设计中。
应用
如函数优化、自动控制、图像识别、机器学习等
4.1什么是遗传算法 4.1.1遗传算法的生物遗传学基础 生物发展进化的三个主要原因
遗传
变异
选择
遗传
遗传是指子代总是和亲代相似。 遗传性是一切生物所共同的特性,它使得生 物能够把它的物性、性能传给后代。 遗传是生物进化的基础。
变异
变异是指子代和亲代有某些不相似的现象, 即子代永远不会和亲代完全一样。它是一切生 物所具有的共同特征,是生物个体之间相互区 别的基础。 引起变异的原因主要是生活环境的影响、器 官使用的不同及杂交。 生物的变异性为生物的进化和发展创造了条 件。
例:
1 0 1 0 0 1 1 0
其码长为8,随机产生一个1~8之间的数k,假设现在k=4, 对从右往左的第4位进行变异操作,将原来的0变为1,得到 如下数码串(第4位的数字1是经变异操作后出现的):
1 0
1
0 1 1
1 0
遗传算法举例(例4-1):求使函数 f ( x) x2 在[0,31]
4.1.3遗传算法的基本操作
一般的遗传操作都 包含的两个基本概念: 1.编码与解码 2.目标函数 (适配值函数)
一般的遗传操作都包 含的三个基本操作:
1.复制
2.交叉
3.变异
编码与解码
将问题结构变换为位串形式编码表示的过程叫做 编码;相反地,将位串形式编码表示变换为原问题结 构的过程叫做解码或译码。 把位串形式编码表示叫做染色体,有时也叫个体。
4.1.2遗传算法的特点 和常规优化算法相比,遗传算法有以下特点:
1)遗传算法是对参数的编码进行操作,而非对参数本身。
2)遗传算法是从许多点开始并行操作,而非局限于一点,因而 可以有效地防止搜索过程收敛于局部最优解。
3)遗传算法通过目标函数来计算适配值,而不需要其他推导和 附加信息,从而对问题的依赖性较小。
7)对比前两张表可以看出,虽然仅经历了一代遗传, 第二代的平均值及最大值却比第一代的平均值及最大值 有了很大的提高
均值:
最大值:
293 437 576 729
例:用遗传算法求解函数 f ( x) x sin(10 x) 1.0 的最大值,
其中 x [1,2]
。
(1)方案表示 用一个二进制矢量表示一个染色体,由染色体来代表变量x的实数值。矢量 的长度取决于所要求的精度,在此取小数点后6位数。由于变量x的域长3,则 [-1,2]将被均匀地分为3 ×1000000个等长的区间。这表明每个染色体由 22位字节的二进制矢量表示。因为:
v2 (0000001110 0000000100 ) 00 v3 (1110000000 1111110001 ) 01
交叉之后产生的两个子代分别为:
v2 (0000000000 1111110001 ) 01 v3 (1110001110 0000000100 ) 00
它们的适应值分别为:
最佳染色体为(1111001101000100000101),对应着实数1.850773,适 配值为:2.850227
遗传算法与多数常规的最优化和搜索方法的区别主要 表现在以下几个方面:
1)遗传算法只对参数集的编码进行操作,而不是对参数 本身进行操作。
2)遗传算法是从许多初始点开始并行操作,而不是在一 个单点上进行寻优,因而可以有效地防止搜索过程收效 于局部最优解。 3)遗传算法通过目标函数来计算适配值,而不需要其他 的推导和附属信息,从而对问题的依赖性小。 4)遗传算法使用随机转换规则而不是确定性规则工作, 即具有随机操作算子。
复制操作的初始种群(旧种群)的生成往往是随 机产生的。
复制操作根据个体的适应度函数值所度量的优劣 程度决定它在下一代是被淘汰还是被遗传。一般地, 选择将使适应度较大(优良)的个体有较大的存在 机会,而适度较小(低劣)的个体继续存在的机会 也较小。
赌轮选择机制
令:
f
fi
i
——表示群体的适应度值之总和 ——表示群体中第i个染色体的适应度值 ——表示第i个染色体产生后代的能力所占份额
编号 位串(x)
f ( x) x 2
占总数百分比
实际得到的 复制数
1 2 3 4
01101 11000 01000 10011
169 576 64 361
1170
14.4 49.2 5.5 30.9
100.0
1 2 0 1
4
总和(初始种群整体)
5)交叉:
新串 号 1 2 3 4
交叉点 复制后的 配对对象 匹配池 (随机选择) (随机选择) 新群体 X值
•
•
浮点数编码方法
格雷码
•
•
符号编码方法
多参数编码方法等
目标函数(适配值函数)
将目标函数看作是我们期望的最大效益或好 处的某种量度。 根据位串的适配值拷贝串意味着,具有较高 适配值的位串更有可能在下一代中产生一个或多 个子孙。 在复制操作过程中,目标函数是该位串被复 制或被淘汰的决定因素。
复制
复制——又称繁殖,是从一个旧种群中选择生 命力强的个体位串(或称字符串)产生新种群的过 程。或者说,复制是个体位串根据其目标函数(即 适配值函数)拷贝自己的过程。
代数
1 6 8 9 10 12
适应度函数值
1.441942 2.250003 2.250283 2.250284 2.250363 2.328077
代数
39 40 51 99 137 150
适应度函数值
2.344251 2.345087 2.738930 2.849246 2.850217 2.850227
2097152 221 3000000 222 4194304
这样,就可以将实数以二进制数(染色体)来表述,例如实数0.637197 表示为:(1000101110110101000111)。
(2)群体初始化 随机产生一定数量的染色体,每个染色体为22 位字节的二进制即可。
(3)目标值函数 f 本例中的目标函数即为: ( x) x sin(10 x) 1.0 例如,如下三个染色体:
编号 1 2 3 4
位串(x) 01101 11000 01000 10011
f ( x) x 2
占总数百分比
169 576 64 361
14.4 49.2 5.5 30.9 100.0
总和(初始种群整体) 1170
1 (14.4%) 2 (49.2%) 3 (5.5%) 4 (30.9%)
4)复制: