第07章_现代优化算法
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第一节 遗传算法(GA)
第一节 遗传算法(GA)
1.1 1.2 1.3 1.4 1.5 1.6
第一节 遗传算法(GA)
基本遗传算法的构成要素 基本遗传算法的形式化定义 基本遗传算法的实现 遗传算法基本流程 基本遗传算法应用举例 遗传算法的展望
1.1 基本遗传算法的构成要素 (1) 染色体编码方法
第一节 遗传算法(GA)
1.2 基本遗传算法的形式化定义 基本遗传算法可定义为一个7元组: GA= (M, F, s, c, m, pc, pm )
M——群体大小; F——个体适应度评价函数; s——选择操作算子; c——交叉操作算子: m——变异操作算子; pc——交叉概率; pm——变异概率;
第一节 遗传算法(GA)
[例] 设 -3.0 ≤ x ≤ 12.1 , 精度要求 =0.0001,求:二进制编 码的长度至少为多少?
u u max min 由公式: 2 1
l
2l ≥
≥
12.1 (3.0) 2l 1
0.0001
12.1 + 3.0 0.0001 151001
轮盘选择的原理: 从统计意义讲,适应度大的 个体,其刻度长,被选中的可能 性大;反之,适 应度小的个体被 选中的可能性小,但有时也会被 “破格”选中。
第一节 遗传算法(GA)
[轮盘选择示例] 上述轮盘选择过程,可描述如下: Ⅰ. 顺序累计群体内各个体的适应度,得相应的累计值Si, 最后一个累计值为Sn; Ⅱ. 在[0, Sn]区间内产生均匀分布的随机数r; Ⅲ. 依次用Si与r比较,第一个出现Si大于或等于r的个体j被 选为复制对象; Ⅳ. 重复 Ⅲ、Ⅳ 项,直至新群体的个体数目等于父代群体 的规模。 个体序号 适应度fi 适应度累计值Si 随机数r 被选中的个体号
基本遗传算法使用固定长度的二进制符号串来 表示群体中的个体,其由二值符号集{0,1}组成。
初始群体中各个个体的基因值用均匀分布的随 机数来生成。如: x;1001 1100 1000 1011 01
就可表示一个个体,其染色体长度是 l=18
第一节 遗传算法(GA)
(2) 个体适应度评价 基本遗传算法按与个体适应度成正比的概率来决定当前 群体中每个个体遗传到下一代群体中的机会多少。 为正确计算这个概率,这里要求所有个体的适应度必须
为正数或零。这样,根据不同种类的问题,必须预先确定好 由目标函数值到个体适应度之间的转换规则,特别是要预先 确定好当目标函数值为负数时的处理方法。
(3) 遗传算子
基本遗传算法使用下述三种遗传算子: • 选择运算:使用比例选择算子; • 交叉运算:使用单点交叉算子; • 变异运算:使用基本位变异算子。
第一节 遗传算法(GA)
(4) 基本遗传算法的运行参数
基本遗传算法有下述4个运行参数需要提前设定: M:群体大小,群体中所含个体的数量,一般取20 ~ 100
太小:不能提供足够的采样点,以致算法性能很差,甚至 得不到问题的可行解 太大:可增加优化信息以阻止早熟收敛的发生,但增加计 算量,使收敛时间太长
第一节 遗传算法(GA)
1.3.2 个体适应度评价 要求所有个体的适应度必须为正数或零,不能是负数。
(1) 当优化目标是求函数最大值,并且目标函数总取正值时,可以
直接设定个体的适应度F(X)就等于相应的目标函数值f(X),即: F(X)=f(X) (2) 对于求目标函数最小值的优化问题,理论上只需简单地对其增 加一个负号就可将其转化为求目标函数最大值的优化问题,即:
第一节 遗传算法(GA)
第二节 模拟退火算法(SA)
1.陈立周,《机械优化设计方法》(第三版),冶金工业出版社 2.邢文训,《现代优化计算方法》,清华大学出版社
第七章 练习
1.
Biblioteka Baidu
2.一维遗传优化问题的设计变量的变动范围-7.5 ≤ x ≤ 7.5 ,设 计变量个体用18位二进制编码表示,请计算其编码精度δ ,并将 101000101010100010解码,即:计算其代表的设计变量数值.
T:遗传运算的终止进化代数,一般取为50 ~ 500 pc:交叉概率,一般取为0.4 ~ 0.99 pm:变异概率,一般取为 0.0001 ~ 0.1
[说明]
这4个运行参数对遗传算法的求解结果和求解效率都有 一定的影响,但目前尚无合理选择它们的理论依据。在遗 传算法的实际应用中,往往需要经过多次试算后才能确定 出这些参数合理的取值大小或取值范围。
• 预先指定的一个较小的数。 • 进化到当前代为止的最小目标函数值。
• 当前代或最近几代群体中的最小目标函数值。
F(X) =
f(X)+Cmin if f(X)+Cmin> 0 0 if f(X)+Cmin ≤ 0
式中, Cmin 为可调参数,所取的值应使适应函数 F ( x)
恒大于0。
第一节 遗传算法(GA)
umax= umin + (2l–1)
其中, 为二进制编码的编码精度,其公式为: =
第一节 遗传算法(GA)
umax umin
2l 1
(2) 解码
假设某一个体的编码是:
x: bl bl-1 bl-2……b2 b1
则对应的解码公式为:
1 i 1 umax umin x umin bi 2 l 2 1 i l
Ⅲ. 对每一对相互配对的个体,依设定的交叉概率pc在其交叉点处 相互交换两个个体的部分染色体,从而产生出两个新的个体。
第一节 遗传算法(GA)
A;10110111 00 B:00011100 11
单点交叉
A’:10110111 11 B’:00011100 00
交叉概率
pc =
Mc M
式中 M——群体中个体的数目; Mc——群体中被交换个体的数目。
(2) 最常用和最基本——单点交叉算子。
(3) 单点交叉算子的具体计算过程如下: Ⅰ. 对群体中的个体进行两两随机配对。 若群体大小为M,则共有 [ M/2 ]对相互配对的个体组。 Ⅱ. 每对相互配对的个体,随机设置某基因座为交叉点,其后的部
分交换。染色体的长度为l ,则共有(l-1)个可能的交叉点位置。
+1
即: 217 < 151001 < 218 x需要18位 {0/1} 符号表示。 如:0100 0100 1011 0100 00
1 i 1 umax umin 解码: x umin bi 2 l 2 1 i l
= -3 + 70352(12.1+3)/(218-1) = 1.052426
第一节 遗传算法(GA)
1.3.1 编码与解码
(1) 编码 假设某一参数的取值范围是[umin , umax],用长度为l的二 进制编码符号串来表示该参数,则它总共能够产生 2l种不同 的编码,参数编码时的对应关系如下: 00000000…00000000=0 00000000…00000001=1 00000000…00000010=2 …… 11111111…11111111=2l–1 umin umin + umin + 2
课程内容
第0章 现代机械设计概述 第1章 优化设计概述 第2章 数学基础 第3章 一维搜索方法 Matlab介绍 第4章 无约束优化方法 第5章 约束优化方法 第6章 多目标及离散变量优化方法 第7章 现代优化算法 第8章 优化实例
第七章 现代优化算法
20世纪80年代初期,开始研究另一类不同于常规确定性优化 算法的所谓启发式算法。这类算法在求解高线性、多约束、多 极值的问题中显示了它的有效性。通过揭示和模拟自然现象和 过程、并综合利用数学、物理学、生物进化、人工智能、神经 科学和统计学等所构造的算法。
3. 影响模拟退火算法的优化计算效果的主要环节是:新状态候选解产生函数、 函数, 函数和 准则、退火结束准则。 4. 基本遗传优化算法的三个算子是 , 和 。
第七章 重点内容
1. 基本遗传算法的计算步骤。 2. 基本遗传算法的编码与解码方法。 3. 基本遗传算法有哪三个遗传算子,都是如何定义的? 4. 轮盘选择的计算步骤。 5. 模拟退火算法的新状态产生函数是怎样的? 6. 模拟退火算法的抽样稳定准则可以写成怎样的表达式? 7. 模拟退火算法的退温函数有哪两种?
min f(X)=max (- f(X))
但实际优化问题中的目标函数值有正也有负,优化目标有求函数 最大值,也有求函数最小值,显然上面两式保证不了所有情况下个 体的适应度都是非负数这个要求。
第一节 遗传算法(GA)
1.3.2 个体适应度评价
基本遗传算法一般采用下面两种方法之一将目标函数值 f(x)变换 为个体的适应度F(x): 方法一:对于求目标函数最大值的优化问题,变换方法为: 其中,Cmin为一个适当地相对比较小的数,它可用下面方法之 一来选取:
方法二:对于求目标函数最小值的优化问题,变换方法为: 其中,Cmax是一个适当地相对比较大的数,它可用下面几种 方法求得: • 预先指定的一个较大的数。 • 进化到当前代为止的最大目标函数值。 • 当前代或最近几代群体中的最大目标函数值。
F(X) =
Cmax - f(X) if f(X) Cmax 0 if f(X) Cmax
第七章 结 束
第一节 遗传算法(GA)
(Genetic Algorithm)
源于达尔文的进化论和孟德尔的遗传学说 生物遗传进化的过程:
算法基本思想:
生物循环进化的过程图
从代表可能潜在的解集的一个种群开始,借助选择、复制、 交叉,变异等遗传操作,依据“适者生存”原则,指导在不断改 进的解区域中进行搜索,最后以末代种群的最优个体作为问题的 近似最优解。
式中, Cmax 为可调参数,所取的值应使适应函数 F ( x) 恒大于0。
第一节 遗传算法(GA)
复制体现了“适者生存”的自然法则。一般都采用适应度成 比例的概率方法,使高性能的个体得以更大的概率生存,从而 提高全局收敛性和计算效率。 1.3.3 比例选择算子 (1) 选择算子或复制算子的作用: 从当前代群体中选择出一些比较优良的个体,并将其复制 到下一代群体中。 (2) 最常用和最基本的选择算子: 比例选择算子。
第一节 遗传算法(GA)
1.3 基本遗传算法的实现
遗传算法的寻优过程就是通过染色体的结合,即通过双亲的 基因遗传(复制)、变异和交叉等,使解的编码发生变化,从而 可根据“适者生存”的规律,最终找出最好的解。
遗传算法中的解空间和编码空间的映射关系 由设计空间向遗传算法编码空间的映射称为编码; 而由编码空间向设计空间的映射称为解码。
(3) 比例选择算子:
指个体被选中并遗传到下一代群体中的概率与该个体的 适应度大小成正比。
(4) 执行比例选择的手段是轮盘选择。
轮盘法的基本精神是:个体被选中的概率取决于个体的 相对适应度。
第一节 遗传算法(GA)
轮盘法的基本思路:个体被选中的概率取决于个体的相对 适应度: pi = fi / fi ( i=1,2,…,M ) 式中 pi——个体i被选中的概率; fi——个体i的适应度; fi——群体的累加适应度。 显然,个体适应度愈高,被选中的概率愈大。但是,适应 度小的个体也有可 能被选中,以便增加下一代群体的多样性。
第一节 遗传算法(GA)
算法特点:
1. 并行特点 操作对象是一组可行解,而非单个可行解,搜索轨道有 多条,而非单条。
2.遗传算法只需目标函数的取值信息,无需梯度等其他信息,具 有很强的通用性. 适合:大规模、高度非线性的不连续多峰函数的优化 无解析表达式的目标函数的优化 3.遗传算法有较大的可能性可得到全局最优解. 4.遗传算法具有良好的可操作性. 遗传算法的处理对象通常不是参数本身,而是对参数进行 了编码的个体,目标函数可解释为编码化个体(可行解)的适 应值,这使遗传算法不受函数连续性、可导性等条件的限制。
第一节 遗传算法(GA)
1 8 8 23 3
2 2 10 49 7
3 17 27 76 10
4 7 34 13 3
5 2
6
7
8 7
9 3 69
10 7 76
12 11
36 48 59 66 1 27 57 1 3 7
1.3.4 单点交叉算子
(1) 交叉算子作用
通过交叉,子代的基因值不同于父代。交换是遗传算法产生新 个体的主要手段。正是有了交换操作,群体的性态才多种多样。
第一节 遗传算法(GA)
1.1 1.2 1.3 1.4 1.5 1.6
第一节 遗传算法(GA)
基本遗传算法的构成要素 基本遗传算法的形式化定义 基本遗传算法的实现 遗传算法基本流程 基本遗传算法应用举例 遗传算法的展望
1.1 基本遗传算法的构成要素 (1) 染色体编码方法
第一节 遗传算法(GA)
1.2 基本遗传算法的形式化定义 基本遗传算法可定义为一个7元组: GA= (M, F, s, c, m, pc, pm )
M——群体大小; F——个体适应度评价函数; s——选择操作算子; c——交叉操作算子: m——变异操作算子; pc——交叉概率; pm——变异概率;
第一节 遗传算法(GA)
[例] 设 -3.0 ≤ x ≤ 12.1 , 精度要求 =0.0001,求:二进制编 码的长度至少为多少?
u u max min 由公式: 2 1
l
2l ≥
≥
12.1 (3.0) 2l 1
0.0001
12.1 + 3.0 0.0001 151001
轮盘选择的原理: 从统计意义讲,适应度大的 个体,其刻度长,被选中的可能 性大;反之,适 应度小的个体被 选中的可能性小,但有时也会被 “破格”选中。
第一节 遗传算法(GA)
[轮盘选择示例] 上述轮盘选择过程,可描述如下: Ⅰ. 顺序累计群体内各个体的适应度,得相应的累计值Si, 最后一个累计值为Sn; Ⅱ. 在[0, Sn]区间内产生均匀分布的随机数r; Ⅲ. 依次用Si与r比较,第一个出现Si大于或等于r的个体j被 选为复制对象; Ⅳ. 重复 Ⅲ、Ⅳ 项,直至新群体的个体数目等于父代群体 的规模。 个体序号 适应度fi 适应度累计值Si 随机数r 被选中的个体号
基本遗传算法使用固定长度的二进制符号串来 表示群体中的个体,其由二值符号集{0,1}组成。
初始群体中各个个体的基因值用均匀分布的随 机数来生成。如: x;1001 1100 1000 1011 01
就可表示一个个体,其染色体长度是 l=18
第一节 遗传算法(GA)
(2) 个体适应度评价 基本遗传算法按与个体适应度成正比的概率来决定当前 群体中每个个体遗传到下一代群体中的机会多少。 为正确计算这个概率,这里要求所有个体的适应度必须
为正数或零。这样,根据不同种类的问题,必须预先确定好 由目标函数值到个体适应度之间的转换规则,特别是要预先 确定好当目标函数值为负数时的处理方法。
(3) 遗传算子
基本遗传算法使用下述三种遗传算子: • 选择运算:使用比例选择算子; • 交叉运算:使用单点交叉算子; • 变异运算:使用基本位变异算子。
第一节 遗传算法(GA)
(4) 基本遗传算法的运行参数
基本遗传算法有下述4个运行参数需要提前设定: M:群体大小,群体中所含个体的数量,一般取20 ~ 100
太小:不能提供足够的采样点,以致算法性能很差,甚至 得不到问题的可行解 太大:可增加优化信息以阻止早熟收敛的发生,但增加计 算量,使收敛时间太长
第一节 遗传算法(GA)
1.3.2 个体适应度评价 要求所有个体的适应度必须为正数或零,不能是负数。
(1) 当优化目标是求函数最大值,并且目标函数总取正值时,可以
直接设定个体的适应度F(X)就等于相应的目标函数值f(X),即: F(X)=f(X) (2) 对于求目标函数最小值的优化问题,理论上只需简单地对其增 加一个负号就可将其转化为求目标函数最大值的优化问题,即:
第一节 遗传算法(GA)
第二节 模拟退火算法(SA)
1.陈立周,《机械优化设计方法》(第三版),冶金工业出版社 2.邢文训,《现代优化计算方法》,清华大学出版社
第七章 练习
1.
Biblioteka Baidu
2.一维遗传优化问题的设计变量的变动范围-7.5 ≤ x ≤ 7.5 ,设 计变量个体用18位二进制编码表示,请计算其编码精度δ ,并将 101000101010100010解码,即:计算其代表的设计变量数值.
T:遗传运算的终止进化代数,一般取为50 ~ 500 pc:交叉概率,一般取为0.4 ~ 0.99 pm:变异概率,一般取为 0.0001 ~ 0.1
[说明]
这4个运行参数对遗传算法的求解结果和求解效率都有 一定的影响,但目前尚无合理选择它们的理论依据。在遗 传算法的实际应用中,往往需要经过多次试算后才能确定 出这些参数合理的取值大小或取值范围。
• 预先指定的一个较小的数。 • 进化到当前代为止的最小目标函数值。
• 当前代或最近几代群体中的最小目标函数值。
F(X) =
f(X)+Cmin if f(X)+Cmin> 0 0 if f(X)+Cmin ≤ 0
式中, Cmin 为可调参数,所取的值应使适应函数 F ( x)
恒大于0。
第一节 遗传算法(GA)
umax= umin + (2l–1)
其中, 为二进制编码的编码精度,其公式为: =
第一节 遗传算法(GA)
umax umin
2l 1
(2) 解码
假设某一个体的编码是:
x: bl bl-1 bl-2……b2 b1
则对应的解码公式为:
1 i 1 umax umin x umin bi 2 l 2 1 i l
Ⅲ. 对每一对相互配对的个体,依设定的交叉概率pc在其交叉点处 相互交换两个个体的部分染色体,从而产生出两个新的个体。
第一节 遗传算法(GA)
A;10110111 00 B:00011100 11
单点交叉
A’:10110111 11 B’:00011100 00
交叉概率
pc =
Mc M
式中 M——群体中个体的数目; Mc——群体中被交换个体的数目。
(2) 最常用和最基本——单点交叉算子。
(3) 单点交叉算子的具体计算过程如下: Ⅰ. 对群体中的个体进行两两随机配对。 若群体大小为M,则共有 [ M/2 ]对相互配对的个体组。 Ⅱ. 每对相互配对的个体,随机设置某基因座为交叉点,其后的部
分交换。染色体的长度为l ,则共有(l-1)个可能的交叉点位置。
+1
即: 217 < 151001 < 218 x需要18位 {0/1} 符号表示。 如:0100 0100 1011 0100 00
1 i 1 umax umin 解码: x umin bi 2 l 2 1 i l
= -3 + 70352(12.1+3)/(218-1) = 1.052426
第一节 遗传算法(GA)
1.3.1 编码与解码
(1) 编码 假设某一参数的取值范围是[umin , umax],用长度为l的二 进制编码符号串来表示该参数,则它总共能够产生 2l种不同 的编码,参数编码时的对应关系如下: 00000000…00000000=0 00000000…00000001=1 00000000…00000010=2 …… 11111111…11111111=2l–1 umin umin + umin + 2
课程内容
第0章 现代机械设计概述 第1章 优化设计概述 第2章 数学基础 第3章 一维搜索方法 Matlab介绍 第4章 无约束优化方法 第5章 约束优化方法 第6章 多目标及离散变量优化方法 第7章 现代优化算法 第8章 优化实例
第七章 现代优化算法
20世纪80年代初期,开始研究另一类不同于常规确定性优化 算法的所谓启发式算法。这类算法在求解高线性、多约束、多 极值的问题中显示了它的有效性。通过揭示和模拟自然现象和 过程、并综合利用数学、物理学、生物进化、人工智能、神经 科学和统计学等所构造的算法。
3. 影响模拟退火算法的优化计算效果的主要环节是:新状态候选解产生函数、 函数, 函数和 准则、退火结束准则。 4. 基本遗传优化算法的三个算子是 , 和 。
第七章 重点内容
1. 基本遗传算法的计算步骤。 2. 基本遗传算法的编码与解码方法。 3. 基本遗传算法有哪三个遗传算子,都是如何定义的? 4. 轮盘选择的计算步骤。 5. 模拟退火算法的新状态产生函数是怎样的? 6. 模拟退火算法的抽样稳定准则可以写成怎样的表达式? 7. 模拟退火算法的退温函数有哪两种?
min f(X)=max (- f(X))
但实际优化问题中的目标函数值有正也有负,优化目标有求函数 最大值,也有求函数最小值,显然上面两式保证不了所有情况下个 体的适应度都是非负数这个要求。
第一节 遗传算法(GA)
1.3.2 个体适应度评价
基本遗传算法一般采用下面两种方法之一将目标函数值 f(x)变换 为个体的适应度F(x): 方法一:对于求目标函数最大值的优化问题,变换方法为: 其中,Cmin为一个适当地相对比较小的数,它可用下面方法之 一来选取:
方法二:对于求目标函数最小值的优化问题,变换方法为: 其中,Cmax是一个适当地相对比较大的数,它可用下面几种 方法求得: • 预先指定的一个较大的数。 • 进化到当前代为止的最大目标函数值。 • 当前代或最近几代群体中的最大目标函数值。
F(X) =
Cmax - f(X) if f(X) Cmax 0 if f(X) Cmax
第七章 结 束
第一节 遗传算法(GA)
(Genetic Algorithm)
源于达尔文的进化论和孟德尔的遗传学说 生物遗传进化的过程:
算法基本思想:
生物循环进化的过程图
从代表可能潜在的解集的一个种群开始,借助选择、复制、 交叉,变异等遗传操作,依据“适者生存”原则,指导在不断改 进的解区域中进行搜索,最后以末代种群的最优个体作为问题的 近似最优解。
式中, Cmax 为可调参数,所取的值应使适应函数 F ( x) 恒大于0。
第一节 遗传算法(GA)
复制体现了“适者生存”的自然法则。一般都采用适应度成 比例的概率方法,使高性能的个体得以更大的概率生存,从而 提高全局收敛性和计算效率。 1.3.3 比例选择算子 (1) 选择算子或复制算子的作用: 从当前代群体中选择出一些比较优良的个体,并将其复制 到下一代群体中。 (2) 最常用和最基本的选择算子: 比例选择算子。
第一节 遗传算法(GA)
1.3 基本遗传算法的实现
遗传算法的寻优过程就是通过染色体的结合,即通过双亲的 基因遗传(复制)、变异和交叉等,使解的编码发生变化,从而 可根据“适者生存”的规律,最终找出最好的解。
遗传算法中的解空间和编码空间的映射关系 由设计空间向遗传算法编码空间的映射称为编码; 而由编码空间向设计空间的映射称为解码。
(3) 比例选择算子:
指个体被选中并遗传到下一代群体中的概率与该个体的 适应度大小成正比。
(4) 执行比例选择的手段是轮盘选择。
轮盘法的基本精神是:个体被选中的概率取决于个体的 相对适应度。
第一节 遗传算法(GA)
轮盘法的基本思路:个体被选中的概率取决于个体的相对 适应度: pi = fi / fi ( i=1,2,…,M ) 式中 pi——个体i被选中的概率; fi——个体i的适应度; fi——群体的累加适应度。 显然,个体适应度愈高,被选中的概率愈大。但是,适应 度小的个体也有可 能被选中,以便增加下一代群体的多样性。
第一节 遗传算法(GA)
算法特点:
1. 并行特点 操作对象是一组可行解,而非单个可行解,搜索轨道有 多条,而非单条。
2.遗传算法只需目标函数的取值信息,无需梯度等其他信息,具 有很强的通用性. 适合:大规模、高度非线性的不连续多峰函数的优化 无解析表达式的目标函数的优化 3.遗传算法有较大的可能性可得到全局最优解. 4.遗传算法具有良好的可操作性. 遗传算法的处理对象通常不是参数本身,而是对参数进行 了编码的个体,目标函数可解释为编码化个体(可行解)的适 应值,这使遗传算法不受函数连续性、可导性等条件的限制。
第一节 遗传算法(GA)
1 8 8 23 3
2 2 10 49 7
3 17 27 76 10
4 7 34 13 3
5 2
6
7
8 7
9 3 69
10 7 76
12 11
36 48 59 66 1 27 57 1 3 7
1.3.4 单点交叉算子
(1) 交叉算子作用
通过交叉,子代的基因值不同于父代。交换是遗传算法产生新 个体的主要手段。正是有了交换操作,群体的性态才多种多样。