资源简介
标准差分进化算法多目标线性规划的若干解法及MATLAB实现

代码片段和文件信息
function DE(GmF)%标准差分进化算法程序
F=0.8;%F是变异因子
Gm=200; %最大迭代次数
Np=50; %种群规模
CR=0.5; %交叉概率常数
G=1;%初始化进化代数
D=10;%所求问题的维数
ge=zeros(1Np);%各代的最优值
bestx=zeros(NpD);%各代的最优解
xmin=0;xmax=pi;
function y=f(Z);
y=sum(sin(Z));
end
X0=(xmax-xmin)*rand(NpD)+xmin;%产生初始种群
X=X0;
%%%%%%%%%%变异操作
V=zeros(NpD);%变异矢量初始化
U=zeros(NpD);%初始化
X1=zeros(NpD);%初始化
value=zeros(1Np);
while G<=Gm
for i=1:Np
%产生jkp三个不同的数
a=1;b=Np;
dx=randperm(b-a+1);
j=dx(1);k=dx(2);p=dx(3);
if j==i
j=dx(4);
elseif k==i
k=dx(4);
elseif p==i
p=dx(4);
end
%namd=exp(1-Gm/(Gm+1-G));%变异算子
%F=F0*2.^namd;
%bon=X(p:)+F*(X(j:)-X(k:));
bon=X(p:)+F*(X(j:)-X(k:));
if (bon>xmin)&(bon V(i:)=bon;
else V(i:)=(xmax-xmin)*rand(1D)+xmin;
end
end
%%%%%%%%%%%%交叉操作
for i=1:Np
for j=1:D
if (rand<=CR|j==rand(D)) %利用二项分布来交叉
U(ij)=V(ij);
else
U(ij)=X(ij);
end
end
end
%%%%%%%%%%%%%%%选择操作
for i=1:Np
if f(U(i:))>f(X(i:))
X1(i:)=U(i:);
else
X1(i:)=X(i:);
end
end
%找出最大值
for i=1:Np
value(i)=f(X1(i:));
end
[fmaxnmax]=max(value);
ge(G)=fmax;
bestx(G:)=X1(nmax:);
G=G+1;
X=X1;
end
ii=linspace(1GmGm);
plot(iige)
[gmaxn]=max(ge);
bestvalue=gmax
bestsolution=bestx(n:)
end
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2018-09-11 10:16 标准差分进化算法源代码\
文件 55 2018-08-27 11:33 标准差分进化算法源代码\【源码使用必读】.url
文件 1636 2018-09-11 10:11 标准差分进化算法源代码\a.m
相关资源
- 天线阵的波束形成在MATLAB仿真程序及
- 非线性SVM算法-matlab实现
- 《MATLAB 智能算法超级学习手册》-程序
- 组合导航matlab程序
- 读取txt文件内容matlab代码实现
- Matlab实现基于相关的模板匹配程序
- matlab优化工具箱讲解
- 基于MATLAB的快速傅里叶变换
- 光纤传输中的分布傅立叶算法matlab实
- 基于matlab的图像处理源程序
- matlab 椭圆拟合程序
- 算术编码解码matlab源代码
- optical_flow 光流法 matlab 实现程序
- 引导图像滤波器 Matlab实现
- 分形几何中一些经典图形的Matlab画法
- OFDM系统MATLAB仿真代码
- SVM工具箱(matlab中运行)
- 图像小波变换MatLab源代码
- LU分解的MATLAB实现
- 冈萨雷斯数字图像处理matlab版(第三
- 替代数据法的matlab程序
- 用matlab实现的多站定位系统性能仿真
- 通过不同方法进行粗糙集属性约简m
- k近邻算法matlab实现
- matlab识别系统
- 神经网络分类matlab程序
- matlab正弦信号发生器的设计
- matlab程序用Hopfield网络解决TSP
- 实例matlab 编程100个常用程序
- 用MATLAB(BPSK仿真 直接扩频)
评论
共有 条评论