ImageVerifierCode 换一换
格式:DOC , 页数:7 ,大小:174.04KB ,
资源ID:8991727      下载积分:10 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/8991727.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(MATLAB实验报告.doc)为本站上传会员【仙人****88】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

MATLAB实验报告.doc

1、 硕士生考查课程考试试卷 考试科目: MATLAB教程 考生姓名: 胡晓聪 考生学号: 2130132003 学 院: 管理学院 专 业: 企业管理 考生成绩: 任课老师 (签名) 考试日期:20 年 月 日 午 时至 时

2、 《MATLAB教程》试题: A、利用MATLAB设计遗传算法程序,寻找下图11个端点的最短路径,其中没有连接的端点表示没有路径。要求设计遗传算法对该问题求解。 B、设计遗传算法求解f(x)极小值,具体表达式如下: 要求必须使用m函数方式设计程序。 选择题目: B 一、问题分析(10分) 这是一个求极小值的问题,所以首先应该将其转换为遗传算法优化下的求最大值的问题,即可以使F=。转换以后即可利用遗传算法对其进行求解。 二、实验原理与数学模型(20分) 原理即是利用遗传算法,模拟自然界的进化过程,将三个自变量通过二进制编码形成种群

3、然后选择、交配、突变,通过一定代数的遗传最后得到真实问题的一个近似解。 数学模型其实是一个不断选择下逼近要求函数最低点的过程。 三、实验过程记录(含基本步骤、程序代码及异常情况记录等)(60分) (1)基本步骤: 1. 编码:对三个变量进行二进制编码,选择精度为0.0001,选定初始种群的个数 2. 完成一次的遗传,即对初始种群进行选择、交叉、突变得到新一代的种群 3. 重复上述过程一定次数,得到相应的近似解 4. 调试程序,根据得出的结果进行相应初始值以及算法的修改。 (2)程序: 主函数Bmain.m %整个过程:设定初始参数--初始化,用rand产生初始种群--

4、在for循环里完成一轮的selection、crossover、mutation得到新种群并记录最大适应度值,平均值 %在while循环里完成整体的gennerationmax次数的迭代,画出ymax,ymean的图像 %涉及到的子函数:fitnessfun targetfun selection crossover mutation ifcroifmutation %transform %变量含义:bitlength-用二进制表达个体所需要的bit位数 popsize-种群大小 population-种群的二进制矩阵 %precision-精度 pcrossover-交

5、配的概率 pmutation-突变的概率 bounds-区间范围 %generationmax-最大循环代数 clc; clear all; close all; global bitlength global boundsbegin global boundsend %% %参数带入 popsize=150; generationmax=50; precision=0.0001; pmutation=0.09; pcrossover=0.9; bounds=[-5.12 5.12]; %因为三个变量的区间一样,这里为了简化只列出了一个 如果三个区间不

6、一样 这里可以用矩阵列出 boundsbegin=bounds(:,1); boundsend=bounds(:,2); %% %编码位数计算 bitlength=ceil(log2((boundsend-boundsbegin)./precision));%位数计算公式,用ceil进一 %种群初始化 population=round(rand(popsize,bitlength*3));%用rand产生0-1之间的随机数,并用round四舍五入 [fitvalue,accumup]=fitnessfun(population);%计算适应度 ymax=zeros(gener

7、ationmax,1); ymean=zeros(generationmax,1); xmax=zeros(generationmax,3); scross=zeros(popsize,3*bitlength); scnew=zeros(popsize,3*bitlength); smnew=zeros(popsize,3*bitlength); generation=1; %% %while 循环下进行每一代的遗传过程 并记录相信的信息 while generation

8、opsize %for循环下完成一代 seln=selection(accumup); %完成选择--2个个体 scross1=crossover(population(:,1:bitlength),seln,pcrossover); %完成所选择的两个个体的crossover scross2=crossover(population(:,bitlength+1:2*bitlength),seln,pcrossover); scross3=crossover(p

9、opulation(:,2*bitlength+1:3*bitlength),seln,pcrossover); scross=[scross1 scross2 scross3]; scnew(i,:)=scross(1,:); scnew(i+1,:)=scross(2,:); smnew(i,1:bitlength)=mutation(population(:,1:bitlength),scnew(i,1:bitlength),pmutation); %突变 smnew(i,bitlengt

10、h+1:2*bitlength)=mutation(population(:,bitlength+1:2*bitlength),scnew(i,bitlength+1:2*bitlength),pmutation); smnew(i,2*bitlength+1:3*bitlength)=mutation(population(:,2*bitlength+1:3*bitlength),scnew(i,2*bitlength+1:3*bitlength),pmutation); smnew(i+1,1:bitlength)=mutation(populati

11、on(:,1:bitlength),scnew(i+1,1:bitlength),pmutation); %突变 smnew(i+1,bitlength+1:2*bitlength)=mutation(population(:,bitlength+1:2*bitlength),scnew(i+1,bitlength+1:2*bitlength),pmutation); smnew(i+1,2*bitlength+1:3*bitlength)=mutation(population(:,2*bitlength+1:3*bitlength),scnew(i+

12、1,2*bitlength+1:3*bitlength),pmutation); end population=smnew; [fitvalue,accumup]=fitnessfun(population); %求新一代的适应值 [fmax,nmax]=max(fitvalue); %max函数求每一代最大适应值 fmean=mean(fitvalue); %mean函数求每一代适应值平均值 ymax(generation)=fmax; y

13、mean(generation)=fmean; x1=transform(population(:,1:bitlength),nmax); x2=transform(population(:,bitlength+1:2*bitlength),nmax); x3=transform(population(:,2*bitlength+1:3*bitlength),nmax); xmax(generation,1:3)=[x1 x2 x3]; generation=generation+1; end %% %画出相应的每代遗传的图

14、generation=generation-1; bestpopulation=[x1 x2 x3]; besttargetfunvalue=targetfun(x1,x2,x3); plot(1:generation,ymax,'r*-'); hold on plot(1:generation,ymean,'bh-'); xlabel('进化代数'); ylabel('最大/平均适应值'); legend('最大适应度','平均适应度'); axis([0 60 150 220]); 各类子函数: function [fitvalue,accumup]=fitnessf

15、un(population) popsize=size(population,1); fitvalue=zeros(popsize,1); %定义矩阵大小 accumup=zeros(popsize,1); bitlength=size(population,2); bitlength=round(bitlength./3); for i=1:popsize %先转换为区间上的值,然后计算适应值 x1=transform(population(:,1:bitlength),i); x2=tra

16、nsform(population(:,bitlength+1:2*bitlength),i); x3=transform(population(:,2*bitlength+1:3*bitlength),i); fitvalue(i,1)=targetfun(x1,x2,x3); end fitvalue=fitvalue'+200; singlefit=0; sumf=sum(fitvalue); %利用sum函数计算总值 for j=1:popsize singlefit=singlefit+fitvalue(j);

17、得出累积概率 accumup(j)=singlefit./sumf; end accumup=accumup'; function seln=selection(accumup) seln=zeros(1,2); for i=1:2 r=rand; prand=accumup-r; j=1; while(prand(j)<0) j=j+1; end seln(i)=j; End function scross=crossover(population,seln,pcrossover)

18、 bitlength=size(population,2); cp=ifcroifmut(pcrossover); crossn=round(rand*(bitlength-1))+1; if cp==1 scross(1,:)=[population(seln(1),1:crossn) population(seln(2),crossn+1:bitlength)]; scross(2,:)=[population(seln(2),1:crossn) population(seln(1),crossn+1:bitlength)]; else scross

19、1,:)=population(seln(1),:); scross(2,:)=population(seln(2),:); End function snnew=mutation(population,smnew,pmutation) bitlength=size(population,2); cp=ifcroifmut(pmutation); mutn=round(rand*(bitlength-1))+1; snnew=smnew; if cp==1 snnew(mutn)=1-smnew(mutn); else snnew(mutn)=

20、smnew(mutn); End function fitvalue=targetfun(x1,x2,x3) fitvalue=-x1.^2-x2.^2-x3.^2; function x=transform(population,a) global boundsbegin global boundsend bitlength=size(population,2); binx=0; for j=1:bitlength if population(a,j)==1 binx=binx+2.^(bitlength-j); else

21、 end end x=boundsbegin+binx*(boundsend-boundsbegin)./(2.^bitlength-1); function cp=ifcroifmut(p) test(1:100)=0; length=100*p; test(1:length)=1; cp=test(round(rand*99)+1); x1 x2 x3 四、实验结果与总结(10分) 该算法的执行过程中,种群大小的选择以及遗传代数的选择对实验结果的精度会有一定的影响,而不同的精度下的计算量的大小也是不一样的。精度高的情况下,结果能够达到0.05而低的情况下只能达到小数点后一位,因此该算法的稳定性尚有待提高。 以下是其中一个结果的举例:

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服