最优化理论概要PPT课件
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
初始化空种群newPop
do
{
根据适应度以比例选择算法从种群Pop中选出2个个体
if ( random ( 0 , 1 ) <wk.baidu.comPc )
{
对2个个体按交叉概率Pc执行交叉操作
}
if ( random ( 0 , 1 ) < Pm )
{
对2个个体按变异概率Pm执行变异操作
}
将2个新个体加入种群newPop中
2
模拟退火法
模拟退火其实也是一种贪心算法,但是它
的搜索过程引入了随机因素。模拟退火算
法以一定的概率来接受一个比当前解要差
的解,因此有可能会跳出这个局部的最优
解,达到全局的最优解。
.
10
.
11
P(dE)expd(E) kT
冶金学中,退火是将材料加热后再经特定速率冷却,目的是增大晶粒的体积,并且减少晶格中 的缺陷。材料中的原子原来会停留在使内能有局部最小值的位置,加热使能量变大,原子会离开原 来位置,而随机在其他位置中移动。退火冷却时速度较慢,使得原子有较多可能可以找到内能比原 先更低的位置。
其中k是一个常数,exp表示自然指数,且dE<0。温度越高,出现一次能量差为dE的降温的概率 就越大;温度越低,则出现降温的概率就越小。又由于dE总是小于0,因此dE/kT < 0 ,所以P(dE)的 函数取值范围是(0,1) 。
关于爬山算法与模拟退火,有一个有趣的比喻: 爬山算法:兔子朝着比现在高的地方跳去。它找到了不远处的最高山峰。但是这座山不一定是
5
简单说来就是:繁殖过程, 会发生基因交叉,基因突变 ,
适应度低的个体会被逐步淘 汰,而适应度高的个体会越 来越多。那么经过N代的自
然选择后,保存下来的个体 都是适应度很高的,其中很 可能包含史上产生的适应度 最高的那个个体。
.
6
遗传算法的三个最基本操作
1
2
选择
常用的选择策略是 “比 例选择”,也就是个体 被选中的概率与其适应 度函数值成正比。
空间也增大,有时枚举法很难求出最优解,人们意识到应 该把精力主要放在寻求满意解上,遗传算法是最佳工具之 一。
.
4
生物学术语说明
染色体
染色体又可以叫做基因型 个体,一定数量的个体组 成了群体,群体中个体的 数量叫做群体大小
基因
基因是串中的元素,基因用于表 示个体的特征。eg:有一个串 S=1011,则其中的1,0,1,1分别称 为基因,它们的值称为等位基因
} until ( M个子代被创建 )
用newPop取代Pop
}until ( 任何. 染色体得分超过Tf, 或繁殖代数超过G )
8
模拟退火法
2 Simulate Anneal Arithmetic
.
9
爬山算法与模拟退火法
1
爬山算法
爬山算法是一种简单的贪心搜索 算法,该算法每次从当前解的临 近解空间中选择一个最优解作为 当前解,直到达到一个局部最优 解。
表示一个与基因在串中的位
置称为基因位置(基因位),
基因地点 基因位置在串中由左向右计 (位置) 算。eg:在串S=1011中,0的
基因位置是3 .
特征值
在用串表示整数时, 基因的特征值与二进 制的权一致。eg:在 S=1011中基因位置3中 的1特征值是2,基因 位置1中的1特征值是8.
适应度
各个个体对环境的适应程 度叫做适应度。为了体现 染色体的适应能力,引入 了对问题中的每一个染色 体都能进行度量的函数, 叫适应度函数。 这个函 数是计算个体在群体中被 使用的概率。
珠穆朗玛峰。这就是爬山算法,它不能保证局部最优值就是全局最优值。 模拟退火:兔子喝醉了。它随机地跳了很长时间。这期间,它可能走向高处,也可能踏入平地。
但是,它渐渐清醒了并朝最高方向跳去。这就是模拟退火。
.
12
算法描述
若J( Y(i+1) )>= J( Y(i) ) (即移动后得到更优解),则总是接 受该移动
最优化理论
——三大经典算法
.
1
三大经典算法
NO.1 遗传算法 NO.2 模拟退火法 NO.3 神经网络算法
.
2
遗传算法
1 GeneticAlgorithm
.
3
遗传算法是一类借鉴生物界的进化规律(优胜劣汰,
适者生存)演化而来的随机化搜索方法。广泛应用于函数 优化和组合优化领域。 1.函数优化:许多被构造出的各种复杂形式的测试函数 “连续函数或离散函数,凹函数或凸函数,单峰函数或多 峰函数等”,非线性多模型多目标的优化问题遗传算法可 以方便得到较好的结果。 2.组合优化:随着问题规模的增大,组合优化问题的搜索
7
选择
轮盘赌算法
/* * 按设定的概率,随机选中一个个 体 * P[i]表示第i个个体被选中的概率 */ int RWS() { m =0; r =Random(0,1); //r为0至1的随机 数 for(i=1;i<=N; i++) { /* 产生的随机数在m~m+P[i]间则 认为选中了i * 因此i被选中的概率是P[i] */ m = m + P[i]; if(r<=m) return i; } }
交叉前:
交叉
00000|011100000000|10000
11100|000001111110|00101
交叉后:
00000|000001111110|10000
.
11100|011100000000|00101
3
变异
变异前: 000001110000000010000 变异后: 000001110000100010000
基本遗传算法伪代码
/* * Pc:交叉发生的概率 * Pm:变异发生的概率 * M:种群规模 * G:终止进化的代数 * Tf:进化产生的任何一个个体的适应度函数超过Tf,则可以终止进化过程 */ 初始化Pm,Pc,M,G,Tf等参数。随机产生第一代种群Pop
do
{
计算种群Pop中每一个体的适应度F(i)。
若J( Y(i+1) )< J( Y(i) ) (即移动后的解比当前解要差),则以 一定的概率接受移动,而且这个概率随着时间推移逐渐降低 (逐渐降低才能趋向稳定)
.
13
/* * J(y):在状态y时的评价函数值 * Y(i):表示当前状态 * Y(i+1):表示新的状态 * r: 用于控制降温的快慢 * T: 系统的温度,系统初始应该要处于一个高温的状态 * T_min :温度的下限,若温度T达到T_min,则停止搜索 */ while( T > T_min ) {