大连海事大学《现代优化技术》第9讲:现代启发式算法之遗传算法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

● 赌轮选择法
s30.06
s4 0.31
s1 0.14
s2 0.49
赌轮选择示意
选择
染色体 s1=01101 s2=11000 s3=01000 s4=10011
适应度 选择概率 选中次数
169
0.14
1
576
0.49
2
64
0.06
0
361
0.31
1
于是,得到群体:
s1’ =11000(24), s2’ =01101(13) s3’ =11000(24), s4’ =10011(19)
交叉操作 (crossover operation )
• 非常规码的交叉操作 (1)非重基因法:随机选取一个交叉位,两个后代在交叉位前的基因分别继承
各自双亲的交叉位之前的基因、交叉位之后的基因分别按异方双亲的基因顺 序选取不重基因。
(2)不变位法:随机产生一个同染色体有相同维数的不变位的由0,1组成的向 量,1表示不变、0表示变化。不变位的基因继承各自双亲的基因、变位的基 因与(1)相同处理。
针对问 题设计
编码
编码与解码
• GA中的编码方法可分为三大类:二进制编码方法 、浮点数编码方法和符号编码方法。
• 二进制编码方案

是GA中最常用的一种编码方法。它所构成
的个体基因型是一个二进制编码符号串。
• GA的算法过程简述如下。首先在解空间中取一群 点,作为遗传开始的第一代。每个点(基因)用 一个二进制数字串表示,其优劣程度用适应度函 数(fitness function)来衡量 。
现代启发式算法之遗传算法
选择操作(selection operation)
• 确定性选择:
现代启发式算法之百度文库传算法
选择操作(selection operation)
• 随机选择
roulette wheel selection
染色体的 适应度和所占的比例
用转轮方法进行选择
现代启发式算法之遗传算法
5×4×0.001=0.02 位基因可以变异。
0.02位显然不足1位,所以本轮遗传操作不 做变异。
• 这些新的染色体将决定新的个体(后代)的新的性 状。
生物学中的遗传概念
在一个群体中,并不是所有的个体都能得到相 同的繁殖机会,对生存环境适应度高的个体将 获得更多的繁殖机会;对生存环境适应度较低 的个体,其繁殖机会相对较少,即所谓自然选 择。而生存下来的个体组成的群体,其品质不 断得以改良,称为进化。
现代优化技术
第9讲:现代启发式算法之遗传算法
生物学中的遗传概念
– 在生物细胞中,控制并决定生物遗传特性的物质 是脱氧核糖核酸,简称DNA。染色体是其载体。
– DNA是由四种碱基按一定规则排列组成的长链。 四种碱基不同的排列决定了生物不同的表现性状 。例如,改变DNA长链中的特定一段(称为基因 ),即可改变人体的身高。
现代启发式算法之遗传算法
变异操作(mutation operation)
• 常规码: 最常用的一种变异是指定一个基因从0反位为1、或从1反位
为0的概率-变异概率。通常这种操作作用于每一个基因。 • 非常规码:
常用的方式为交换两个基因位置、或反序两个基因间的顺序 等。
现代启发式算法之遗传算法
• 不具有集中化探索机制.
– 可加入 Local Search 探索
• 过早收敛(premature convergence)
– 导入多样化探索
• 通过交叉・变异操作极易产生非可行解。
– 路径(Path)接续法 – 隧道(tunnel)法等
现代启发式算法之遗传算法
交叉作用示意图
现代启发式算法之遗传算法
现代启发式算法之遗传算法
交叉操作(crossover operation )
• 常规码的交叉操作 (1)双亲双子法: 1)单一交叉位: 2)多交叉位:
(交叉位间交互替代)
(2)双亲单子法: 1)随机选 2)优胜劣汰
(3)显性遗传法:
每个基因优胜劣汰
(4)单亲遗传法:
交换两基因、两个交叉位间倒序等
现代启发式算法之遗传算法
选择操作(selection operation)
• 随机选择
现代启发式算法之遗传算法
选择操作(selection operation)
• 随机选择
现代启发式算法之遗传算法
选择操作(selection operation)
• 精英策略
(elitism, elite strategy ) 当前种群中最好的个体无条件保留到下一代
• 最大遗传代数:Max_Gen • 与下界值偏差:
• 进程监控:根据监控结果,已经K代没有 进化到一个更好的解
• 组合终止规则:上述规则的组合
现代启发式算法之遗传算法
适应度函数
• 适应度函数:评价进化解质量的唯一方式、 决定探索的方向。
• 设计适应度函数的原则: 1)最优解应赋予最优的适应度 2)适应度函数能引导探索向最优解方向进行
• 例如:对于销售员旅行问题,按一条回路中城市的 次序进行编码。从城市w1开始,依次经过城市w2 ,……,wn,最后回到城市w1,我们就有如下编 码表示:
w1 w2 …… wn
由于是回路,记wn+1=w1。它其实是1,…… ,n的一个循环排列。要注意w1,w2,……,wn 是互不相同的。
现代启发式算法之遗传算法
码, 该问题就可以用遗传算法来解决。
解 (1) 设定种群规模,编码染色体,产生初始
种群。
将种群规模设定为4;用5位二进制数编码 染色体;取下列个体组成初始种群S1:
s1= 13 (01101), s2= 24 (11000) s3= 8 (01000), s4= 19 (10011) (2) 定义适应度函数, 取适应度函数:f (x)=x2
交叉
设交叉率pc=100%,即S1中的全体染色体都 参加交叉运算。
设s1’与s2’配对,s3’与s4’配对。分别交
换后两位基因,得新染色体:
s1’’=11001(25), s2’’=01100(12) s3’’=11011(27), s4’’=10000(16)
变异
设变异率pm=0.001。 这样,群体S1中共有
• 二进制编码符号串的长度与问题所要求的
求解精度有关。设某一参数的取值范围是
[B, A],B<A。则二进制编码的编码精度为

BA 2l 1
假设某一个体的编码是: X: blbl-1bl-2…b2b1,则对应的解码公式为:
x
B
BA 2l 1
(
l i 1
bi
2i 1 )
• 例如,对于x∈[0,1023],若用10位长的二 进制编码来表示该参数,则下述符号串:
现代启发式算法之遗传算法
Genetic Algorithm(粗略)
• 选择(X) =在集団 X 中, 通过自然淘汰,仅将优秀
的子孙集団作为下一代.
• 生成(X) =在集団 X 中, 通过 交叉 或 変異,
生成新的集団. Genetic Algorithm
P(0) :=初始解集团 for t=0 to T do
– 细胞在分裂时,DNA通过复制而转移到新产生的 细胞中,新的细胞就继承了旧细胞的基因。
• 有性生殖生物在繁殖下一代时,两个同元染色体之 间通过交叉而重组,亦即在两个染色体的某一相同 位置处DNA被切断,其前后两串分别交叉形成两 个新的染色体。
• 在细胞进行复制时可能以很小的概率产生某些复制 差错,从而使DNA发生某种变异,产生新的染色 体。
现代启发式算法之遗传算法
Genetic Algorithm (遗传算法)
• 模仿生物遗传进化过程 • 同时产生复数的可行解 (即,解集团 population) • 新的解集团的生成来自于两种基本操作:
交叉(crossover) 变异(mutation).
遗传算法与 生物遗传的
对应关系
现代启发式算法之遗传算法
现代启发式算法之遗传算法
• (1)简单适应度函数:
适 应 度 • (2)线性加速适应度函数:线性放大目标函数的差异 函 数
现代启发式算法之遗传算法
• 非线性加速适应度函数:如




• 排序适应度函数:将同一代群体中的m个染色体按目标函 数值从小到大排列、并依次取值为1,2,…,m.则

直接得到相应的适应度(各个染色体分布概率)
P(t+1) := 选择( Y ) Y:=生成( P(t) ) end
现代启发式算法之遗传算法
编码(code, representation)
编码:在特定的数据结构下, 从可行解的状态空间到编码解的状态空间的一个映射。
常规码:{0,1}1:包括该项;0:不包括该项。如背包问题
非常规码:非{0,1}向量的表示。如TSP问题的一个都市排列
• 选择过程监控
现代启发式算法之遗传算法
Genetic Algorithm(详细)
现代启发式算法之遗传算法
遗传算法的评价
• 纪录每一次迭代的最良解(best-so-far) • 在线比较(on-line):
• 离线比较(off-line):
现代启发式算法之遗传算法
Genetic Algorithm 的弱点
变异作用示意图
遗传算法应用举例
利用遗传算法求解区间[0,31]上的二次函数 y=x2的最大值。
Y
y=x2
31 X
分析
原问题可转化为在区间[0, 31]中搜索能
使y取最大值的点a的问题。那么,[0, 31] 中的点x就是个体, 函数值f(x)恰好就可以作 为x的适应度,区间[0, 31]就是一个(解)空 间 。这样, 只要能给出个体x的适当染色体编
(3) 计算各代种群中的各个体的适应度, 并 对其染色体进行遗传操作,直到适应度最高的个 体(即31(11111))出现为止。
首先计算种群S1中各个体 s1= 13(01101), s2= 24(11000) s3= 8(01000), s4= 19(10011)
的适应度f (si) 。 容易求得
编码(code, representation)
* 常规码的优缺点: 直观、容易表达问题特性及约束,探索高 效、缺点为需解码
* 非常规码的优缺点: 考虑问题特性及约束,探索浪费。 交叉、变异操作设计复杂。
现代启发式算法之遗传算法
交叉与变异
交叉(crossover)
亲世代集团
子孙世代集团
变异 (mutation)
X: 0 0 1 0 1 0 1 1 1 1 就可表示一个个体。它所对应的参数 值是x=175。此时的编码精度为δ=1。
• 二进制编码的特点 -编码、解码操作简单易行; -交叉、变异等遗传操作便于实现; -符合最小字符集编码原则; -便于利用图式(模式)定理对算法进行
理 论分析。
-编码长度较大
• 浮点编码
f (s1) = f(13) = 132 = 169 f (s2) = f(24) = 242 = 576 f (s3) = f(8) = 82 = 64 f (s4) = f(19) = 192 = 361
再计算种群S1中各个体的选择概率。 选择概率的计算公式为
由此可求得 P(s1) = P(13) = 0.14 P(s2) = P(24) = 0.49 P(s3) = P(8) = 0.06 P(s4) = P(19) = 0.31
初始参数的选取
• 种群规模:1)通常取个体编码长度的整数倍 2)可动态调整:扩大群体规 现行最良解改善变慢模; 减少群体规模 现行最良解改善快 ,加快探索速度
• 初始群体的选取:
1)随机选取:多样性、探索效率低
2)其他启发性算法所得到的近似解
免费 午餐
缺乏代表性、早熟
?
现代启发式算法之遗传算法
终止规则
遗传算法的基本思想和基本概念
• 基本思想
• 遗传算法GA把问题的解表示成“染色体”, 在算法中即是以一定方式编码的串。并且,在执行 遗传算法之前,给出一群“染色体”,也即假设解 。然后,把这些假设解置于问题的“环境”中,并 按适者生存的原则,从中选择出较适应环境的“染 色体”进行复制,再通过交叉,变异过程产生更适 应环境的新一代“染色体”群。这样,一代一代地 进化,最后就会收敛到最适应环境的一个“染色体 ”上,它就是问题的最优解。
所谓浮点数编码方法是指个体的每个 染色体用某一范围内的一个浮点数来表示, 个体的编码长度等于其决策变量的个数。因 为这种编码方法使用的是决策变量的真实值 ,所以浮点数编码方法也叫做真值编码方法 。
• 符号编码方法是指个体染色体编码串中的基
因值取自一个无数值含义、而只有代码含义的符号 集。
• 这个符号集可以是一个字母表,如{A,B,C,D,…}; 也可以是一个数字序号表,如{1,2,3,…};还可以是 一个代码表,如{A1,A2,A3,…}等等。
相关文档
最新文档