风雨悠扬 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 thinkphp适配人大金仓问题
  • ¥15 有卷积神经网络识别害虫的项目吗
  • ¥15 数据库数据成问号了,前台查询正常,数据库查询是?号
  • ¥15 算法使用了tf-idf,用手肘图确定k值确定不了,第四轮廓系数又太小才有0.006088746097507285,如何解决?(相关搜索:数据处理)
  • ¥15 彩灯控制电路,会的加我QQ1482956179
  • ¥200 相机拍直接转存到电脑上 立拍立穿无线局域网传
  • ¥15 (关键词-电路设计)
  • ¥15 如何解决MIPS计算是否溢出
  • ¥15 vue中我代理了iframe,iframe却走的是路由,没有显示该显示的网站,这个该如何处理
  • ¥15 操作系统相关算法中while();的含义