资源简介
matlab实现的遗传算法,包含遗传算法的编码,选择,交叉,变异,适应度函数
代码片段和文件信息
% %
%编码方式: 基本二进制编码
%Input: FitFunc: Any function
% pCrossover: probability of crossover default 0.5
% pMutation: probability of mutation default 0.04
% GroupNum: number of individuals of the virtual group default 30
% MaxIter: maximum iterations
% MaxRepeat: (optional)determine the convergence standard 判断收敛
%parent.fitness
%parent.chrom
function Result = MyGA(FitFunc pCrossover pMutation GroupNum MaxIter MaxRepeat)
%Default parameters
if nargin < 6
MaxRepeat = 10;
if nargin < 5
MaxIter = 1000;
if nargin < 4
GroupNum = 50;
if nargin < 3
pMutation = 0.04;
if nargin < 2
pCrossover = 0.5;
end
end
end
end
end
Result = [];
epsilon = 1e-5;
iter = 0;
iRepeat = 1;
bit = 22; %precision
thisMax = 0;
parent = InitGroup(GroupNum FitFunc bit); %Generate initial population
while iter < MaxIter
children1 = Crossover(parent pCrossover/iter^0.1); %Return crossovered chromes
children.chrom = [];
children.fitness = [];
children.chrom = Mutation([parent.chrom; children1] pMutation/iter^0.1);
children.fitness = CalcFit(children.chrom FitFunc bit);
children = select(children GroupNum);
parent = children;
iter = iter + 1;
%parent.chrom;
%[m I] = max(parent.fitness)
if (thisMax-max(parent.fitness))/max(parent.fitness) < epsilon
iRepeat = iRepeat + 1;
else
iRepeat = 1;
end
thisMax = max(parent.fitness);
disp(thisMax)
for i = 1:size(parent.chrom)
if parent.fitness(i) == thisMax
j = i;
plot(Decoding(parent.chrom(i:)bit)parent.fitness(i)‘go‘);
end
end
Result = [Result; thisMax];
end
plot(Decoding(parent.chrom(j:)bit)parent.fitness(j)‘ro‘);
end
%Encoding method: 普通二进制编码
function parent = InitGroup(GroupNum Fit
- 上一篇:图像的高通滤波程序代码
- 下一篇:matlab编写的LBFGS优化算法
相关资源
- matlab_OFDM调制解调(来自剑桥大学)
- Matlab路面裂缝识别69319
- 高灵敏度GPS接收机MATLAB仿真,附捕获
- 基于MATLAB的质点弹道计算与外弹道优
- 阵列天线的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
评论
共有 条评论