遗传算法的matlab实现
2017-06-23 18:14
218 查看
遗传算法是一种全局最优化算法,是运用了进化论优胜劣汰原理的随机化搜索方法。
前些日子,在进行毕业设计的相关研究中,我接触到了遗传算法,用其对一个五元非线性函数进行最优化搜索。仿真平台使用的是matlab,主要使用的是谢菲尔德大学的matlab遗传算法工具箱。
具体程序如下:
其中,func即为目标函数,可自行编辑。
最优解的进化曲线如下图:
前些日子,在进行毕业设计的相关研究中,我接触到了遗传算法,用其对一个五元非线性函数进行最优化搜索。仿真平台使用的是matlab,主要使用的是谢菲尔德大学的matlab遗传算法工具箱。
具体程序如下:
clc clear all close all lbx=-1;ubx=1; %函数自变量x范围【-1,1】 lby=-1;uby=1; %函数自变量y范围【-1,1】 %% 定义遗传算法参数 NIND=50; %个体数目 MAXGEN=50; %最大遗传代数 PRECI=20; %变量的二进制位数 GGAP=0.90; %代沟 px=0.97; %交叉概率 pm=0.001; %变异概率 trace=zeros(6,MAXGEN); %寻优结果的初始值 FieldD=[PRECI PRECI PRECI PRECI PRECI;lbx lby lbx lbx lbx;ubx uby ubx ubx ubx;1 1 1 1 1;0 0 0 0 0;1 1 1 1 1;1 1 1 1 1]; %区域描述器 Chrom=crtbp(NIND,PRECI*5); %初始种群 %% 优化 gen=0; %代计数器 XY=bs2rv(Chrom,FieldD); %计算初始种群的十进制转换 d1=XY(:,1); d2=XY(:,2);d3=XY(:,3);d4=XY(:,4);d5=XY(:,5); ObjV=func(d1,d2,d3,d4,d5,NIND); %计算目标函数值 while gen<MAXGEN FitnV=ranking(-ObjV); %分配适应度值 SelCh=select('sus',Chrom,FitnV,GGAP); %选择 SelCh=recombin('xovsp',SelCh,px); %重组 SelCh=mut(SelCh,pm); %变异 XY=bs2rv(SelCh,FieldD); %子代个体的十进制转换 d1=XY(:,1);d2=XY(:,2);d3=XY(:,3);d4=XY(:,4);d5=XY(:,5); d1n=numel(d1); ObjVSel=func(d1,d2,d3,d4,d5,d1n); %计算子代的目标函数值 [Chrom,ObjV]=reins(Chrom,SelCh,1,1,ObjV,ObjVSel); %重插入子代到父代,得到新种群 XY=bs2rv(Chrom,FieldD); gen=gen+1 %代计数器增加 %获取每代的最优解及其序号,Y为最优解,I为个体的序号 [Y,I]=max(ObjV); trace(1:5,gen)=XY(I,:); %记下每代的最优值 trace(6,gen)=Y; %记下每代的最优值 end figure(2); plot(1:MAXGEN,trace(6,:)); grid on xlabel('遗传代数') ylabel('解的变化') title('进化过程') bestc1=trace(1,end) bestc2=trace(2,end) bestc3=trace(3,end) bestc4=trace(4,end) bestc5=trace(5,end) bestSIR=trace(6,end)
其中,func即为目标函数,可自行编辑。
最优解的进化曲线如下图:
相关文章推荐
- 遗传算法与TSP问题的MATLAB实现
- 遗传算法与TSP问题的MATLAB实现
- 遗传算法的基本原理和matlab实现
- 遗传算法(GA)的matlab实现
- 遗传算法简单介绍与MATLAB实现(一)
- 遗传算法的matlab实现(续 )
- 遗传算法的matlab实现
- 基本遗传算法(GA)的算法原理、步骤、及Matlab实现
- 遗传算法实现之python VS matlab
- 遗传算法简单介绍与MATLAB实现(三)
- 通俗解释遗传算法及其Matlab实现
- 基本遗传算法(SGA)的MATLAB实现
- 遗传算法的matlab实现
- 遗传算法的基本原理和matlab实现
- 遗传算法的简单讲解与matlab实现
- 遗传算法的matlab实现
- 《遗传算法(GA)的MATLAB实现》
- 通俗解释遗传算法及其Matlab实现
- Matlab实现用遗传算法求车辆倒车的最佳路径
- 智能算法之Matlab实现(1)——遗传算法(1)