遗传算法matlab程序实例.doc

--------------------------------------------------------------------------------------------------遗传算法程序(一)说明 fga.m 为遗传算法的主程序 ; 采用二进制 Gray 编码 ,采用基于轮盘赌法的非线性排名选择, 均匀交叉 ,变异操作,而且还引入了倒位操作function [BestPop,Trace]fgaFUN,LB,UB,eranum,popsize,pCross,pMutation,pInversion,options [BestPop,Trace]fmaxgaFUN,LB,UB,eranum,popsize,pcross,pmutation Finds a maximum of a function of several variables. fmaxga solves problems of the max FX subject to LB 0error数据输入错误 ,请重新输入 LB1 时,bimodai-1ai,2其中原二进制串a1a2.an,Gray 串b1b2.bninitpopi,pop1end-1;endinitpoppopsize,ones1,len;The whole one encoding individual解码function [fval] b2fbval,bounds,bits fval - 表征各变量的十进制数 bval - 表征各变量的二进制编码串 bounds - 各变量的取值范围 bits - 各变量的二进制编码长度scalebounds,2-bounds,1./2.bits-1; The range of the variablesnumVsizebounds,1;cs[0 cumsumbits]; for i1numVabvalcsi1csi1;fvalisum2.sizea,2-1-10.*a*scaleiboundsi,1;end选择操作采用基于轮盘赌法的非线性排名选择各个体成员按适应值从大到小分配选择概率Piq/1-1-qn*1-qi, 其中 P0P1.Pn, sumPi1function [selectpop]NonlinearRankSelectFUN,pop,bounds,bits global m nselectpopzerosm,n;fitzerosm,1;for i1mfitifFUN1,,b2fpopi,,bounds,bits;以函数值为适应值做排名依据endselectprobfit/sumfit;计算各个体相对适应度0,1qmaxselectprob;选择最优的概率xzerosm,2;x,1[m-11];[y x,2]sortselectprob;rq/1-1-qm;标准分布基值newfitx,2r*1-q.x,1-1;生成选择概率newfitcumsumnewfit;计算各选择概率之和rNumssortrandm,1;fitIn1;newIn1;while newInpCross;lenlengthy1;if len2y1len[];endif lengthy12for i02lengthy1-2if opts0[NewPopy1i1,,NewPopy1i2,]EqualCrossOverOldPopy1i1,,OldPopy1i2,;else[NewPopy1i1,,NewPopy1i2,]MultiPointCrossOldPopy1i1,,OldPopy1i2,;endend endNewPopy2,OldPopy2,;采用均匀交叉function [children1,children2]EqualCrossOverparent1,parent2global n children1 children2 hidecoderoundrand1,n;随机生成掩码crosspositionfindhidecode1;holdpositionfindhidecode0;children1crosspositionparent1crossposition;掩码为 1,父 1 为子 1 提供基因children1holdpositionparent2holdposition;掩码为 0,父 2 为子 1 提供基因children2crosspositionparent2crossposition;掩码为 1,父 2 为子 2 提供基因children2holdpositionparent1holdposition;掩码为 0,父 1 为子 2 提供基因采用多点交叉,交叉点数由变量数决定function [Children1,Children2]MultiPointCrossParent1,Parent2global n Children1 Children2 VarNumChildren1Parent1;Children2Parent2;Pointssortunidrndn,1,2*VarNum;for i1VarNumChildren1Points2*i-1Points2*iParent2Points2*i-1Points2*i;Children2Points2*i-1Points2*iParent1Points2*i-1Points2*i;end变异操作function [NewPop]MutationOldPop,pMutation,VarNumglobal m n NewPoprrand1,m;positionfindr1for i1lenkunidrndn,1,VarNum; 设置变异点数,一般设置 1 点for j1lengthkif OldPoppositioni,kj1OldPoppositioni,kj0;elseOldPoppositioni,kj1;endendendendNewPopOldPop;倒位操作function [NewPop]InversionOldPop,pInversionglobal m n NewPopNewPopOldPop;rrand1,m;PopInfindr1for i1lendsortunidrndn,1,2;if d11NewPopPopIni,d1d2OldPopPopIni,d2-1d1;NewPopPopIni,d21nOldPopPopIni,d21n;endendend遗传算法程序(二)function youhuafunDcode; N50; Tunable maxgen50; Tunable crossrate0.5; Tunable muterate0.08; Tunable generation1; num lengthD; fatherrandrandintnum,N,3; score zerosmaxgen,N; while generation1450||minF2best.max_fadvance_kadvance_k1;x_betteradvance_kfitness.x;best.max_fmaxf;best.popuspopus;best.xfitness.x;endif modadvance_k,SPEEDUP_INTER0RANGEminmaxx_better;RANGEadvance0;end endreturn;function popusinit初始化M50;种群个体数目N30;编码长度popusroundrandM,N;return;function fitnessfitpopus,RANGE求适应度[M,N]sizepopus;fitnesszerosM,1;适应度fzerosM,1;函数值ARANGE1;BRANGE2;初始取值范围[0 255]for m1Mx0;for n1Nxxpopusm,n*2n-1;endxx*B-A/2NA;for k15fm,1fm,1-k*sink1*xk;endendf_stdf-minf./maxf-minf;函数值标准化fitness.ff;fitness.f_stdf_std;fitness.xx;return;function pickedchoosepopus,fitness选择ffitness.f;f_stdfitness.f_std;[M,N]sizepopus;choose_N3; 选择 choose_N 对双亲pickedzeroschoose_N,2; 记录选择好的双亲pzerosM,1; 选择概率d_orderzerosM,1;把父代个体按适应度从大到小排序f_tsortf,descend;将适应度按降序排列for k1Mxfindff_tk;降序排列的个体序号d_orderkx1;endfor m1Mpopus_tm,popusd_orderm,;endpopuspopus_t;ff_t;pf_std./sumf_std; 选择概率c_pcumsump; 累积概率for cn1choose_Npickedcn,1roulettec_p; 轮盘赌pickedcn,2roulettec_p; 轮盘赌popusintercrosspopus,pickedcn,;杂交endpopusaberrancepopus,picked;变异return;function popusintercrosspopus,picked 杂交[M_p,N_p]sizepicked;[M,N]sizepopus;for cn1M_pp1ceilrand*N;生成杂交位置p2ceilrand*N;psortp;tpopuspickedcn,1,p1p2;popuspickedcn,1,p1p2popuspickedcn,2,p1p2;popuspickedcn,2,p1p2t;endreturn;function popusaberrancepopus,picked 变异P_a0.05;变异概率[M,N]sizepopus;[M_p,N_p]sizepicked;Urand1,2;for kp1M_pif U2P_a 如果大于变异概率,就不变异continue;endif U10.5apickedkp,1;elseapickedkp,2;endp1ceilrand*N;生成变异位置p2ceilrand*N;if popusa,p110 1 变换popusa,p10;elsepopusa,p11;endif popusa,p21popusa,p20;elsepopusa,p21;endendreturn;function pickedroulettec_p 轮盘赌[M,N]sizec_p;Mmax[M N];Urand;if Uc_pm break;endend全方位的两点杂交、两点变异的改进的加速遗传算法(IAGA)

Matlab遗传算法求解TSO,遗传算法matlab程序实例.doc相关推荐

  1. 【Matlab优化求解】遗传算法求解仓库货位优化问题【含源码 022期】

    一.代码运行视频(哔哩哔哩) [Matlab优化求解]遗传算法求解仓库货位优化问题[含源码 022期] 二.遗传算法仓库货位简介(仅供参考) 1 引言 随着电力企业生产规模的不断扩大,传统模式下的仓库 ...

  2. 秦九韶算法matlab程序,数值分析matlab程序实例.doc

    数值分析matlab程序实例 1,秦九韶算法,求出P(x=3)=2+4x+5x^2+2x^3的值 clear?all; x=3; n=3; a(1)=2;a(2)=4;a(3)=5;a(4)=2 v( ...

  3. 利用scikit中的遗传算法求解(整数01)约束规划实例详解教程+利用scipy.optimize求解约束规划问题

    注意标准形式 下面两个方法约束规划的一般标准形式为: 利用scikit-opt的遗传算法求解约束规划问题 先放上链接:scikit-opt网址 主要四个步骤: 下面依照此题多约束为例 可知该题有5个不 ...

  4. xmodem协议 c语言,xmodem收发c程序实例.doc

    xmodem收发c程序实例 .h 文件 /*****************************************************************************/ ...

  5. matlab 变分不等式,求解变分不等式的matlab程序

    满意答案 kide754861 2013.07.11 采纳率:46%    等级:11 已帮助:5599人 function x=Porjection() clc sigama=0.5; gama=0 ...

  6. matlab ode45求解齿轮动力学,Matlab拟合动力学参数遇到问题(ode45)

    function [rho2,F] = rho2_F(k,r,ss,Ne,Np) sy = sum(r.^2); rho2 = 1 - ss./sy F = (sy - ss).*(Ne-Np)./( ...

  7. matlab如何求解代数方程,用Matlab求解复杂代数方程

    编写一个function,保存为KMN.m function [K1,M1,N1,K2,M2,N2,K3,M3,N3]=KMN(x,y,z,R,r,L,l) K1=(power(x,2)+power( ...

  8. 幂法的c语言程序例子,数值分析之幂法及反幂法C语言程序实例.doc

    0;i--) { temp=0; for(t=i+1;t<=min(i+S,N);t++) temp+=A[i-t+S][t-1]*u[t-1]; u[i-1]=(y[i-1]-temp)/A[ ...

  9. 【老生谈算法】matlab实现遗传算法求解TSP问题——TSP问题

    遗传算法求解TSP问题MATLAB实现 1.文档下载: 本算法已经整理成文档如下,有需要的朋友可以点击进行下载 序号 文档(点击下载) 本项目文档 [老生谈算法]遗传算法求解TSP问题MATLAB实现 ...

最新文章

  1. 数据结构之链表反向打印
  2. 突发信号matlab,MATLAB信号处理仿真
  3. 安装CocoaPods
  4. tensorflow之transpose的使用
  5. 作为高管,你需要了解的五个ERP趋势
  6. UpdatePanel中用后台调用Javascript
  7. 天,又有人找我帮忙!
  8. ideahtml标签不提示_「系统自带标签」如何帮门店区分价值顾客?| 早8点141期
  9. javax.crypto.BadPaddingException: Blocktype ...
  10. abaqus14安装_Abaqus安装方法
  11. IntelliJ IDEA 使用教程 -- 从入门到上瘾
  12. 反向题在测试问卷信效度_如何进行问卷的信度和效度分析_spss问卷信度效度分析...
  13. 华为S5700交换机设置密码包括telnet密码
  14. 对于任一整数n,符号函数sign(n)的定义如下
  15. 4【Android 12】InputDispatcher分发事件
  16. FPGA实现开根号,仿真通过,算一次需要34个时钟周期
  17. C++中的名字空间和作用域
  18. Linux-新建用户/群组以及修改文件权限
  19. 平安科技2017笔试题目
  20. IGARSS 2019点云分类挑战赛中遇到的传统方法

热门文章

  1. C#实现ActiveX控件开发与部署---后记
  2. 电机EMC之降噪“三叉戟”
  3. Unity 之 ShaderGraph 实现小旗随风飘扬效果入门级教程
  4. java.lang.NoSuchMethodError: org.apache.poi.util.IOUtils.toByteArray
  5. 理解Linux内存性能指标
  6. 记一次“登录Mysql数据库输入正确密码但数据库显示密码错误”问题的处理
  7. 中关村地区公益性英语角信息
  8. c语言选择排序法程序设计,C语言基础之选择排序算法和代码
  9. statsmodels线性回归中的Jarque-Bera指标检验残差是否服从正态分布
  10. ZZULIOJ1057: 素数判定