资源简介
遗传算法求解Rastrigin函数遗传算法求解Rastrigin函数遗传算法求解Rastrigin函数遗传算法求解Rastrigin函数
代码片段和文件信息
function ga
%遗传算法极小值问题
clear
clc
bn=50; %个体串长度
inn=50; %初始种群大小
gnmax=600; %最大迭代次数
pc=0.8; %交叉概率
pm=0.1; %变异概率
%产生初始种群
fps=10.24*(rand(innbn)-0.5*ones(innbn)); %十进制编码,使初始解在[-5.12,5.12]范围内
select=fps;
gn=0;
%第一代解
n = 30;
fr = 4000;
while gn %分别将种群代入目标函数计算适应度
q = 0;
p = 0;
for i = 1:50
for j = 1:50
x(j)=select(ij:j);
q = q+x(j)^2+10;
p = p+10*cos(2*pi*x(j));
end
y(i)=q-p;
q=0;
p=0;
end
[pmini]=min(y);%将当前种群中最优解保存在pmin
pmin1=pmin;
vari=mean(select(i:));%计算最优染色体的平均值并送给vari,变异自适应调节域值
l=i;%将最优染色体行坐标传送给l
[pmaxz]=max(y);%求取适应度最差的染色体
select(z:)=select(l:);%将最优染色体引入种群参与竞争
%进行交叉,进一步选择优秀的解
for i=1:2:50
pcc=pro(pc);%根据交叉概率判断是否进行交叉
if pcc==1
if 0<=l-i<=1%判断是不是最优染色体,如果是不进行交叉
cross(i:)=select(i:);
cross(i+1:)=select(i+1:);
else
%将30个变量分为五个范围,相临两个染色体分别从五位进行交叉
crb1=round(rand*(bn/5-1))+1; %在[16]范围内随机产生一个交叉位
cross(icrb1:crb1)=0.1*select(icrb1:crb1)+0.9*select(i+1crb1:crb1);
for j=1:9
cross(i+1j*crb1:j*crb1)=0.1*select(ij*crb1:j*crb1)+0.9*select(i+1j*crb1:j*crb1);
cross(i(j+1)*crb1:(j+1)*crb1)=0.1*select(i(j+1)*crb1:(j+1)*crb1)+0.9*select(i+1(j+1)*crb1:(j+1)*crb1);
end
% %%%%
% cross(i+1crb1:crb1)=0.1*select(icrb1:crb1)+0.9*select(i+1crb1:crb1);
%cross(i2*crb1:2*crb1)=0.1*select(i2*crb1:2*crb1)+0.9*select(i+12*crb1:2*crb1);
%cross(i+12*crb1:2*crb1)=0.1*select(i2*crb1:2*crb1)+0.9*select(i+12*crb1:2*crb1);
%cross(i3*crb1:3*crb1)=0.1*select(i3*crb1:3*crb1)+0.9*select(i+13*crb1:3*crb1);
%cross(i+13*crb1:3*crb1)=0.1*select(i3*crb1:3*crb1)+0.9*select(i+13*crb1:3*crb1);
%cross(i4*crb1:4*crb1)=0.1*select(i4*crb1:4*crb1)+0.9*select(i+14*crb1:4*crb1);
%cross(i+14*crb1:
相关资源
- 阵列天线的matlab仿真
- MATLAB 经典程序源代码大全
- MATLAB小波软阈值去噪代码33473
- 天线阵的波束形成在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正弦信号发生器的设计
评论
共有 条评论