遗传算法及其MATLAB实现
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
60年代中期,美国Michigan大学的J. H. Holland教授提出借鉴生物自然遗传的基 本原理用于自然 和人工系统的自适应行为研究和串编码技术; 1967年,他的学生J. D. Bagley在博士论文中首次提出“遗传算法(Genetic Algorithms)”一词; 1975年,Holland出版了著名的“Adaptation in Natural and Artificial Systems”, 标志遗传算法的诞生
五,遗传算法的应用实例
• 1、无约束目标函数最大值遗传算法求解策略 • 2、CUMCM中多约束非线性规划问题的求解
一、遗传算法的概述
1.1、产生与发展 1.2、生物学基础 1.3、算法的特点及定义
1.1 产生与发展
产生
早在50年代,一些生物学家开始研究运用数字计算机模 拟生物的自然遗传与自然进化过程; 1963年,德国柏林技术大学的I. Rechenberg和H. P. Schwefel,做风洞实验时,产生了进化策略的初步思想; 60年代, L. J. Fogel在设计有限态自动机时提出进化规 划的思想。1966年Fogel等出版了《基于模拟进化的人 工智能》,系统阐述了进化规划的思想。
• ⑤进化代数:进化代数过小,算法不容易收敛,种群还
没有成熟;过大,算法已经熟练或者种群过于早熟不可能 在收敛,继续进化就没有意义,只会增加时间开支和资源 浪费。进化代数一般取100~500.
三、遗传算法的流程
•
•
3.1、算法流程图 3.2、遗传算法举例
3.1 算法流程图
开始 Gen=0 编码 随机产生M个初始个体 满足终止条件?
5 i 1 0 1 2 3 4 i 1 i
则对应参数x的值为
2 ③个体适应度评估:遗传算法按照与个体适应度成正比的几率决定当前种
群各个个体遗传到下一代群体中的机会。个体适应度大的个体更容易被遗传 到下一代。通常求目标函数最大值的问题可以直接把目标函数作为检测个体 适应度大小的函数。 ④复制运算:复制运算是根据个体适应度大小决定下代遗传的可能性。若 f 设种群中个体总数为N,个体 f i的适应度为 则个体i被选中的几率 P f
1.3 遗传算法定义及特点
(1)定义
遗传算法是模拟达尔文生物进化论的自然选择和孟德尔遗传学机 理的生物进化过程的计算模型,是一种通过模拟自然进化过程搜索最 优解的方法。 特点
遗传算法的并行性。 遗传算法并行的方式从问题解的串集开始嫂索,而不是从单个解 开始。这是遗传算法与传统优化算法的极大区别。传统优化算法从单 个初始值迭代求最优解的;容易误入局部最优解。遗传算法从串集开 始搜索,覆盖面大,利于全局择优。 遗传算法的本质 • 遗传算法本质上是一种启发式的随机搜索算法,所以由遗传算法 得出的结果每次都不尽相同。
i
i i N k 1 k
x 2 21*
42
5
1
3.3548
当个体复制几率决定后在产生【0,1】区间的均匀随机数来决定那些个个体 参加复制,若个体适应度高的被选中的几率就大则可能被多次选中它的遗传 基因就会在中群众扩散;若个体的复制几率小则会被淘汰。
⑤交配运算:“交配运算”是使用单点或多点进行交叉的算子,
U
5
• • • • • • • • • • •
第一个随机数为0.301431,大于 Q1 小于Q2 ,所以 U 2 被选中; 第二个随机数为0.322062,大于 Q1 小于Q2 ,所以 U 2 被选中; 第三个随机数为0.766503,大于 Q4 小于Q5 ,所以 U 5 被选中; 第四个随机数为0.881893,大于 Q4 小于Q5 ,所以 U 5 被选中; 第五个随机数为0.350871,大于Q2 小于Q3 ,所以 U 3 被选中; 依照轮盘选择法,新种群的染色体组成如下: U 1 =[11000](U 2) U 2 =[11000](U 2) U 3 =[11111](U 5) U 4 =[11111](U 5) U 5 =[01000](U 3 )
⑦倒位运算:对一复杂的问题可能需要用到“倒位”。倒位是指 一个染色体某区段正常排列顺序发生 的颠倒造成染色体内的 180
。
DNA序列重新排列,它包括臂内倒位和臂间倒位。 例:染色体S=1001011011101110011010101001划线部分倒位得 ' S =100101100101001110111101001
1.2 生物学基础
• 以自然选择学说为核心的现代生物进化理论,其基本观点 是:种群是生物进化的基本单位,生物进化的实质是种群 基因频率的改变。基因突变和基因重组、自然选择及隔离 是物种形成过程的三个基本环节,通过他们的综合运用, 种群产生分化,最终导致新物种的形成。 • 新物种形成的途径和方式有两种:渐变式和爆发式。 • 渐变式主要通过变异的逐渐积累而成亚种,再由亚种形成 一个或多个新种,新种又分为两种类型,即继承式新种形 成和分化式新种形成;爆发式不通过亚种这一阶段而迅速 形成新的物种,其分为三种类型,即杂交产生新种,染色 体结构变化形成新种和多倍体化的新种形式。
遗传算法及其MATLAB实现
41组,顾英辉,魏猛,王艺潞
一、遗传算法的概述
1、产生与发展 2、生物学基础 3、算法的特点及定义
二、遗传算法的原理
1、 简单遗传算法 2、简单遗传算法原理 3、遗传算法参数选择
三、遗传算法的流程
1、算法流程图 2、遗传算法举例
四,遗传算法的MATLAB程序设计
• 1、程序设计流程及参数选取 • 1.1、遗传算法的程序设计伪代码 • 1.2、适应度函数调整 • 2、遗传算法工具箱核心函数的用法 • 3、Genetic Algorithm and Direct Search Toolbox适应 度函数设计
k
U L
2
k
1
②解码:解码的目的是为了将不直观的二进制数据串还原成十进制。设某
k k 1 k 2 3 2 1
k i 1 i 1 i k
一个体的二进制编码为 b b b ...b b b , 则对应的解码公式为 x L (b 2 ) U L 2 1 例:设有参数x 【2,4】,现用5位二进制数对x编码,若x=10101,它对应的 十进制为 b 2 1* 2 0 * 2 1* 2 0 * 2 1* 2 21
编号(染色体) 编码(基因型) 01101 11000 01000 X实际值(表现型) 13 24
U U U U
1 2
3
4
10011
11111
2
4
8
19
31
U
5
(2)评价个体适应度与新种群复制
对一个染色体数串的适应度的评价由下列三个步骤组成: 将染色体串进行反编码(解码),转换成真实值; 评价目标函数f(x); 将目标函数值转为适应度。 依照染色体的适应度值进行新种群的复制,步骤如下: ①计算染色体U k 的适应度值 U k = f ( xk ); ②计算种群的适应度值总和 5 F f ( xk ) ; k 1 ③计算每个染色体被复制的概率 f ( xk ) pk F ; ④计算每个染色体被复制的累计概率 k Qk P j 。 j 1
'
'
首先用随机数产生一个或多个交配点位置,然后两个个体在交配 点位置互换部分基因码形成两个子个体。 例:有两条染色体S 01001011 ,S 10010101 交换后4位基因得 ,S 10011011 S 01000101 可以被看成是原染色体 S1 和S 2 的子代染色体。
1 2
• ②种群初始化:初始种群的生成是随机的。在初始种群
• ③交配概率:交配概率过大容易破坏已有的有利模式,
随机性增大,容易错失最优个体;过小不能有效更新种群。 交配概率一般取值0.4~0.99。
• ④变异概率:变异概率过小时种群多样性下降太快,容
易导致有效基因迅速丢失且不容易修补;过大时,尽管种 群的多样性得到保证,但是高阶模式被破坏的概率也随之 增大。变异概率一般取0.0001~0.2。
(2)特点
二、遗传算法的原理
• • • 2.1、 简单遗传算法 2.2、简单遗传算法原理 2.3、遗传算法参数选择
2.1 简单遗传算法(SGA)
(在此只介绍简单遗传算法SGA)
SGA由编解码、个体适应评估和遗传运算三大模块构 成,而遗传算法又包括染色体复制、交叉、变异、甚至倒 位等。在遗传算法中,定义种群或群体为所有编码后的染 色体集合,表征每个个体是相应的染色体。
2.3遗传算法参数选择
• ①种群规模:既不能过大也不能过小。过大会导致结果
难以收敛且浪费资源,稳健型下降;过小会导致种群进化 不能按照模式定理产生所预测的期望值。种群规模的一个 建议值0~100。 的赋予之前,尽量进行一个大概的区间估计,以免初始种 群分布在远离全局最优解的编码空间,导致遗传算法的搜 索范围受到限制, 同时也为算法减轻负担。
• 依照轮盘选择法,转动轮盘5次(种群中有五条染色体),每 次选择一个作为新种群的染色体。假设五次中产生的0~1随机 数序列如下: 0.301431 0.322062 0.766503 0.881893 0.350871 • 根据以上的计算方法,可以先计算出种群中每个染色体的适应 度和概率,如下表所示:
编号(染色体) 适应度 复制概率 Pk 累计概率 Qk
U
U U
1
169
576 64
0.07930549
0.27029564 0.03003285
0.07930549
0.34960113 0.37963398
2
3
U
4
361
961
0.16940404
0.45096199
0.54903802
1.00000000
j = j+1
N源自文库
j = M? Y
N
j = pc· M? Y
Gen=Gen+1
N
j = pm· L· M? Y
• 3.2遗传算法举例 2 例:函数 f ( x) x ,求其在区间[0,31]的最大值
(1)编码
将变量转换成二进制数串,设要求的精度是1,意味着变量 5 4 2 应该被分成至少31个部分,由于 2 <31-0≦ ,所以二进制数串 位数为5。例如:二进制数01010,对应十进制为10,实际值 为: x=0+10×1=10 假设初始种群有五个个体,其染色体可随机生成如下:
2.2简单遗传算法原理
①编码:遗传算法的编码有浮点编码和二进制编码两种,这里只介
绍二进制编码规则。二进制编码既符合计算机处理信息的原理也 方便了对染色体进行遗传、编译和突变等操作。
k
例:某一参数的取值范围为(L,U),使用长度为k的二进制编码表示 该参数,则他共有2 种不同的编码。该参数编码时的对应关系为 0000000000000000000=0→L 0000000000000000001=1→L+ 0000000000000000010=2→L+2 ...... 1111111111111111111= 2 -1→U 易知:
发展
遗传算法——进化计算——计算智能——人工智能 70年代初,Holland提出了“模式定理”(Schema Theorem),一般认为是“遗 传算法的基本定理”,从而奠定了遗传算法研究的理论基础; 1985年,在美国召开了第一届遗传算法国际会议,并且成立了国际遗传算法学会 (ISGA,International Society of Genetic Algorithms); 1989年,Holland的学生D. J. Goldherg出版了“Genetic Algorithms in Search, Optimization, and Machine Learning”,对遗传算法及其应用作了全面而系统的论 述; 1991年,L. Davis编辑出版了《遗传算法手册》,其中包括了遗传算法在工程技术 和社会生活中大量的应用实例。
1
2
⑥突变运算:“突变运算”是使用基本位进行基因突变为了避免
在算法后期出现种群过早收敛,对于二进制的基因码组成的个体 种群实行基因码的小几率翻转。即对于二进制编码0变1,1变0 例:将染色体S=11001101第3位上的 0变为1即 ' ' S=11001101→11101101= S 。 S 可被看作是原染色体的子代染 色体。
Y
输出结果 终止
N
计算群体中各个体适应度 从左至右依次执行遗传算子
pm
j=0 选择个体变异点 执行变异
pc
j=0 根据适应度选择复制个体 执行复制
j=0 选择两个交叉个体 执行交叉 将交叉后的两个新个体 添入新群体中 j = j+2
将复制的个体添入 新群体中
j = j+1
将变异后的个体添入 新群体中