收藏 分享(赏)

遗传算法的实现及应用举例.ppt

上传人:HR专家 文档编号:5957392 上传时间:2019-03-22 格式:PPT 页数:158 大小:1.47MB
下载 相关 举报
遗传算法的实现及应用举例.ppt_第1页
第1页 / 共158页
遗传算法的实现及应用举例.ppt_第2页
第2页 / 共158页
遗传算法的实现及应用举例.ppt_第3页
第3页 / 共158页
遗传算法的实现及应用举例.ppt_第4页
第4页 / 共158页
遗传算法的实现及应用举例.ppt_第5页
第5页 / 共158页
点击查看更多>>
资源描述

1、第六节 算法实现及应用,一、算法实现 遗传算法提供了一种求解复杂系统优化问题的通用框架。对于具体问题,可按下述步骤来构造: 确定问题编码方案 确定适配值函数 设计遗传算子(选择、交叉、变异) 确定算法参数 确定算法终止条件 生成初始种群,SGA实现,个体适应度评价 在遗传算法中,以个体适应度的大小来确定该个体被遗传到下一代群体中的概率。个体适应度越大,该个体被遗传到下一代的概率也越大;反之,个体的适应度越小,该个体被遗传到下一代的概率也越小。基本遗传算法使用比例选择算子来确定群体中各个个体遗传到下一代群体中的数量。为正确计算不同情况下各个个体的遗传概率,要求所有个体的适应度必须为正数或0,不能

2、是负数。,为满足适应度取非负值的要求,基本遗传算法一般采用下面两种方法之一将目标函数值变换为个体的适应度。 方法一:对于目标函数是求极大化,方法为:,式中, 为一个适当地相对比较小的数它可用下面几种方法之一来选取: 预先指定的一个较小的数; 进化到当前代为止的最小目标函数值; 当前代或最近几代群体中的最小目标值。,比例选择算子 比例选择实际上是一种有退还随机选择,也叫做赌盘(Roulette Wheel)选择,因为这种选择方式与赌博中的赌盘操作原理非常相似。 比例选择算子的具体执行过程是:先计算出群体中所有个体的适应度之和;其次计算出每个个体的相对适应度的大小,此值即为各个个体被遗传到下一代群

3、体中的概率;最后再使用模拟赌盘操作(即0到1之间的随机数)来确定各个个体被选中的次数。,单点交叉算子 单点交叉算子是最常用和最基本的交叉操作算子。单点交叉算子的具体执行过程如下:对群体中的个体进行两两随机配对;对每一对相互配对的个体,随机设置某一基因座之后的位置为交叉点;对每一对相互配对的个体,依设定的交叉概率 在其交叉点处相互交换两个个体的部分染色体,从而产生出两个新个体。,基本位变异算子 基本位变异算子的具体执行过程为:对个体的每一个基因座,依变异概率 指定其为变异点;对每一个指定的变异点,对其基因值做取反运算或用其他等位基因值来代替,从而产生出一个新的个体。,简单演示,问题:求 (1)编

4、码:编码长度为5 (2)初始群体生成:群体大小设置为4,随机产生四个个体:编码: 01101,11000,01000,10011解码: 13 24 8 19适应度: 169 576 64 361 (3)适应度函数:,(4)轮盘赌选择:选择概率个体: 01101,11000,01000,10011适应度: 169 576 64 361选择概率:0.14 0.49 0.06 0.31 选择 11000 和 01101交配产生下一代,(5)交叉操作:发生交叉的概率取大交叉点位置的选取是随机的(单点交叉)0110 1 0110 0 1100 0 1100 1,(6)变异:发生变异的概率取小改变某个字节

5、 11001 11101 (7)新群体的产生:保留上一代最优个体,1个新个体取代旧个体11101,11000,01000,10011 (8)重复上述操作20次,或许就能够得到最优解!,应用实例:TSP,问题回顾 给定n个城市以及两两城市之间的距离,求解一条从某个城市出发、不重复地遍历所有其它城市并最终又回到起始城市的最短路径。 数学描述 给定图G=(V,E), V为顶点集, E为边集,确定一条长度最短的Hamilton回路,TSP问题,问题复杂度:指数增长的!(NP完全问题),12个城市,具有39916800条不同的路径。,一条路径对应一个排列!,交叉算子,传统的交叉算子可能产生无效路径。,交

6、叉算子,(1)基于位置的交叉,把一个父代在向量上的被选元的位置强加到另一个父代。,父代1: 1 2 3 4 5 6 7 8 9 10,父代2: 5 9 2 4 6 1 10 7 3 8,所选位置: * * * *,子代1: 1 9 2 3 6 4 5 7 8 10,子代2: 9 2 3 4 5 6 1 8 10 7,交叉算子,(2)部分映射交叉,利用父代所选段内元的对应定义子代。,父代1: 2 6 4 3 8 1 5 10 7 9,父代2: 8 5 1 10 7 6 2 4 3 9,子代1: 5 1 4 3 7 6 2 10 8 9,子代2: 7 2 6 10 8 1 5 4 3 9,变异算子

7、,起双重作用:1、提供和保持群体的多样性;2、搜索算子的作用。,(1) 基于位置的变异:随机选择两个元,然后把第二个元放在第一个元之前;,(2) 基于次序的变异:随机选择两个元,然后交换他们的位置;,(3) 打乱变异:随机选择一段,然后打乱这段内的次序。,编码方案 路径表达:对一个旅行最自然的表达 一个旅行 517894623 的编码就是(5 1 7 8 9 4 6 2 3) 编码空间和解空间一一对应,总量为n! 个? 其实一些解是相同的,因为 (5 1 7 8 9 | 4 6 2 3)= (4 6 2 3 | 5 1 7 8 9) 二者是同一个解 (n -1)!/2,应用实例1:TSP,适应

8、度函数 就取为目标函数的倒数,即路径总长度的倒数 初始种群 随机生成40个 终止条件 2000次迭代 参数设置 自定,选择操作算子: 轮盘式选择 首先计算每个个体 i 被选中的概率然后根据概率的大小将将圆盘分为 n个扇形,每个扇形的大小为 。选择时转动轮盘,参考点r落到扇形i则选择个体i 。,交叉操作算子 Davis提出OX算子:通过从一个亲体中挑选一个子序列旅行并保存另一个亲体的城市相对次序来构造后代 例如: p1=(1 2 3 | 4 5 6 7 | 8 9) p2=(4 5 2 | 1 8 7 6 | 9 3) 首先保持中间部分o1=(X X X | 4 5 6 7 | X X )o2=

9、(X X X | 1 8 7 6 | X X ),交叉操作算子 然后移走p2中已在o1中的城市4、5、6和7后,得到 21893 该序列顺次放在o1中: o1=(2 1 8 | 4 5 6 7 | 9 3) 类似地,可以得到另一个后代: o2=(2 3 4 | 1 8 7 6 | 5 9),变异操作算子 采用倒置变异:在染色体上随机地选择两点,将两点间的子串反转 例如 原个体:(1 2 3 4 5 6 7 8 9) 随机选择两点:(1 2 | 3 4 5 6 | 7 8 9) 倒置后的个体:(1 2 | 6 5 4 3 | 7 8 9),中国城市TSP的一个参考解,应用实例2:函数优化,函数优

10、化 编码方案采用二进制编码 对子变量定义域根据计算精度进行离散化处理, 然后根据离散化后待定解的个数选择合适长度的 二进制字符串进行编码 例如;0,1,计算精度0.001, 则0,0.001,0.002,0.998,0.999,1.000, 个数为1001 则用长度为10的二进制字符串一次表征所有离散 点0000000000,000000001,1111110001。,适应度函数例如,f(x)=x2 - x5 ,取Cmax=2, 即可得到满足要求的F(x) 其它的就类似于TSP的求解了,已知函数其中 ,用遗传算法求解y的最大值。,例1 多元函数优化问题,运行步骤,运行步骤,运行步骤,运行步骤,

11、运行步骤,运行步骤,运行步骤,例2 一元函数优化问题,问题的提出一元函数求最大值:,问题的提出用微分法求取 f(x) 的最大值:解有无穷多个:,问题的提出当i为奇数时xi对应局部极大值点,i为偶数时xi对应局部极小值。x19即为区间-1,2内的最大值点此时,函数最大值 f(x19) 比f(1.85)=3.85稍大。,编码表现型:x基因型:二进制编码(串长取决于求解精度)串长与精度之间的关系:若要求求解精度到6位小数,区间长度为2-(-1)3,即需将区间分为3/0.000001=3106等份。所以编码的二进制串长应为22位。,产生初始种群产生的方式:随机产生的结果:长度为22的二进制串产生的数量

12、:种群的大小(规模),如30,50,1111010011100001011000110011001110101010111010101000111100100001001011110010011100111001 0001100101001100000011 0000011010010000000000,计算适应度不同的问题有不同的适应度计算方法本例:直接用目标函数作为适应度函数将某个体转化为-1,2区间的实数:s= x=0.637197计算x的函数值(适应度):f(x)=xsin(10x)+2.0=2.586345,计算适应度二进制与十进制之间的转换:第一步,将一个二进制串(b21b20b0

13、)转化为10进制数:第二步,x对应的区间-1,2内的实数:,(0000000000000000000000)-1 (1111111111111111111111)2,遗传操作选择:轮盘赌选择法;交叉:单点交叉;变异:小概率变异,模拟结果设置的参数:种群大小50;交叉概率0.75;变异概率0.05;最大代数200。得到的最佳个体:smax=;xmax=1.8506;f(xmax)=3.8503;,模拟结果进化的过程:,主程序,%用遗传算法进行简单函数的优化 clearbn=22; %个体串长度 inn=50; %初始种群大小 gnmax=200; %最大代数 pc=0.75; %交叉概率 pm=

14、0.05; %变异概率,Continue,算法的设计与实现,主程序,%产生初始种群,0,1向量 s=round(rand(inn,bn);%计算适应度,返回适应度f和累积概率p f,p=objf(s);,Continue,主程序,gn=1; while gngnmax+1for j=1:2:inn%选择操作seln=sel(s,p);%交叉操作scro=cro(s,seln,pc);scnew(j,:)=scro(1,:);scnew(j+1,:)=scro(2,:);%变异操作smnew(j,:)=mut(scnew(j,:),pm);smnew(j+1,:)=mut(scnew(j+1,:

15、),pm);end,Continue,主程序,s=smnew; %产生了新的种群%计算新种群的适应度 f,p=objf(s);%记录当前代最好和平均的适应度fmax,nmax=max(f);fmean=mean(f);ymax(gn)=fmax;ymean(gn)=fmean;,Continue,主程序,%记录当前代的最佳个体x=n2to10(s(nmax,:);xx=-1.0+x*3/(power(2,bn)-1);xmax(gn)=xx;gn=gn+1 end gn=gn-1;,Continue,主程序,%绘制曲线 subplot(2,1,1); plot(1:gn,ymax;ymean)

16、; title(历代适应度变化,fonts,10); legend(最大适应度,平均适应度); string1=最终适应度,num2str(ymax(gn); gtext(string1); subplot(2,1,2); plot(1:gn,xmax,r-); legend(自变量); string2=最终自变量,num2str(xmax(gn); gtext(string2);,End,计算适应度和累计概率函数,%计算适应度函数 function f,p=objf(s);r=size(s); %读取种群大小 inn=r(1); %有inn个个体 bn=r(2); %个体长度为bn,Cont

17、inue,计算适应度和累计概率函数,for i=1:innx=n2to10(s(i,:); %将二进制转换为十进制xx=-1.0+x*3/(power(2,bn)-1); %转化为-1,2区间的实数f(i)=ft(xx); %计算函数值,即适应度 end f=f; %行向量转列向量,Continue,计算适应度和累计概率函数,%计算选择概率 fsum=0; for i=1:innfsum=fsum+f(i)*f(i); end for i=1:innps(i)=f(i)*f(i)/fsum; end,Continue,计算适应度和累计概率函数,%计算累积概率 p(1)=ps(1); for i

18、=2:innp(i)=p(i-1)+ps(i); end p=p;,Back to main.m,计算目标函数值函数,%目标函数 function y=ft(x);y=x.*sin(10*pi*x)+2;,Back to objf.m,函数n2to10(),Continue,function x = n2to10(s)x = 0;for j = 1:22x = x + s(j) * 2(22-j);end,function x = n2to10(s)x = s(1);for j = 1:21x = x * 2 + s(j+1);end,选择操作函数,%“选择”操作 function seln=

19、sel(s,p); inn=size(p,1); %从种群中选择两个个体 for i=1:2r=rand; %产生一个随机数prand=p-r;j=1;while prand(j)0j=j+1;endseln(i)=j; %选中个体的序号 end,Back to main.m,交叉操作函数,%“交叉”操作 function scro=cro(s,seln,pc); r=size(s); inn=r(1); bn=r(2); pcc=pro(pc); %根据交叉概率决定是否进行交叉操作,1则是,0则否,Continue,交叉操作函数,if pcc=1chb=round(rand*(bn-2)+1

20、; %在1,bn-1范围内随机产生一个交叉位scro(1,:)=s(seln(1),1:chb) s(seln(2),chb+1:bn);scro(2,:)=s(seln(2),1:chb) s(seln(1),chb+1:bn); elsescro(1,:)=s(seln(1),:);scro(2,:)=s(seln(2),:); end,Back to main.m,变异操作函数,%“变异”操作 function snnew=mut(snew,pm);r=size(snew); bn=r(2); snnew=snew;,Continue,变异操作函数,pmm=pro(pm); %根据变异概

21、率决定是否进行变异操作,1则是,0则否 if pmm=1chb=round(rand*(bn-1)+1; %在1,bn范围内随机产生一个变异位snnew(chb)=abs(snew(chb)-1); end,Back to main.m,运行程序,运行程序,运行程序,运行程序,策略调整,针对不同实际问题需要调整相应策略 同一个实际问题不同的人也有不同的做法 编码方案 适应度函数设计 选择算子 交叉算子 变异算子 初始种群,编码方案 本质:如何表示解 二进制: 自变量高维、大范围连续、高精度的时候很难处理 冗余问题,离散化后解的个数介于2(n-1)和2n之间 D进制, D=3,8,16, 实数编

22、码:无需编码和解码 序列编码:例如TSP的路径表达 树编码:非定长 自适应编码-长度可调节,适应度函数 是进行自然选择的定量标准 直接采用目标函数 引入适应值调节 线性变换 乘幂变换 指数变换 自适应变换,选择算子 轮盘赌选择(roulette wheel selection) 最基本、最常用的方式,又叫适应度比例选择算子 最佳个体保存(elitist model) 把适应度最高的个体保留到下一代,又叫精英保留 排序模型(rank - based model) 按适应度函数大小排序,根据事先设定的概率表分配选择概率 联赛选择模型(tournament selection model) 随机选择

23、几个进行比较,高的被选,又叫锦标赛模型,选择算子 期望值模型(expected value model) 排挤模型(crowding model) 浓度控制策略 共享机制 截断选择,交叉算子 简单交叉 最基本、最常用的方式,双亲互换子串 平坦交叉 二者之间均匀随机产生 算术交叉 双亲的凸组合 线性交叉 1:1,3:1,1:3比较最好的两个留下,交叉算子 混合交叉 离散交叉 启发式交叉 模拟二进制交叉 单峰正态分布交叉 单纯形交叉 父体中心交叉 几何交叉 均匀交叉 基于模糊联接的交叉,变异算子 随机变异 区间内均匀随机取 非一致变异 某个区间内随机扰动 边界变异 取边界值 多项式变异 高斯变异

24、Cauthy变异 自适应变异 Muhlenbein变异,初始种群 对计算结果和计算效率有影响 全局性要求初始解尽量分散 设计一些生成方法,求解TSP的策略调整,编码方案 二进制编码:交叉和变异很难处理 顺序表示:1985 年 Grefenstette提出,序表示是指所有城市依次排列构成一个顺序表(order list) ,对于一条旅程,可以依旅行经过顺序处理每个城市,每个城市在顺序表中的顺序就是一个遗传因子的表示,每处理完一个城市,从顺序表中去掉该城市. 处理完所有城市以后,将每个城市的遗传因子表示连接起来,就是一条旅程的基因表示. 例如,顺序表C = (1 ,2 ,3 ,4 ,5 ,6 ,7

25、 ,8 ,9) ,一条旅程为5 - 1 - 7 - 8 - 9 - 4 - 6 - 3 - 2. 按照这种编码方法,这条旅程的编码为表l = (5 1 5 5 5 3 3 3 2 1),编码方案 路径表示:最自然、直接的表示方法 布尔矩阵表示:将一个旅程定义为一个优先权布尔矩阵M ,当且仅当城市 i 排在城市j 之前时矩阵元素mij = 1. 这种方法用n n 矩阵M 代表一条旅程, M具有如下三个性质: 1) 矩阵中1 的数目为n ( n - 1) / 2 ; 2) mii = 0 , i= 1 ,2 , ., n ; 3) 若mij = 1 ,且mjk = 1 ,那么mik = 1.,选择

26、算子 轮盘赌选择(roulette wheel selection), 最佳个体保存(elitist model) , 期望值模型(expected value model) , 排序模型(rank - based model), 联赛选择模型(tournament selection model) 排挤模型(crowding model) 浓度控制策略 上述机制混合,交叉算子 依赖于编码方式 基于路径表示的顺序交叉 基于路径表示的部分匹配交叉 贪心交叉法:在一个父个体中选择第一个城市作为子个体的第一个城市,然后在两个父个体中进行比较并找到与已经选择的那个城市相邻且距离较近的城市作为下一个城市

27、扩展到旅程中;如果与该城市相邻的两个城市有一个已经在旅程中,那么选择另外一个,如果两个都在旅程中,那么就选择其它没有被选择的城市. 循环交叉 边重组交叉,变异算子 全局意义 点位变异:变异仅以一定的概率(通常很小) 对串的某些位做值的变异; 逆转变异:在串中,随机选择两点,再将这两点内的子串按反序插入到原来的位置中; 对换变异:随机选择串中的两点,交换其值(码) ; 插入变异:从串中随机选择1 个码,将此码插入随机选择的插入点中间.,变异算子 贪心对换变异:从一个染色体中随机的选择两个城市(即两个码值) ,然后交换它们,得到新的染色体,以旅程长度为依据比较交换后的染色体与原来的染色体的大小,保

28、留旅程长度值小的染色体. 倒位变异算子:在个体编码串中随机选择两个城市, 第一个城市的右城市与第二个城市之间的编码倒序排列,从而产生一个新个体。如,若有父个体P ( 1 4 5 2 3 6 ) ,假设随机选择的城市是4 ,3 ,那么产生的新个体为Offspring (1 4 3 2 5 6) .,遗传算法的前景,性能分析,并行遗传算法,分类系统,图像处理和模式识别,优化与调度,机器学习,智能控制,其它,人工生命 自动程序设计,遗传算法的应用,二、算法应用领域 遗传算法提供了一种求解复杂系统优化问题的通用框架,它不依赖于问题的具体领域,对问题的种类有很强的鲁棒性,所以广泛应用于很多学科。下面列举

29、一些遗传算法的主要应用领域。 函数优化、组合优化、生产调度、自动控制、机器人学、图象处理、人工生命、遗传编程、机器学习等。,函数优化。函数优化是遗传算法的经典应用领域,也是对遗传算法进行性能测试评价的常用算例。对于一些非线性、多模型、多目标的函数优化问题,用其他优化方法较难求解,而遗传算法却可以方便地得到较好的结果。,组合优化。遗传算法是寻求组合优化问题满意解的最佳工具之一,实践证明,遗传算法对于组合优化问题中的NP完全问题非常有效。 TSP问题、背包问题、图划分问题,生产调度问题。生产调度问题在很多情况下所建立起来的数学模型难以精确求解,即使经过一些简化之后可以进行求解也会因简化得太多而使求

30、解结果与实际相差太远。现在遗传算法已经成为解决复杂调度问题的有效工具。,自动控制。遗传算法已经在自动控制领域中得到了很好的应用,例如基于遗传算法的模糊控制器的优化设计、基于遗传算法的参数辨识、基于遗传算法的模糊控制规则的学习、利用遗传算法进行人工神经网络的结构优化设计和权值学习等。如:瓦斯管道控制、导弹控制、机器人控制等,机器人学。机器人是一类复杂的难以精确建模的人工系统,而遗传算法的起源就来自于对人工自适应系统的研究,所以机器人学自然成为遗传算法的一个重要应用领域。,图象处理。图像处理是计算机视觉中的一个重要研究领域。在图像处理过程中,如扫描、特征提取、图像分割等不可避免地存在一些误差,这些

31、误差会影响图像处理的效果。如何使这些误差最小是使计算机视觉达到实用化的重要要求,遗传算法在这些图像处理中的优化计算方面得到了很好的应用。 如,模式识别、特征抽取,人工生命。人工生命是用计算机、机械等人工媒体模拟或构造出的具有自然生物系统特有行为的人造系统。自组织能力和自学习能力是人工生命的两大重要特征。人工生命与遗传算法有着密切的关系,基于遗传算法的进化模型是研究人工生命现象的重要理论基础。,遗传编程。Koza发展了遗传编程的概念,他使用了以LISP语言所表示的编码方法,基于对一种树形结构所进行的遗传操作来自动生成计算机程序。 机器学习。基于遗传算法的机器学习,在很多领域中都得到了应用。例如基

32、于遗传算法的机器学习可用来调整人工神经网络的连接权,也可以用于人工神经网络的网络结构优化设计。,规划生产规划、并行机任务分配等; 设计通信网络设计、喷气发动机设计等; 信号处理滤波器设计等; 机器人路径规划等。,遗传算法的应用,函数优化是遗传算法的经典应用领域; 组合优化实践证明,遗传算法对于组合优化中的NP完全问题非常有效; 自动控制如基于遗传算法的模糊控制器优化设计、基于遗传算法的参数辨识、利用遗传算法进行人工神经网络的结构优化设计和权值学习等;,机器人智能控制遗传算法已经在移动机器人路径规划、关节机器人运动轨迹规划、机器人逆运动学求解、细胞机器人的结构优化和行动协调等; 组合图像处理和模

33、式识别目前已在图像恢复、图像边缘持征提取、几何形状识别等方面得到了应用;,遗传算法的应用,人工生命基于遗传算法的进化模型是研究人工生命现象的重要理论基础,遗传算法已在其进化模型、学习模型、行为模型等方面显示了初步的应用能力; 遗传程序设计Koza发展了遗传程序设计的慨念,他使用了以LISP语言所表示的编码方法,基于对一种树型结构所进行的遗传操作自动生成计算机程序;,遗传算法的应用,遗传算法的应用,约束最优化问题(Constrained Optimization Problems)的表述,1 解决带约束的函数优化问题,解决途径 将有约束问题转化为无约束问题(罚函数法,penalty functi

34、on method),历史较长; 改进无约束问题的方法,使之能用于有约束的情况(梯度投影算法),发展较晚。 遗传算法解决有约束问题的关键是对约束条件的处理(直接按无约束问题处理是行不通的:随机生成的初始点中可能有大量不可行解;遗传算子作用于可行解后可能产生不可行解)。,遗传算法的应用,1 解决带约束的函数优化问题,一般方法 罚函数法将罚函数包含到适应度评价中:关键是如何设计罚函数,需要谨慎地在过轻或过重惩罚之间找到平衡,针对不同问题设计罚函数。,遗传算法的应用,1 解决带约束的函数优化问题,一般方法 协同进化遗传算法(Coevolutionary Genetic Algorithm,1997)

35、以食物链关系、共生关系等为基础的生物进化现象称为协同进化;一个种群由问题的解组成,另一个种群由约束组成,两个种群协同进化,较好的解应满足更好的约束,较优的约束则被更多的解所违背。,遗传算法的应用,1 解决带约束的函数优化问题,罚函数法 评价函数的构造:加法 乘法,遗传算法的应用,1 解决带约束的函数优化问题,罚函数法 罚函数分类:定量惩罚简单约束问题变量惩罚复杂约束问题,包含两个部分:可变惩罚率和违反约束的惩罚量。,违反约束程度随违反约束程度变得严重而增加惩罚压力,静态惩罚; 进化迭代次数随着进化过程的进展而增加惩罚压力,动态惩罚。,遗传算法的应用,1 解决带约束的函数优化问题,罚函数法 交叉

36、运算:设父个体为x=x1,x2,xn和y=y1,y2,yn简单交叉单点算术交叉整体算术交叉基于方向的交叉:x=r(x-y)+x,r为(0,1)之间的随机数,并假设f(x)f(y)。,遗传算法的应用,1 解决带约束的函数优化问题,罚函数法 变异运算:设父个体为x=x1,x2,xn均匀变异非均匀变异(动态变异)边界变异: x=x1,x2,xk,xn,xk等概率地取用变异量的上界或下界,当最优解在可行域边界上或附近时,边界变异算子较为有效;基于方向的变异:x=x+rd,d为目标函数的近似梯度。,遗传算法的应用,1 解决带约束的函数优化问题,求解线性约束优化问题的遗传算法线性约束优化问题一般形式为:,

37、遗传算法的应用,1 解决带约束的函数优化问题,求解线性约束优化问题的遗传算法线性约束优化问题:目标函数可以是线性函数或非线性函数;思路消除可能的变量,消除等式约束设计罚函数 设计特别的遗传操作,遗传算法的应用,1 解决带约束的函数优化问题,求解线性约束优化问题的遗传算法例:77运输规划问题将物品由7个起运站运到7个目的地;已知由 i 站运到 j 地的单位运费是Cij,ai表示 i 站的供应量,bj表示 j 地的需求量,xij表示从 i 站到 j 地的运量。(i, j =1,2,7),遗传算法的应用,1 解决带约束的函数优化问题,求解线性约束优化问题的遗传算法例:77运输规划问题,遗传算法的应用

38、,1 解决带约束的函数优化问题,求解线性约束优化问题的遗传算法例:77运输规划问题对于非线性目标函数的构造,可以选用以下几种测试函数:(1)函数A,遗传算法的应用,1 解决带约束的函数优化问题,求解线性约束优化问题的遗传算法例:77运输规划问题(2)函数B,遗传算法的应用,1 解决带约束的函数优化问题,求解线性约束优化问题的遗传算法例:77运输规划问题(3)函数C,遗传算法的应用,1 解决带约束的函数优化问题,求解线性约束优化问题的遗传算法例:77运输规划问题(4)函数D,遗传算法的应用,1 解决带约束的函数优化问题,求解线性约束优化问题的遗传算法例:77运输规划问题(5)函数E,遗传算法的应

39、用,1 解决带约束的函数优化问题,求解线性约束优化问题的遗传算法例:77运输规划问题(6)函数F,遗传算法的应用,1 解决带约束的函数优化问题,求解线性约束优化问题的遗传算法例:77运输规划问题目标函数为罚函数为其中,k=1,P=1/14,f为第t代群体的平均适应度,T为最大运行代数,dij为约束的违反度。,遗传算法的应用,1 解决带约束的函数优化问题,求解线性约束优化问题的遗传算法例:77运输规划问题对于约束 ,个体染色体表示为(v11,v77),其约束违反度定义为:,遗传算法的应用,1 解决带约束的函数优化问题,求解线性约束优化问题的遗传算法例:77运输规划问题费用参数表对于函数A,取S2

40、,对于函数B、E和F,取S5。,遗传算法的应用,1 解决带约束的函数优化问题,求解线性约束优化问题的遗传算法例:77运输规划问题消除多余变量:可以消除13个变量,x11, x12, x17, x21, x31, x41, x51, x61, x71,其余36个变量设定为y1,y2,y36,遗传算法的应用,1 解决带约束的函数优化问题,求解线性约束优化问题的遗传算法例:77运输规划问题将原规划问题转化为:,遗传算法的应用,1 解决带约束的函数优化问题,求解线性约束优化问题的遗传算法例:77运输规划问题采用的参数:种群大小40,均匀变异概率0.08,边界变异概率0.03,非均匀变异概率0.07,简

41、单交叉概率0.10,单一算术概率0.10,整体算术概率0.10,运行代数8000。,遗传算法的应用,1 解决带约束的函数优化问题,遗传算法的应用,1 解决带约束的函数优化问题,求解线性约束优化问题的遗传算法例:77运输规划问题结果比较:GENOCOP(约束优化的遗传算法)GAMS(拟牛顿法非线性最优化算法),多目标优化问题解的存在性 怎样求解,遗传算法的应用,2 解决多目标优化问题,Pareto最优性理论在一个有k个目标函数最小化的问题中,称决策向量x*F是Pareto最优的,当不存在另外一个决策向量xF同时满足,遗传算法的应用,2 解决多目标优化问题,Pareto最优性理论多目标优化问题的解

42、通常是多个满意解的集合,称为Pareto最优集,解集中的决策向量称为非劣的。,遗传算法的应用,2 解决多目标优化问题,传统方法多目标加权法层次优化法目标规划法等特点:将多目标函数转化为单目标函数处理,只能得到特定条件下的某一Pareto解。,遗传算法的应用,2 解决多目标优化问题,多目标优化的遗传算法优势:并行地处理一组可能的解;不局限于Pareto前沿的形状和连续性,易于处理不连续的、凹形的Pareto前沿。目前基于Pareto的遗传算法占据主要地位。,遗传算法的应用,2 解决多目标优化问题,多目标优化的遗传算法聚合函数法:把多个目标函数表示成一个目标函数作为遗传算法的适应函数(聚合);无需

43、改动遗传算法,但权值难以确定;改进:自适应权值。,遗传算法的应用,2 解决多目标优化问题,多目标优化的遗传算法向量评价遗传算法(非Pareto法):子种群的产生根据每一个目标函数分别进行选择。,遗传算法的应用,2 解决多目标优化问题,多目标优化的遗传算法基于排序的多目标遗传算法:根据“Pareto最优个体”的概念对所有个体进行排序,依据这个排列次序来进行进化过程中的选择运算,从而使得排在前面的Pareto最优个体将有更多的机会遗传到下一代群体。,遗传算法的应用,2 解决多目标优化问题,多目标优化的遗传算法小生境Pareto遗传算法:为了保证寻优过程不收敛于可行域的某一局部,使种群向均匀分布于P

44、areto前沿面的方向进化,通过共享函数定义一小生境加以实现。,遗传算法的应用,2 解决多目标优化问题,TSP Benchmark 问题41 94;37 84;54 67;25 62;7 64;2 99;68 58;71 44;5462;83 69;64 60;18 54;22 60;83 46;91 38;25 38;24 42;58 69;71 71;74 78;87 76;18 40;13 40;82 7;62 32;58 35;45 21;41 26;44 35;4 50,遗传算法的应用,3 解决组合优化问题,TSP Benchmark 问题编码:直接采用解的表示形式, 30位(30个

45、城市)长,每位代表所经过的城市序号(无重复);适应度函数:个体所代表的路径距离的倒数;选择:轮盘赌方法,遗传算法的应用,3 解决组合优化问题,TSP Benchmark 问题交叉:有序交叉法1)随机选取两个交叉点;2)两个父个体交换中间部分;3)替换交换后重复的城市序号。,X1: 9 8 | 4 5 6 7 1 | 3 2 0 X2: 8 7 | 1 4 0 3 2 | 9 6 5,X1: 9 8 | 1 4 0 3 2 | 3 2 0 X2: 8 7 | 4 5 6 7 1 | 9 6 5,X1: 9 8 | 1 4 0 3 2 | 7 5 6 X2: 8 3 | 4 5 6 7 1 | 9

46、 0 2,遗传算法的应用,3 解决组合优化问题,TSP Benchmark 问题变异:随机选择同一个个体的两个点进行交换;初始参数:种群规模 100交叉概率 0.8变异概率 0.8终止代数 2000,遗传算法的应用,3 解决组合优化问题,TSP Benchmark 问题运行结果:,遗传算法的应用,3 解决组合优化问题,TSP Benchmark 问题运行结果:,遗传算法的应用,3 解决组合优化问题,TSP Benchmark 问题运行结果:,遗传算法的应用,3 解决组合优化问题,TSP Benchmark 问题运行结果:,遗传算法的应用,3 解决组合优化问题,TSP Benchmark 问题运

47、行结果:,遗传算法的应用,3 解决组合优化问题,TSP Benchmark 问题运行结果:,遗传算法的应用,3 解决组合优化问题,TSP Benchmark 问题运行结果:,遗传算法的应用,3 解决组合优化问题,优化神经网络的权值神经网络建模:,遗传算法的应用,4 在过程建模中的应用,优化神经网络的权值例:聚丙烯生产过程熔融指数的软测量模型输入变量:加氢量、釜压、升温时间、反应时间、搅拌电流;输出变量:熔融指数;样本数据:240组现场数据;,遗传算法的应用,4 在过程建模中的应用,优化神经网络的权值个体的表示:w11 w12 w1n wnm w1 wm b1 bm b适应度的设计:样本数据与神

48、经网络预测数据的误差和的倒数;,遗传算法的应用,4 在过程建模中的应用,优化神经网络的权值适应度函数的计算: load datat.txt; 对样本数据归一化; S1=6; for i=1:S1for j=1:5w1(i,j)=sol(i-1)*5+j);endw2(i)=sol(5*S1+i);b1(i)=sol(6*S1+i); end,b1=b1; b2=sol(7*S1+1);A=simuff(P,w1,b1,logsig,w2,b2,logsig); mse1=sumsqr(A-T)/s; eval=1/(1+mse1/0.0001);,遗传算法的应用,4 在过程建模中的应用,优化神经网络的权值遗传算子:可采用各种方法;bounds=ones(43,1)*-1 1; x endPop bpop trace=ga(bounds,jbx,1e-8 1 1,maxGenTerm,1000,normGeomSelect,0.08,simpleXover,0.6,binaryMutation,0.05);,遗传算法的应用,4 在过程建模中的应用,优化神经网络的权值优化结果:,遗传算法的应用,4 在过程建模中的应用,用遗传算法进行特征提取目的:从可能的m个特征中依据某个评价标准选出d个特征(md);,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 学术论文 > 大学论文

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报