资源简介
遗传算法求解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:
相关资源
- zw_MATLAB实现图像去噪滤波锐化边缘检
- 雷达图像处理的入门算法
- 用matlab处理语音信号
- OFDM物理层发射机_接收机模型matlab代码
- MATLAB R2010b/R2012b破解lisence
- 基于TSP的禁忌搜索MATLAB程序
- Matlab GUI 多界面数据传递(使用全局变
- 路径规划势场栅格法程序
- 用matlab贝叶斯方法实现神经网络算法
- 回声隐藏matlab程序
- MATLAB R2012b 首发完美破解 所有组件可
- 卡尔曼滤波EKF UKF PF对比matlab源程序
- 决策树经典算法c4_5算法的matlab实现
- 复杂网络度分布图的matlab编程代码
- 复杂网络聚类系数的matlab编程代码
- 求平均最短路径长度的matlab编程代码
- 模拟退火算法matlab程序
- NSGA-3matlab源程序
- 经济调度粒子群算法matlab源程序
- 多目标粒子群算法matlab源程序
- 基于matlab雷达信号仿真
- MATLAB GUI 打开一幅图像 在图像上画多
- 复杂网络 图论 统计特征 Matlab 源代码
- 小波包分解与重构、能量谱 MATLAB代码
- 车辆检测 matlab
- CNN特征图可视化
- matlab实现三维表面形貌图
- LT码的编译码程序MATLAB
- MATLAB的有序样品聚类的程序
- Ncut调试可以运行的程序(matlab)
评论
共有 条评论