资源简介
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编写的LBFGS优化算法
- FASTICA盲源信号分离代码Matlab(复信号
- 流形学习算法(matlab)
- matlab 分别用sobel prewitt roberts laplacia
- 文献和程序,光伏发电PV,MATLAB程序
- matlab图像分解四叉树分解显示
- 基于Matlab的二阶系统的模糊自适应P
- boost DC-DC变换器matlab仿真模型
- 基于MATLABGUI的语音信号特征提取系统
- matlab图像锐化源代码
- matlab迭代法自动阈值分割算法
- Matlab仿真_高勇.caj
- DBF的matlab仿真程序
- 生成地质体三维建模理论模型MATLAB
- 求取两个向量间欧氏距离MATLAB程序
- MATLAB实现股票价格预测 源程序代码
- 数字图像处理作业冈萨雷斯版源码M
- 用Matlab实现图像栅格化
- hough 检测直线、圆形matlab代码
- MATLAB计算长除法源码
- 基于神经网络的手写数字识别MATLAB源
- matlab实现伽罗华域上常系数乘法器
- 用MATLAB实现电磁波与目标作用的动态
- 基于MATLAB求解最短路问题
- MATLAB指纹识别代码可直接用
- 风机风轮模型
- 雷达系统仿真代码
- LPP局部保持投影MATLAB源代码
- 用MATLAB程序实现的语音基本谱减法
- 边界提取,边界连接,Matlab
评论
共有 条评论