您现在的位置:首页 >> 技术文章 >> MATLAB技术 >> 内容

MATLAB代做-python代做-FPGA代做- 粒子优化

时间:2019-5-16 0:48:31 点击:

  核心提示:MATLAB代做-python代做-FPGA代做- 粒子优化 ...
%==参数输入===========================================
%swarminitnum粒子数,gen循环代数,w1变异率。
clc;
clear;
close all;
warning off;
 

swarminitnum=100;
gen=30;
w1=0.35;    
T=1000;
man=[0.0000   0.0000   0.0000   0.9175   0.0000   0.9125   0.8600   0.8700   0.0000   0.0000   0.0000   0.0000   0.6725   0.0000   0.0000   0.0000   0.0000   0.0001   0.9075   0.0000   0.8525   0.0000   0.0000   0.8475   0.6725   0.0000 
     0.7725   0.0000   0.0000   0.0000   0.6650   0.0000   0.0000   0.0000   0.7375   0.0000   0.0000   0.0000   0.0000   0.8775   0.0000   0.0000   0.7950   0.0000   0.0000   0.0000   0.0000   0.0000   0.7350   0.8825   0.0000   0.8125
     0.0000   0.7400   0.0000   0.0000   0.0000   0.0000   0.8975   0.0000   0.0000   0.0000   0.7950   0.0000   0.9175   0.0000   0.0000   0.9675   0.0000   0.0000   0.0000   0.7800   0.7850   0.0000   0.0000   0.0000   0.0000   0.0000  
     0.8825   0.0000   0.7900   0.0000   0.7500   0.0000   0.0000   0.0000   0.8425   0.0000   0.0000   0.6550   0.0000   0.7200   0.8825   0.0000   0.0000   0.0000   0.0000   0.7325   0.0000   0.8900   0.0000   0.0000   0.9400   0.0000
     0.0000   0.0000   0.0000   0.0000   0.0000   0.7625   0.0000   0.0000   0.0000   0.7950   0.0000   0.0000   0.8325   0.0000   0.0000   0.0000   0.8850   0.0000   0.0000   0.6400   0.0000   0.0000   0.0000   0.7825   0.0000   0.8100
     0.0000   0.7000   0.0000   0.0000   0.0000   0.0000   0.8900   0.0000   0.0000   0.0000   0.0000   0.0000   0.0000   0.0000   0.6625   0.0000   0.0000   0.8600   0.0000   0.0000   0.0000   0.9100   0.0000   0.0000   0.7125   0.0000
     0.7325   0.0000   0.8950   0.0000   0.0000   0.0000   0.6950   0.0000   0.0000   0.7850   0.0000   0.0000   0.0000   0.0000   0.8800   0.0000   0.9325   0.9050   0.0000   0.9075   0.0000   0.0000   0.0000   0.8325   0.0000   0.0000
     0.0000   0.0000   0.0000   0.8175   0.8650   0.0000   0.0000   0.8500   0.0000   0.0000   0.8400   0.0000   0.7075   0.0000   0.0000   0.0000   0.0000   0.0000   0.9625   0.0000   0.0000   0.0000   0.0000   0.0000   0.0000   0.8400];
 
 MM=[1 1  2 2 3 4 5  5  5  5  6 6 7 8 9  9  10 11 12 13 13 14 15 16 17 18 19 19 20 21 22 23 24 25
     2 18 3 6 4 5 10 11 12 13 7 8 9 9 13 16 15 14 14 14 16 15 25 17 25 19 20 22 21 24 23 24 25 26];
time=[12 11 13 6 10 7 7 8 14 15 10 9 12 4 8 5 7 15 17 10 12 11 11 10 9 10];    
%==%随机生成初始粒子群体======================
swarminit=cell(1,swarminitnum);
for i=1:swarminitnum,
    swarminit{i}=random(man);
end
%===========================================
[popu,s] = size(swarminit);
[en,n]=size(man);
tracee = ones(1,gen); 
tracee(1) = 10000000; % 初始全局最佳适应度设为足够大 
for i = 1:s,
    bestfit(i) = 10000000; % 初始个体历史最佳适应度设为足够大 
end
bestpar = swarminit; % 个体历史最佳粒子初始化
for l=1:swarminitnum,
    fitlist(l)=[0];
end
dd1=clock;
%==开始世代循环===============================
for step=1:gen, 
    for q=1:swarminitnum,
        for pop=1:n,
            time1(pop)=da(time(pop)/man(swarminit{q}(pop),pop));
        end   
        fitlist(q)=uncode(MM,n,time1,swarminit{q},en);      
    end% 计算当前粒子群每个粒子的适应度
    [minval,sub] = min(fitlist); % 求得这代粒子的适应度最小值及其下标 
    if(tracee(step) > minval),  
        tracee(step) = minval;
        bestparticle = swarminit{sub};
    end
    if(step~= gen) ,
       tracee(step+1)=tracee(step);% 全局最佳适应度及最佳粒子调整 
    end
  %  for i = 1:s,
  %      if(bestfit(i) > fitlist(i)), 
     T=0.95*T;
   for i = 1:s,
       tt=fitlist(i)-bestfit(i);       
       if  (bestfit(i) > fitlist(i))|(min(1,exp(-tt/T))>=rand(1,1)) ,   
            bestfit(i) = fitlist(i); 
            bestpar{i} = swarminit{i};
       end  
    end % 个体历史最佳粒子及适应度调整 
    for j = 1:s,  
         if (rand(1,1)<w1),
               bestpar1{j}=bianyi(bestpar{j},man);
               %bestparticle1=bianyi(bestparticle,man);
              else
                bestpar1{j}=bestpar{j};
               %bestparticle1=bestparticle;
         end   
         l1=1000;
         l2=1;
         l3=1000;
         l4=1;
         while (l1-l2)>n,
             m1=fix(n*rand(1,1));
             n1=fix(n*rand(1,1));
             l1=max(m1,n1)+1;
             l2=min(m1,n1)+1;
         end
         while (l3-l4)>n,
             m2=fix(n*rand(1,1));
             n2=fix(n*rand(1,1));
             l3=max(m2,n2)+1;
             l4=min(m2,n2)+1;
         end
         swarminit{j}=cross(bestpar1{j},swarminit{j},l2,l1);
         swarminit{j}=cross(bestparticle,swarminit{j},l4,l3);
         end 
end
dd2=clock;
sss=dd2-dd1;
if sss(6)<0;
    sss(6)=1-sss(6);
    sss(5)=sss(5)-1;
end
www=date;
%==输出统计数============================
disp(['粒子数:' int2str(s)  '   循环代数:' int2str(gen)])
disp(['trasce:' int2str(tracee)]) 
disp(['每个节点的人员:' int2str( bestparticle)])
disp(['运算时间:'  int2str(sss(5)) '分' int2str(sss(6)) '秒'])
disp([date])
 
gant2(MM,man,time,bestparticle);
 
quxian(tracee);

联系:highspeedlogic

QQ :1224848052

微信:HuangL1121

邮箱:1224848052@qq.com

网站:http://www.mat7lab.com/

网站:http://www.hslogic.com/

微信扫一扫:

作者:粒子优化 来源:粒子优化
  • 您是如何找到本站的?
  • 百度搜索
  • Google搜索
  • 查阅资料过程中
  • 论坛发现
  • 百度贴吧发现
  • 朋友介绍
本站最新成功开发工程项目案例
相关文章
  • 没有相关文章
相关评论
发表我的评论
  • 大名:
  • 内容:
  • matlab代做|matlab专业代做|python代做|matlab淘宝代做|matlab代写(www.hslogic.com) © 2019 版权所有 All Rights Reserved.
  • Email:highspeed_logic@163.com 站长QQ: 1224848052

    专业代做/代写/承接、MATLAB、SIMULINK、FPGA项目、博士/硕士/本科毕业设计、课题设计、论文,毕业论文,Coursework、Eassy、Assignment