相关知识简介(不确定性-遗传算法进化算法)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3 GA的几个近亲及其特点
• 遗传编程(Genetic Programming),个体为一段 程序。 • 演化策略(Evolution Strategies),只有一个个体, 通过变异不断进化。 • 演化规划(Evolutionary Programming),根据以 前的状态估计未来的状态,个体长度不断增加。 • 硬件演化(Evolvable Hardware),结合PLD实现 硬件本身自动地改变结构以适应环境的变化。
判定两个多边形是否相交的概率算法的错误率
• 如果N个点中至少有一个落入两多边形内,则算法以1的准确率判定两 多边形相交。 • 如果两多边形不相交,算法以1的准确率判定两多变形不相交。 • 如果两多边形相交,且相交的面积为S,则算法以 (1- S/SD)N的错误率判定两个多边形不相交。 总之,假定上述算法在判定两多边形相交时状态为“接受”,在判定 不相交时状态为“拒绝”。则上述算法对不相交的两多边形以概率1 被拒绝,对相交的多变形以不小于1- (1- S/SD)N的概率被接受。(适 当调节N可使该概率>1/2) 这个算法具有“单测错误”:称为RP类。
4.5 遗传操作
• 变异操作是指依概率从参加遗传操作的种群中指 定一定数量的个体,然后随机改变这些个体的某 些位的过程。 • 变异操作通常也需要结合编码方式来考虑。针对 二进制编码,可通过将某位取非来实现变异,如 01→11;而对于浮点数编码,则可以通过增加或 者减去指定幅度(步长)以内的一个随机数来实 现变异,如3.14 → 3.14+0.01×θ,其中0.01为步长, -1 ≤ θ ≤ 1,且服从某种概率分布 。
4.5 遗传操作
• 重组操作是指将个体两两配对,重新组合生成新 个体的过程。 • 重组操作的设计需要结合编码方式来考虑。例如 针对二进制形式的编码,通常是将两个体对应位 相互交换而生成新个体,如001和010 → 011和000。 习惯上称这种重组方式为交叉,交叉又可以细分 为单点交叉、两点交叉和多点交叉。而对于浮点 数编码,重组操作通常是将两个个体分别乘以系 数后相加,如3.14和4.13 → 3.14× α +4.13× β和 3.14× β+4.13× α,通常α+β=1。
14
2013/11/3
♣ 遗传算法流程图
生成初始种群 计算适应度 终止?
N Y
输出
结束
选择—复制 交叉 变异 生成新一代种群
5 GA的特点和适用范围
• GA是一种迭代自适应概率性搜索算法。它无需了 解问题的数学模型,不依赖于梯度信息。因此, 它适合解决传统搜索方法不能很好处理的问题, 例如系统具有严重的非线性,或者难以建模分析 等;反之,则GA并不适宜。 • GA是一种实验性较强的算法,并没有完备的数学 理论作为基础,因此GA的设计更针对具体问题, 而没有一种普适性的设计方案。 • 一般说来,在目前的计算能力下,GA运算相对时 间较长,难以进行在线求解。
2013/11/3
相关知识简介(随机方法)
张军 tocitywalker@foxmail.com
课程QQ群:284686308
判定两个多边形是否相交
2013/11/3
1
2013/11/3
判定两个多边形是否相交的概率算法
• 确定包含两多边形矩形区域D ,其面积为SD
• • • 随机向矩形D投入N个点,计算这N个点是否有同时在两个多边形内部的情况。 如果有则相交,并且相交面积约为SD K/ N,K为同时在两多边形内部的点数。 如果没有则不相交。
4
2013/11/3
2 GA的基本思想
• GA是一种模拟自然选择和进化过程来求解问题的计算模 型。 • GA求解问题的过程:随机产生一个种群,其中的个体代 表问题的可行解;根据问题确定评价个体适应度的方式, 并对个体赋以适应度值;根据个体适应度选择一定数量的 个体参加遗传操作;被选个体通过重组或者变异操作生成 新个体;新个体连同以前的个体,按照某种方式保存一部 分到下一代。重复前面的步骤,直到满足终止条件,得到 最佳个体,即问题的近似最优解。
通常做法是:对于一个规模为N的种群S,按每个 染色体xi∈S的选择概率P(xi)所决定的选中机会, 分N 次从S中随机选定N个染色体, 并进行复制。 这里的选择概率P(xi)的计算公式为:
P ( xi ) f ( xi )
N
f (x )
j 1 j
9
2013/11/3
4.5 遗传操作
• 遗传操作是按概率执行的,它包括重组和变异两 部分,可以根据实际情况选择执行两种操作或者 其中的某一种操作。 • 如何确定遗传操作一直是学术界争论的焦点,或 者说由于GA针对性太强而无法给出普适性的结论。 • 总的说来,重组操作趋向于在深度方向进行搜索, 变异操作趋向于在广度方向进行搜索。
(6) 按交叉率Pc所决定的参加交叉的染色体数c, 从S1中随机确定c个染色体,配对进行交叉操作, 并用产生的新染色体代替原染色体,得群体S2; (7) 按变异率Pm所决定的变异次数m,从S2中 随机确定m个染色体,分别进行变异操作,并用 产生的新染色体代替原染色体,得群体S3; (8) 将群体S3作为新一代种群,即用S3代替S, t = t+1,转步3;
5
2013/11/3
4 SGA的实现步骤
• • • • • • 4.1 编码 4.2 种群设定 4.3 适应度函数 4.4 选择 4.5 遗传操作 4.6 个体保存方式
4.1 编码
• 把问题的解转换成GA可以操作的对象的过程叫做 编码。 • 编码是一种将解同个体、将解空间同染色体空间、 将表现型同基因型对应起来的映射。 • 在SGA中,一般直接用二进制数表示问题的解; 或者用Gray码表示问题的解。 • 目前在工程上使用最广泛的是浮点数直接编码方 式,这是因为它在概念上更靠近解空间,同时也 便于使用封闭的算子。
8
2013/11/3
4.4 选择
• 从群体中根据个体适应度依概率选取一部分个体 参加遗传操作的过程叫做选择。 • 选择的个体数量等于种群规模与代沟的乘积。 • 常用的选择方法有:轮盘赌选择法,期望值法, 最优个体选择法,排序选择法,部分放回随机选 择法,随机均匀选择法,联赛选择法,排挤法等。
♠ 选择-复制
11
2013/11/3
♠ 变异 就是改变染色体某个(些)位上的基因。
例如, 设染色体 s=11001101 将其第三位上的0变为1, 即 s=11001101 →11101101= s′。 s′也可以看做是原染色体s的子代染色体。
♠ 交叉率(crossover rate) 就是参加交叉运算的染色体个数占全体染色体总 数的比例,记为Pc,取值范围一般来自百度文库0.4~0.99。 ♠ 变异率(mutation rate) 是指发生变异的基因位数所占全体染色体的基因 总位数的比例,记为Pm,取值范围一般为0.0001~ 0.1。
3
2013/11/3
1 GA的起源及发展
• 1950年,图灵提出可以通过模拟进化和自然选择过程自动 生成智能程序。 • 1960s’~1970s’,基于进化和自然选择思想的各种算法的提 出和应用。 • 1975年,Holland发表Adaptation in Nature and Artificial Systems,完整描述了GA的原理及实现步骤。 • 1975年,De Jong提出了5个评价GA效率的测试函数。 • 1987年,Goldberg发表Genetic Algorithms in Search, Optimization and Machine Learning,详细介绍了GA在工程上 的应用。
15
2013/11/3
6 需要注意的几个问题
• 编码应该遵循以下原则:基因型与表现型应是一一映射, 并且应该确保二者的变化是一致的。这是为了避免在编 码——译码过程中出现误解。二进制数编码存在“海明悬 崖”问题,例如:两个解为7、8,对应的4位二进制数为 0111、1000,即表现型与基因型之间变化并不一致。 • 评价选择机制优劣应遵循Baker提出的三条准则:偏差、 延伸度和复杂度。偏差是指个体实际被选择的概率与期望 概率之差的绝对值;延伸度是指个体在演化中可能经历的 代数;复杂度是指选择算法的复杂程度。那么,优越的选 择机制应该是:零偏差,小延伸度,低复杂度。随机均匀 选择较为理想。
13
2013/11/3
♣ 遗传算法的步骤
(1) 在搜索空间U上定义一个适应度函数f(x), 给定种群规模N,交叉率Pc和变异率Pm,代数T; (2) 随机产生U中的N个个体s1, s2, …, sN,组成 初始种群S={s1, s2, …, sN},置代数计数器t=1; (3) 计算S中每个个体的适应度f(si) ; (4) 若终止条件满足,则取S中适应度最大的个 体作为所求结果,算法结束。 (5) 按选择概率P(xi)所决定的选中机会,每次 从S中随机选定1个个体并将其染色体复制,共做N 次,然后将复制所得的N个染色体组成群体S1;
7
2013/11/3
♠ 染色体与基因 染色体(chromosome)就是问题中个体的某种 字符串形式的编码表示。字符串中的字符也就称基 因(gene)。
例如: 个体 8 ------(3,5,7)------染色体 1000 011 101 111
4.3 适应度函数
• 适应度函数用于根据问题(目标函数)赋给个体 相应的适应度值。 • 常见的几种适应度函数类型:线性定标形式;幂 乘形式;排序赋值等。其中以排序赋值使用最为 广泛。
种群(population)就是模拟生物种群而由若干个体 组成的群体, 它一般是整个搜索空间的一个很小的子 集。 ♠ 适应度与适应度函数 适应度(fitness)就是借鉴生物个体对环境的适应程 度,而对问题中的个体对象所设计的表征其优劣的一 种测度。 适应度函数(fitness function)就是问题中的全体个 体与其适应度之间的一个对应关系。它一般是一个 实值函数。该函数就是遗传算法中指导搜索的评价 函数。
6
2013/11/3
4.2 种群设定
• 种群规模(即所包含的个体数目)与问题的搜索 空间正相关,一般选取为20~100之间的一个常数。 • 确定种群规模后,随机初始化种群,即随机产生 指定数量的可行个体。 • 可以通过选择代沟(generation gap)确定选取多 少个体参加遗传操作,代沟通常为0.7~0.9之间的 常数。
12
2013/11/3
4.6 个体保留
• 为了维持种群规模恒定(也有少数GA种群规模是 变化的),只能新个体和老个体中间的一部分保 留到下一代,因此需要按照某种适当的方式实现 个体保留过程。 • 由于个体保留同选择过程在操作基本相同,因此 可以沿用选择操作。
遗传算法的基本原理和步骤
♣ 遗传算法的基本原理 遗传算法类似于自然进化,通过作用于染色体上 的基因寻找好的染色体来求解问题。遗传算法主要 通过选择、交叉、变异运算实现。交叉或变异运算 生成下一代染色体,称为后代。染色体的好坏用适 应度来衡量。根据适应度的大小从上一代和后代中 选择一定数量的个体,作为下一代群体,再继续进 化,这样经过若干代之后,算法收敛于最好的染色 体,它很可能就是问题的最优解或次优解。
2013/11/3
2
2013/11/3
RP类
• 定义 RP是多项式时间概率图灵机识别的
语言类,在这里,在语言中的输入以不小 1/2的概率被接受;不在语言中的输入以概 率1被拒绝。 利用概率加强技术(就是多运行几次投票表 决)可以使错误率指数的小,并且保证多 项式运行时间。
2013/11/3
关于遗传算法 的一般性介绍
10
2013/11/3
♠ 交叉 就是互换两个染色体某些位上的基因。 例如, 设染色体 s1=01101110, s2=10100110, 交 换其后4位基因, 即 0110 ︱ 1110 ,1010 ︱ 0110
0110 ︱ 0110,1010 ︱ 1110 s1′=01100110,s2′=10101110 s1′,s2′可以看做是原染色体s1和s2的子代染色体。
2 GA的基本思想
• GA的思想本源是自然界中的“优胜劣汰”现象。各种生物 在自然选择的压力下,器官和结构不断演变以适应环境, 最终实现从简单到复杂、从不适应到适应的进化过程。 • GA中的几个术语。个体:进化的最小单元;种群:个体 的集合;个体适应度:评价每个个体优劣的标量值;选择: 从种群中根据适应度选取一定数量的个体组成新种群;遗 传操作:包括重组和变异两种操作;重组:一对个体按某 种方式结合生成一对新个体;变异:单个个体随机发生变 化。