遗传算法
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
• 遗传算法的基本思想正是基于模仿生物界遗传学 的遗传过程.它把问题的参数用基因代表,把问 题的解用染色体代表(在计算机里用二进制码表 示),从而得到一个由具有不同染色体的个体组 成的群体.这个群体在问题特定的环境里生存竞 争,适者有最好的机会生存和产生后代.后代随 机化地继承了父代的最好特征,并也在生存环境 的控制支配下继续这一过程.
• 遗传算法应用举例: 遗传算法应用举例:
首先计算种群S 中各个体的适应度f 首先计算种群 1中各个体的适应度 (si) : f (s1) = f(13) = 132 = 169, f (s2) = f(24) = 242 = 576 , f (s3) = f(8) = 82 = 64, f (s4) = f(19) = 192 = 361 , 再计算种群S 中各个体的选择概率: 再计算种群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
数学概念
被选定的一组可行解 可行解的编码 编码中的元素 元素在编码中的位置 可行解所对应的适应函数值 根据入选概率定出的一组可行解 保留或复制适应值大的可行解,去掉小的 可行解 根据交叉原则产生的一组新解 闭区间[0,1]上的一个值,一般为0.65~0.90 编码的某些元素被改变 开区间(0,1)内的一个值, 一般为 0.001~0.01 目标函数取到最大值,最优的可行解
qi = ∑ P( x j )
j =1
i
• 遗传算法应用举例: 遗传算法应用举例:
设从区间[0, 中产生 个随机数如下: 中产生4个随机数如下 设从区间 1]中产生 个随机数如下: r1 = 0.450126, r2 = 0.110347 r3 = 0.572496, r4 = 0.98503
染色体 s1=01101 s2=11000 s3=01000 s4=10011 适应度 169 576 64 361 选择概率 0.14 0.49 0.06 0.31 积累概率 0.14 0.63 0.69 1.00 选中次数 1 2 0 1
个体与种群 1. 个体与种群
● 个体就是模拟生物个体而对问题中的对象
(一般就是问题的解)的一种称呼,一个个 体也就是搜索空间中的一个点。
●
种群(population)就是模拟生物种群而由若 干个体组成的群体, 它一般是整个搜索空间 的一个很小的子集。
适应度与适应度函数 2. 适应度与适应度函数
(2,5,6)---- 010 101 110
遗传操作 4. 遗传操作 亦称遗传算子(genetic operator),就是关 于染色体的运算。遗传算法中有三种遗传操作:
● ● ●
选择-复制(selection-reproduction) 交叉(crossover,亦称交换、交配或杂交) 变异(mutation,亦称突变)
二. 基本原理
生成初始种群 计算适应度 终止 ? 选择-复制 交叉 变异 结束
遗传算法基本流程框图
生成新一代种群
• 遗传参数设置: 遗传参数设置:
◆
N:群体大小,即群体中所含个体的数量,一般取 :群体大小,即群体中所含个体的数量, T:GA的终止进化代数,一般取100~500 : 的终止进化代数,一般取 的终止进化代数 Pc:交叉概率,一般取 :交叉概率,一般取0.4~0.99 Pm:变异概率,一般取 :变异概率,一般取0.0001~0.1
利用遗传算法求解区间[0,31]上的二次函数 上的二次函数y=x2 例4-1 利用遗传算法求解区间 上的二次函数 的最大值。 的最大值。
分析:
Y
y=x2
31
X
原问题可转化为在区间[0, 原问题可转化为在区间 31] 中搜索能使y取最大值的点 的问题。 取最大值的点a的问题 中搜索能使 取最大值的点 的问题。 那么, 中的点x就是个体 就是个体, 那么,[0, 31] 中的点 就是个体,函 数值f(x)恰好就可以作为 的适应度, 数值 恰好就可以作为x的适应度, 恰好就可以作为 的适应度 区间[ 区间[0, 31]就是一个解空间 。这 ] 只要能给出个体x的适当染色体 样, 只要能给出个体 的适当染色体 编码, 编码,该问题就可以用遗传算法来 解决。 解决。
• 遗传算法应用举例: 遗传算法应用举例:
第二代种群S 中各染色体的情况: 第二代种群 2中各染色体的情况: 染色体 s1=11001 s2=01100 s3=11011 s4=10000 适应度 625 144 729 256 选择概率 0.36 0.08 0.41 0.15 积累概率 0.36 0.44 0.85 1.00 估计的 选中次数 1 0 2 1
• 遗传算法应用举例: 遗传算法应用举例:
假设这一轮选择复制操作中,种群 中的4个染色体都被选中 个染色体都被选中, 假设这一轮选择复制操作中,种群S2中的 个染色体都被选中,则得到 群体: 群体: s1’=11001(25), s2’= 01100(12) ( ) ( ) s3’=11011(27), s4’= 10000(16) ( ) ( ) 做交叉运算, 做交叉运算,让s1’与s2’,s3’与s4’ 分别交换后三位基因: 与 , 与 分别交换后三位基因: s1’’ =11100(28), s2’’ = 01001(9) ( ) ( ) s3’’ =11000(24), s4’’ = 10011(19) ( ) ( ) 这一轮仍然不会发生变异。 这一轮仍然不会发生变异。
遗传学概念 个体 群体 染色体 基因 基因位 适应值 种群 选择 交叉 交叉概率 变异 变异概率 进化、 适者生存
遗传算法概念 要处理的基本对象、结构 个体的集合 个体的表现形式 染色体中的元素 某一基因在染色体中的位置 个体对于环境的适应程度,或在环境压力下 的生存能力 被选定的一组染色体或个体 从群体中选择优胜的个体,淘汰劣质个体的 操作 一组染色体上对应基因段的交换 染色体对应基因段交换的概率(可能性大小) 染色体水平上基因变化 染色体上基因变化的概率(可能性大小) 个体进行优胜劣汰的进化,一代又一代地优 化 也就是可行解
• 遗传算法应用举例: 遗传算法应用举例:
于是,经复制得群体: 于是,经复制得群体: s1’ =11000(24), s2’ =01101(13) ( ) ( ) s3’ =11000(24), s4’ =10011(19) ( ) ( ) 设交叉率p 设交叉率 c=100%,即S1中的全体染色体都参加交叉运 , 配对, 配对。 算 。 设 s1’与s2’配对,s3’与s4’配对。 分别交换后两位 与 配对 与 配对 基因,得新染色体: 基因,得新染色体: s1’’=11001(25), s2’’=01100(12) ( ) ( ) s3’’=11011(27), s4’’=10000(16) ( ) ( )
●
适应度(fitness)就是借鉴生物个体对环境的 适应程度,而对问题中的个体对象所设计的 表征其优劣的一种测度。 适应度函数(fitness function)就是问题中的 全体个体与其适应度之间的一个对应关系。
●
它一般是一个实值函数。该函数就是遗传 算法中指导搜索的评价函数。
3. 染色体与基因 染色体(chromosome)就是问题中个体的 某种字符串形式的编码表示。字符串中的字符 也就称为基因(gene)。 例如: 个体 9 ---染色体 1001
遗传算法
基本概念 1 基本概念 基本原理及应用举例 原理及应用举例 2 基本原理及应用举例 3 遗传算法的模式理论 遗传算法的模式理论 的模式理论 遗传算法的改进算法 4 遗传算法的改进算法 5 基于遗传算法的流水车间调度方法
一.基本概念 • 遗传算法(Genetic Algorithm—GA),是 模拟达尔文的遗传选择和自然淘汰的生物 进化过程的计算模型,它是由美国 Michigan大学的J.Holland教授于1975年首 先提出的.遗传算法作为一种新的全局优 化搜索算法,以其简单通用、鲁棒性强、 适于并行处理及应用范围广等显著特点, 奠定了它作为21世纪关键智能计算之一的 地位.
s30.06 s2 0.49 s4 0.31 s1 0.14
P( xi ) =
f ( xi )
∑ f (x )
j =1 j
N
• 遗传算法应用举例: 遗传算法应用举例:
在算法中赌轮选择法可用下面的子过程来模拟: 在算法中赌轮选择法可用下面的子过程来模拟: 区间内产生一个均匀分布的随机数r。 ① 在[0, 1]区间内产生一个均匀分布的随机数 。 区间内产生一个均匀分布的随机数 则染色体x 被选中。 ② 若r≤q1,则染色体 1被选中。 ③ 若 qk-1<r≤qk(2≤k≤N), 则染色体 k 被选中 。 其中的 i , 则染色体x 被选中。 其中的q 称为染色体x 的积累概率, 称为染色体 i (i=1, 2, …, n)的积累概率,其计算公式 的积累概率 为:
s1′=01000101, s2′=10011011 可以看做是原染色体s1和s2的子代染色体。
变异 就是改变染色体某个(些)位上的基因。 例如, 设染色体 s=11001101 将其第三位上的0变为1, 即 s=11001101 →11101101= s′。 s′也可以看做是原染色体s的子代染色体。
选择-复制
通常做法是:对于一个规模为N的
种群S,按每个染色体xi∈S的选择概率P(xi)所决定 的选中机会, 分N次从S中随机选定N个染色体, 并 进行复制。 这里的选择概率P(xi)的计算公式为
P( xi ) = f ( xi )
∑ f (ቤተ መጻሕፍቲ ባይዱ )
j =1 j
N
交叉 就是互换两个染色体某些位上的基因。 例如, 设染色体 s1=01001011, s2=10010101, 交换其后4位基因, 即
步5 按选择概率P(xi)所决定的选中机会, 每次从S中随机选定1个个体并将其染色体复制, 共做N次,然后将复制所得的N个染色体组成 群体S1; 步6 按交叉率Pc所决定的参加交叉的染色 体数c,从S1中随机确定c个染色体,配对进行 交叉操作,并用产生的新染色体代替原染色体, 得群体S2;
• 遗传算法应用举例: 遗传算法应用举例:
• 群体的染色体都将逐渐适应环境,不断进 化,最后收敛到一族最适应环境的类似个 体,即得到问题最优的解.值得注意的一 点是,现在的遗传算法是受生物进化论学 说的启发提出的,这种学说对我们用计算 机解决复杂问题很有用,而它本身是否完 全正确目前生物界对此学说尚有争议.
序号 1 2 3 4 5 6 7 8 9 10 11 12 13
• 遗传算法应用举例: 遗传算法应用举例:
解:(1) 设定种群规模,编码染色体,产生初始种群。 设定种群规模,编码染色体,产生初始种群。 将种群规模设定为 , 位二进制数编码染色体, 将种群规模设定 为4,用 5位二进制数编码染色体, 取下 位二进制数编码染色体 列个体组成初始种群 初始种群S 列个体组成初始种群 1: s1= 13 (01101), s2= 24 (11000) s3= 8 (01000), s4= 19 (10011) (2) 定义适应度函数:f (x)=x2 定义适应度函数: (3) 计算各代种群中的各个体的适应度 并对其染色体进 计算各代种群中的各个体的适应度, 行遗传操作,直到适应度最高的个体(即 ( 行遗传操作,直到适应度最高的个体 即31(11111))出 )出 现为止。 现为止。
• 遗传算法应用举例: 遗传算法应用举例:
设变异率p 设变异率 m=0.001,这样,群体 1中共有 ,这样,群体S 5×4×0.001=0.02 × × 位基因可以变异。 0.02位显然不足 位 , 所以本轮遗传 位基因可以变异 。 位显然不足1位 位显然不足 操作不做变异。 操作不做变异。 于是,得到第二代种群 于是,得到第二代种群S2: s1=11001(25), s2=01100(12) ( ) ( ) s3=11011(27), s4=10000(16) ( ) ( )
20~100
◆ ◆ ◆
基本遗传算法 步1 在搜索空间U上定义一个适应度函数 f(x),给定种群规模N,交叉率P c 和变异率 Pm,代数T; 步2 随机产生U中的N个个体s1, s2, …, sN, 组成初始种群S={s1, s2, …, sN},置代数计数 器t=1; 步3 计算S中每个个体的适应度f() ; 步4 若终止条件满足,则取S中适应度 最大的个体作为所求结果,算法结束。