欢迎来到天天文库
浏览记录
ID:30458630
大小:20.83 KB
页数:15页
时间:2018-12-30
《遗传算法实验心得》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、为了适应公司新战略的发展,保障停车场安保新项目的正常、顺利开展,特制定安保从业人员的业务技能及个人素质的培训计划遗传算法实验心得 1.定义种群和个体 定义种群为S,种群数N=50,其中x,y是染色体中的两个基因组。 2.算法设计 确定编码设计 由于原函数的变量取值包含负数,不方便进行编码,所以将原函数的变量进行转换,从 [-1010]转换成[020],相应的,函数也要进行变换。 根据要求分辨率为,即编码范围至少为[0XX00],设编码位数为n+1,则20/(2^(n+1)-1)=s
2、中最小的个体并选择复制。 4)进入N次2、3操作,得到N个个体,形成新一代种群S1。 交叉 参加交叉运算的染色体个数占全体染色体总数的比例,记为Pc,根据要求本题中选为20/50,28/50,36/50,44/50. 按交叉率所决定参加交叉的染色体个数C,从S1中随机算则C配对进行交叉操作,并用产生的新染色体代替原染色体,得到新种群S2。目的-通过该培训员工可对保安行业有初步了解,并感受到安保行业的发展的巨大潜力,可提升其的专业水平,并确保其在这个行业的安全感。为了适应公司新战略的发展,
3、保障停车场安保新项目的正常、顺利开展,特制定安保从业人员的业务技能及个人素质的培训计划 其中值得注意的是,代码编写过程中设置了交叉掩码,由于题目中设定交叉位数为个体位数的一半,所以设计代码如下: cover=[111];%生成交叉掩码mask(1:18)=cover(randperm(18));%打乱 mask(19:36)=cover(randperm(18)); 掩码中的片段表明了哪个父体向字体提供变量值,利用交叉操作我们有可能由父代个体 在子代组合成具有更高适应度的个体。 变异
4、 发生变异的基因位数所占全体染色体的基因总位数的比例,即为Pm,根据要求本题中选为1/50,5/50,10/50,15/50. 按变异率所决定的变异次数m,从交叉所得的种群中随机确定m个染色体进行变异操作,用产生的新染色体代替原染色体,得到新种群S3。 最优个体的保存 需要将最高适应度和其对应的最优个体进行存储。 3.结果分析 四组结果比较,如下图所示,可以发现,交叉率和变异率越高越容易达到最优,但是达到最优的速度不定,这应该与没有进行最有个体的保护有关,所以曲线也较为曲折。目的-通
5、过该培训员工可对保安行业有初步了解,并感受到安保行业的发展的巨大潜力,可提升其的专业水平,并确保其在这个行业的安全感。为了适应公司新战略的发展,保障停车场安保新项目的正常、顺利开展,特制定安保从业人员的业务技能及个人素质的培训计划 得到的最高适应度为,而且由于每次初始化的种群不同,所以交叉率与变异率的对比也有一定的变化因素在。 4.作业心得 附代码: %函数功能是实现群体的初始化,其中N为群体大小,length是染色体的长度,即二进制的位数 %本次程序中,位数取18 function
6、group=init(N,length) group=round(rand(N,length));%rand随机生成行数为N,列数为length,单元值为{0,1}的随机数矩阵 %round对矩阵中的每个单元的值进行四舍五入,进行二值化处理,每一列即为随机产生的18位染色体编码 %将二进制数转化为十进制数 %产生[2^n2^(n-1)...1]的行向量,与对应二进制列相乘,然后求和 functiongroupdec=decodebinary(group) [gx,gy]=size(g
7、roup);%求group的行列数 fori=1:gy temp(:,i)=2.^(gy-i).*group(:,i); end groupdec=sum(temp,2);%对相乘后的矩阵进行每行求和目的-通过该培训员工可对保安行业有初步了解,并感受到安保行业的发展的巨大潜力,可提升其的专业水平,并确保其在这个行业的安全感。为了适应公司新战略的发展,保障停车场安保新项目的正常、顺利开展,特制定安保从业人员的业务技能及个人素质的培训计划 %将二进制编码转化为十进制数,其中参数point表
8、示待解二进制码串的起始位置 %因为对于本题来说,有两个变量,用36来表示,每个变量18,那么第一个变量从1开始,第二个变量就从19开始 functiongroupdec=decodestr(group,point,length) temp=group(:,point:point+length-1); groupdec=decodebinary(temp);%调用二进制转十进制函数 %选择复制 function[newgroup1]=selection(group,fitvalue)
此文档下载收益归作者所有