MATLAB代做  | MATLAB代写  | MATLAB有偿编程
首 页
当前位置:MATLAB代做|MATLAB代写|MATLAB有偿编程matlab源码算法设计
动态粒子群算法的动态环境寻优算法matlab源码程序        [↓跳到下载地址]
官方主页:源码共享网站:www.buycode.cn

联系方式:客服QQ:1747812398 买代码源码软件站,欢迎咨询

运行环境:Win9X/2000/XP/2003/

源码语言:简体中文

源码类型:源码程序 - 算法设计

推荐星级:

更新时间:2015-09-20 15:41:19

源码简介

%% 动态粒子群算法

%% 清空环境
clear
clc

%% 设置双峰参数
% 设置con1参数
X1 = 25;
Y1 = 25;
H1 =410;

%设置con2参数
H2=zeros(1,1200);
i=1:200;
H2(i)=450-fix(i/5);
i=201:700;
H2(i)=410;
i=701:1000;
H2(i)=350 + fix((i-500)/10)*3;
i=1001:1200;
H2(i) = 500;

X2=zeros(1,1200);
i=1:1200;
Y2(i)=-25;
i=1:500;
X2(i)=-25 + (i-1)*25/500;
i=501:1000;
X2(i)=0;
i=1001:1200;
X2(i)=(i-1000)*25/200;

%% 初始化粒子和敏感粒子
% 种群规模
n = 20;
% 粒子和敏感粒子
pop = unidrnd(501,[n,2]);
popTest = unidrnd(501,[5*n,2]);
% 数字高度
h = DF1function(X1,Y1,H1,X2(1),Y2(1),H2(1));
V = unidrnd(100,[n,2])-50;
Vmax=25;Vmin=-25;

%% 粒子和敏感粒子适应度值
fitness=zeros(1,n);
fitnessTest=zeros(1,n);
for i=1:n
    fitness(i)=h(pop(i,1),pop(i,2));
    fitnessTest(i)=h(popTest(i,1),popTest(i,2));
end
oFitness=sum(fitnessTest); %敏感粒子
[value,index]=max(fitness);
popgbest=pop;
popzbest=pop(index,:);
fitnessgbest=fitness;
fitnesszbest=fitness(index);

%% 算法参数
vmax = 10;
vmin = -10;
popMax=501;
popMin=1;
m = 2;
nFitness = oFitness;
Tmax=100; %每次迭代次数
fitnessRecord=zeros(1,1200);
%% 循环寻找最优点
for k = 1:1200
    k

    % 新数字地图
    h = DF1function(X1,Y1,H1,X2(k),Y2(k),H2(k));
   
    % 敏感粒子变化
    for i=1:5*n
        fitnessTest(i)=h(popTest(i,1),popTest(i,2));
    end
    oFitness=sum(fitnessTest);
   
    % 变化超过阈值,重新初始化
    if abs(oFitness - nFitness)>1
        index=randperm(20);
        pop(index(1:10),:)=unidrnd(501,[10,2]);
        V(index(1:10),:)=unidrnd(100,[10,2])-50;
    end
   
    % 粒子搜索
    for i=1:Tmax
   
        for j=1:n
            % 速度更新
            V(j,:)=V(j,:)+floor(rand*(popgbest(j,:)-pop(j,:)))+floor(rand*(popzbest - pop(j,:)));
            index1=find(V(j,:)>Vmax);
            V(j,index1)=Vmax;
            index2=find(V(j,:)<Vmin);
            V(j,index2)=Vmin;
           
            % 个体更新
            pop(j,:)=pop(j,:)+V(j,:);
            index1=find(pop(j,:)>popMax);
            pop(j,index1)=popMax;
            index2=find(pop(j,:)<popMin);
            pop(j,index2)=popMin;
           
            % 新适应度值
            fitness(j)=h(pop(j,1),pop(j,2));
           
            % 个体极值更新
            if fitness(j) > fitnessgbest(j)
                popgbest(j,:) = pop(j,:);
                fitnessgbest(j) = fitness(j);
            end  
           
            % 群体极值更新
            if fitness(j) > fitnesszbest
                popzbest= pop(j,:);
                fitnesszbest = fitness(j);
            end
           
        end
    end
   
    fitnessRecord(k)=fitnesszbest;
    fitnesszbest=0;
    fitnessgbest=zeros(1,20);
end

figure
plot(fitnessRecord(1:1200),'*-')
title('动态最优值')

function ff = DF1function(X1,Y1,H1,X2,Y2,H2)
%% 根据双峰函数返回数字坐标
% X1 Y1 H1   input    con1参数
% X2 Y2 H2   input    con2参数

%% 基本参数
XX=[X1,X2];
YY=[Y1,Y2];
N=2;
Hbase=[H1,H2];
%两山峰距离
D_ab=sqrt((XX(1)-XX(2))^2+(YY(1)-YY(2))^2);
[x,y]=meshgrid(-50:0.2:50);

%% 数字地图坐标
Hbase(1)=Hbase(1);
Rbase=[Hbase(1)/D_ab,Hbase(2)/D_ab];
for i=1:N
    H(i)=Hbase(i);
    R(i)=Rbase(i);
    f(:,:,i)=H(i)-R(i)*sqrt((x-XX(i)).^2+(y-YY(i)).^2);
end
[m,n,p]=size(f);
for i=1:m
    for j=1:n
       [OrderZ,IndexZ]=sort(f(i,j,:));
       ff(i,j)=f(i,j,IndexZ(N));
   end
end

end
 


提 示:本站所有源码只提供浏览,需要定制的朋友可以联系在线客服!
注意:价格根据项目的难易程度来定价格业务咨询

动态粒子群算法的动态环境寻优算法matlab源码程序 --下载地址

注意:为避免不必要的误会,本站项目里的源码只公开部分需要的联系在线客服

本站长期招聘程序代写高手,欢迎加入华南地区matlab团队

想创业却没有经验的人

无论你是否有过网上开店的经验,都可以随时联系在线客服,建立自己独立的网站
想开网店却不知道如何入手

淘宝创业成本低而且风险小,如果想开淘宝店的朋友可以联系在线客服。
想兼职创业,却不擅长交际与服务的人

在家创业月入5000元。网站程序+百套群发工具+网赚资料+域名+空间+本站终身代理资格,这样你网赚的条件全具备了。每天3小时管理、推广、收钱。
缺乏能快速赢利型产品的人

导入多种最新流行营销软件+网赚教程,让入驻者轻松加盟、复制有效成交技巧、快速赚钱。

源码评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论

浏览说明

* 本站所有源码全部公开,随时随地浏览!
* MATLAB软件如用于商业用途,请购买正版!
* 如果您发现下载链接错误,请点击报告错误谢谢!
* 站内提供的所有软件包含破解及注册码均是由网上搜集,若侵犯了你的版权利益,敬请来信通知我们!
Copyright © 2008-2014 www.buycode.cn. All Rights Reserved.
页面执行时间:187.50000 毫秒