风雨悠扬 2015-09-13 01:29 采纳率: 100%
浏览 2025
已采纳

matlab程序问题,希望大神帮我注释一下

 %%请大神帮我注释一下,网上找的源代码,但是注释不全
%%  清空环境
clear
clc
tic
%% 参数初始化
% 粒子群算法中的两个参数
c1 = 1.49445;
c2 = 1.49445;

maxgen  = 200; % 进化次数
sizepop = 20;  % 种群规模

Vmax = 1;
Vmin = -1;
popmax = 5;
popmin = -5;

%% 产生初始粒子和速度
for i = 1:sizepop
    % 随机产生一个种群
    pop(i,:) = 5 * rands(1,2); % 初始种群
    V(i,:) = rands(1,2);   % 初始化速度
    % 计算适应度
    fitness(i) = fun(pop(i,:));  % 染色体的适应度
end

% 找最好的染色体
[bestfitness bestindex] = min(fitness);
zbest = pop(bestindex,:);  % 全局最佳
gbest = pop;  % 个体最佳
fitnessgbest = fitness;  % 个体最佳适应度值
fitnesszbest = bestfitness;  % 全局最佳适应度值
%% 迭代寻优
for i = 1:maxgen
    for j = 1:sizepop

        % 速度更新
        V(j,:) = V(j,:) + c1*rand*(gbest(j,:) - pop(j,:)) + c2*rand*(zbest - pop(j,:));
        V(j,find(V(j,:)>Vmax)) = Vmax;
        V(j,find(V(j,:)<Vmin)) = Vmin;

        %种群更新
        pop(j,:) = pop(j,:) + 0.5*V(j,:);
        pop(j,find(pop(j,:)>popmax)) = popmax;
        pop(j,find(pop(j,:)<popmin)) = popmin;

        % 自适应变异
        if rand > 0.8
            k = ceil(2*rand);
            pop(j,k) = rand;
        end

        % 适应度值
        fitness(j) = fun(pop(j,:));
    end

    % 个体最优更新
    if fitness(j) < fitnessgbest(j)
        gbest(j,:) = pop(j,:);
        fitnessgbest(j) = fitness(j);
    end

    % 群体最优更新
    if fitness(j) < fitnesszbest
        zbest = pop(j,:);
        fitnesszbest = fitness(j);
    end

    yy(i) = fitnesszbest;

end
toc
%% 结果分析
plot(yy);
title(['适应度曲线    ' '终止代数=' num2str(maxgen)]);
xlabel('进化代数');
ylabel('适应度');
  • 写回答

1条回答 默认 最新

  • SunliyMonkey 2015-09-13 06:28
    关注

    果断自己,边读边注释呀,才有提高

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥20 机器学习能否像多层线性模型一样处理嵌套数据
  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!
  • ¥15 永磁直线电机的电流环pi调不出来
  • ¥15 用stata实现聚类的代码
  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效