模拟退火遗传算法的研究及应用课件.ppt
《模拟退火遗传算法的研究及应用课件.ppt》由会员分享,可在线阅读,更多相关《模拟退火遗传算法的研究及应用课件.ppt(30页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、模拟退火遗传算法的研究及应用xyABC0y=f(x)一般算法的问题:1)对函数本身有要求(连续性,可微性)2)限于局部最优解Q:如何实现针对一般问题的全局搜索?D案例索引 1 1遗传算法理论(GA)遗传算法的基本原理生物进化原理优化参数形成的编码串联群体优胜劣汰,适者生存适应度函数复制、交叉、变异筛选继承优化适应度高遗传算法流程图编码方式二进制编码实数编码非数值编码格雷码编码十进制编码(随机)产生初始种群是否满足停止准则是输出结果并结束计算个体适应度值选择运算交叉运算变异运算否产生新一代种群编码选择算子(23)轮盘赌选择排序选择最优个体保存随机联赛选择交叉算子(17)单点交叉两点交叉均匀交叉算
2、术交叉变异算子 基本位变异均匀变异二元变异高斯变异适应度函数一定的遗传代数子代与夫代适应值稳定算法终止条件遗传算法的特点n自组织、自适应和智能性;n直接处理的对象是参数编码集,而不是问题参数本身;n搜索过程中使用的是基于目标函数值的评价信息,搜索过程既不受优化函数连续性的约束,也没有优化函数必须可导的要求;n易于并行化;n基本思想简单,运行方式和实现步骤规范,便于具体使用。遗传算法伪代码*Pc:交叉发生的概率*Pm:变异发生的概率*M:种群规模*G:终止进化的代数*Tf:进化产生的任何一个个体的适应度函数超过Tf,则可以终止进化过程*/初始化Pm,Pc,M,G,Tf等参数。随机产生第一代种群P
3、opdo 计算种群Pop中每一个体的适应度F(i)。初始化空种群newPopdo根据适应度以比例选择算法从种群Pop中选出2个个体if(random(0,1)Pc)对2个个体按交叉概率Pc执行交叉操作if(random(0,1)Pm)对2个个体按变异概率Pm执行变异操作将2个新个体加入种群newPop中 until(M个子代被创建)用newPop取代Popuntil(任何染色体得分超过Tf,或繁殖代数超过G)2 2案例应用物流配送中心选址问题Q:选哪几个作为物流配送中心使在需求满足的情况下成本最低。需求点 10个供给点 3个待选物流配送中心 6个ki1234561871112762910878
4、8312610899假设某物流公司有3个供货点Q1,Q2和Q3,可供资源分别为A1=40,A2=60,A3=50;有10个用户H1,H2,H10,需求量Dj(j=1,2,10),固定成本为Fi,容量限制为Wi,变动成本率为Vi,相关数据见下表。ij12345678910175581032443267738893453107796788974889966554456657910433666886448655D20151020101015201020i123456Fi(固定成本)80601206090130Mi(容量限制)302040203550Vi(变动成本系数)7580807570801、配送
5、中心到需求点的单位成本及需求量表2、供货点到配送中心的单位成本表3、配送中心相关成本及容量限制表物流配送中心选址问题模型构建约束条件:m:供货点的个数;Ak:第k 个供货点到配送中心的总供应量;n:配送中心备选地址点的个数;Mi:配送中心备选地址点的最大容量;P:配送中心允许选定个数的上限;l:用户个数;D,为用户需求量;cki:由第k 个供货点到第i 个配送中心的单位运输成本;xki:由第k 个供货点到第i 个配送中心的运输量;hij:由第i 个配送中心到第j 个用户的单位运输成本;Xij:第i 个配送中心到第j 个用户的运输量;Vi:第i 个配送中心的可变成本系数;Fi:第i 个配送中心的
6、固定费;Wi:第i 个配送中心的流量。基本假设:1)由供货点到配送中心、由配送中心到用户的运费均为线性函数;2)配送中心的可变成本为流量的线性函数。编码 初始群体 1选择个体编号初始群体p(0)仓库选择点目标函数值适应值占总数百分比累计百分比选择次数选择结果1011111w2,w3,w4,w5,w631703300.10 0.10 11010112101111w1,w3,w4,w5,w6350000.00 0.10 01101113101011w1,w3,w5,w625489520.29 0.39 20111114110111w1,w2,w4,w5,w6228012200.37 0.76 21
7、010115111011w1,w2,w3,w5,w63450500.02 0.78 01101116111101w1,w2,w3,w4,w627847160.22 1.00 11111010110%29%37%22%1#2#4#6#3#0%2%5#适应度函数轮盘赌选择2 交叉n 交叉概率:0.8n 交叉方式:单点交叉个体编号选择结果配对情况交叉点位置交叉结果约束条件筛选110101112363410111110111121101111100111101113011111011111011111410101110101110101151101111101011101116111101111111
8、1111113 变异个体编号交叉结果变异点变异结果子代群体p(1)110111141010111010112110111/1100111100113011111/0111110111114101011/1010111010115110111/1101011101016111111/111111111111n 变异概率:0.05n 变异方式:基本位变异MATLAB遗传算法工具箱操作n 打开工具箱:键入命令:gatool 点击命令:MATLAB遗传算法工具箱操作参数适应值函数约束条件图形显示界面function Main()%定义全局变量global VariableNum POPSIZE Max
9、Gens PXOVER PMutation VariableNum=6%变量个数POPSIZE=10%种群大小MaxGens=100%种群代数PXOVER=0.8%交叉概率PMutation=0.05%变异概率%读取数据文件load E:现代优化算法遗传算法bound.txtVarBound=bound(:,1:2);global Pop newPopPop=zeros(POPSIZE+1,VariableNum);newPop=zeros(POPSIZE+1,VariableNum);%初始化种群for i=1:POPSIZE for j=1:VariableNum Pop(i,j)=ran
10、d(1);endend%计算适应值fitnessList=zeros(POPSIZE,1);for i=1:POPSIZE fitnessList(i,1)=fitness(Pop(i,1:VariableNum);end%保存最好值和最坏值Best=zeros(1,VariableNum+1);Worst=zeros(1,VariableNum+1);maxvalue=max(fitnessList);indexMax=find(fitnessList=maxvalue,1,first);Best(1,1:VariableNum)=Pop(indexMax,1:VariableNum);Be
11、st(1,VariableNum+1)=maxvalue;minvalue=min(fitnessList);indexMin=find(fitnessList=minvalue,1,first);Worst(1,1:VariableNum)=Pop(indexMin,1:VariableNum);Worst(1,VariableNum+1)=minvalue;genetation=1;while genetationMaxGens%计算适应度区间 sumfit=sum(abs(fitnessList);relativeFitness=zeros(POPSIZE,1);relativeFitn
12、ess=abs(fitnessList)/sumfit;for i=2:POPSIZE relativeFitness(i)=relativeFitness(i-1)+relativeFitness(i);end%选择操作 newPop=Select(Pop,relativeFitness);%交叉操作 newPop=Xcross(newPop,VariableNum,PXOVER);%变异操作 newPop=Mutation(newPop,VariableNum,PMutation,VarBound);%计算新种群适应值 for i=1:POPSIZE fitnessList(i,1)=fi
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 模拟 退火 遗传 算法 研究 应用 课件
限制150内