1、MATLAB遗传算法工具箱1 1.一,遗传算法来源和计算步骤 模模拟拟自然自然进进化:化:遗传遗传-变变异异-选择选择适者生存,适者生存,优胜优胜劣汰劣汰自然自然进进化化人工进化(如GA)1,来源2,步骤编码初始种群适应度计算选择交叉变异新种群的生成是否达到目标否解决实际问题是2 2.二,关键操作1,适应度计算及标定2,编码二二进进制,格雷制,格雷码码,十十进进制,符号制,符号编码编码3,选择轮盘赌选择轮盘赌选择(rwsrws)均匀排序(均匀排序(rankingranking)最最优优保存(代沟)保存(代沟)排排挤选择挤选择(海明距离)(海明距离)4,交叉单单点交叉,两点,多点点交叉,两点,多
2、点均匀交叉均匀交叉特殊(特殊(PMX,CX,EXPMX,CX,EX)5,变异基本位基本位变变异异均匀均匀变变异异非均匀非均匀变变异(高斯异(高斯变变异)异)逆逆转变转变异,交异,交换变换变异异3 3.三,MATLAB遗传算法工具箱1 1,三种常,三种常,三种常,三种常见见见见工具箱工具箱工具箱工具箱(1 1),),),),gatbxgatbx工具箱:英国工具箱:英国工具箱:英国工具箱:英国设设设设菲菲菲菲尔尔尔尔德德德德SheffieldSheffield大学大学大学大学开开开开发发发发的的的的gatbsgatbs工具箱,不是工具箱,不是工具箱,不是工具箱,不是MatlabMatlab软软软软
3、件自件自件自件自带带带带的,雷的,雷的,雷的,雷英杰英杰英杰英杰编编编编著著著著MatlabMatlab遗传遗传遗传遗传算法工具箱及算法工具箱及算法工具箱及算法工具箱及应应应应用涉及到用涉及到用涉及到用涉及到了了了了这这这这个工具箱,并个工具箱,并个工具箱,并个工具箱,并对对对对它的使用它的使用它的使用它的使用进进进进行了行了行了行了说说说说明。明。明。明。(2 2),),),),gaotgaot工具箱:工具箱:工具箱:工具箱:这这这这是网上流是网上流是网上流是网上流传传传传的免的免的免的免费费费费的工具的工具的工具的工具箱,网上箱,网上箱,网上箱,网上对对对对它介它介它介它介绍绍绍绍的的的的
4、资资资资料也挺多,也不是料也挺多,也不是料也挺多,也不是料也挺多,也不是MatlabMatlab软软软软件自件自件自件自带带带带的,但可以自己配置使用。的,但可以自己配置使用。的,但可以自己配置使用。的,但可以自己配置使用。飞飞飞飞思科技思科技思科技思科技产产产产品研品研品研品研发发发发中心中心中心中心编编编编著著著著Matlab 6.XMatlab 6.X辅辅辅辅助助助助优优优优化化化化计计计计算与算与算与算与设计设计设计设计第第第第五章五章五章五章对对对对gaotgaot遗传遗传遗传遗传算法工具箱的使用算法工具箱的使用算法工具箱的使用算法工具箱的使用进进进进行了介行了介行了介行了介绍绍绍绍
5、。4 4.三,MATLAB遗传算法工具箱(3 3),),),),gadsgads工具箱:工具箱:工具箱:工具箱:matlab 7.0matlab 7.0包含了包含了包含了包含了这这这这个工具个工具个工具个工具箱,箱,箱,箱,matlab7.0matlab7.0以前的版本没有以前的版本没有以前的版本没有以前的版本没有这这这这个工具箱,雷英杰个工具箱,雷英杰个工具箱,雷英杰个工具箱,雷英杰编编编编著著著著MatlabMatlab遗传遗传遗传遗传算法工具箱及算法工具箱及算法工具箱及算法工具箱及应应应应用用用用对这对这对这对这个工具个工具个工具个工具箱的使用箱的使用箱的使用箱的使用进进进进行了介行了介
6、行了介行了介绍绍绍绍。5 5.2,gatbx工具箱常见函数(1)初始种群的创建crtbpcrtbp二二进进制制编码编码种群种群crtrpcrtrp十十进进制制编码编码种群种群(2)适应度计算ScalingScaling比率适比率适应应度度RankingRanking排序适排序适应应度度例例1 1:chrom=crtbp(9,6)chrom=crtbp(9,6)Chrom=Chrom=0 00 10 11 01 00 10 10 00 01 11 10 00 00 00 01 11 11 11 11 11 11 01 01 11 10 10 10 10 10 10 11 11 11 01 00
7、00 00 10 10 01 10 00 01 11 11 11 11 10 00 00 01 01 01 01 00 00 00 10 10 00 00 00 00 01 11 01 01 01 00 00 01 11 10 10 11 01 00 00 01 16 6.(3,选择rws-rws-轮盘赌选择轮盘赌选择sus-sus-随机遍随机遍历历抽抽样样select-select-高高级选择级选择函数函数(4)交叉xovsp-xovsp-单单点交叉点交叉xovdp-xovdp-两点交叉两点交叉xovsh-xovsh-洗牌交叉洗牌交叉recombin-recombin-高高级级交叉函数交叉函
8、数例例2 2,chrom=crtbp(2,6)chrom=crtbp(2,6)chrom=chrom=0 1 1 0 0 10 1 1 0 0 10 0 1 0 0 00 0 1 0 0 0new=xovsp(chrom,1)new=xovsp(chrom,1)new=new=0 0 1 0 0 0 0 0 1 0 0 0 0 1 1 0 0 1 0 1 1 0 0 17 7.(5)变异mut-mut-二二进进制制编码编码的的变变异异mutbga-mutbga-十十进进制的制的变变异异mutate-mutate-高高级变级变异函数异函数(6)其他有用函数reins-reins-重重组组(有代沟
9、(有代沟时时)bs2rv-bs2rv-二二进进制的解制的解码码migrate-migrate-子种群的支持子种群的支持例例3 3,chrom=chrom=0 1 1 0 0 10 1 1 0 0 10 0 1 0 0 00 0 1 0 0 0new1=mut(chrom,0.1)new1=mut(chrom,0.1)new1=new1=1 1 1 0 0 11 1 1 0 0 10 0 1 0 1 00 0 1 0 1 08 8.四,应用gatbx工具箱的基本求解步骤chrom=crtbp(nind,nvar);chrom=crtbp(nind,nvar);%创创建初始种群建初始种群var=b
10、s2rv(chrom,fieldd);var=bs2rv(chrom,fieldd);%解解码码 obj=functionx(var);obj=functionx(var);%求目求目标标函数函数值值%开始开始进进化化while genmaxgen while genmaxgen fitnv=ranking(obj);fitnv=ranking(obj);%分配适分配适应应度度 selch=select(sus,chrom,fitnv);selch=select(sus,chrom,fitnv);%选择选择 selch=xovsp(selch,p1);selch=xovsp(selch,p1);%交叉交叉 selch=mut(selch,p2);selch=mut(selch,p2);%变变异异 var=bs2rv(selch,fieldd);var=bs2rv(selch,fieldd);%生成新种群生成新种群 obj=functionx(var);obj=functionx(var);endend9 9.五,一些实例1,简单非线性规划2,背包问题3,最小hamirton圈1010.