經典pso粒子群優化演算法程式

2022-05-20 06:08:24 字數 1426 閱讀 5726

clear all清除所有變數

clc清屏

format long將資料顯示為長整形科學計數

%------給定初始條條件

n=40初始化群體個數

d=10初始化群體維數

t=100初始化群體最迭代次數

c11=2學習因子1

c21=2學習因子2

c12=1.5;

c22=1.5;

w=1.2慣性權重

eps=10^(-6設定精度(在已知最小值的時候用)

%------初始化種群個體(限定位置和速度

x=zeros(n,d);

v=zeros(n,d);

for i=1:n

for j=1:d

x(i,j)=randn; %隨機初始化位置

v(i,j)=randn; %隨機初始化速度

endend%------初始化種群個體(在此限定速度和位置

x1=x;

v1=v;

%------初始化個體最優位置和最優值---

p1=x1;

pbest1=ones(n,1);

for i=1:n

pbest1(i)=fitness(x1(i,:),d);

end%------初始化全域性最優位置和最優值

g1=1000*ones(1,d);

gbest1=1000;

for i=1:n

if(pbest1(i) g1=p1(i,:);

gbest1=pbest1(i);

endendgb1=ones(1,t);

%-----浸入主迴圈,按照公式依次迭代直到滿足精度或者迭代次數---

for i=1:t

for j=1:n

if (fitness(x1(j,:),d)p1(j,:)=x1(j,:);

pbest1(j)=fitness(x1(j,:),d);

endif(pbest1(j)g1=p1(j,:);

gbest1=pbest1(j);

endv1(j,:)=w*v1(j,:)+c11*rand*(p1(j,:)-x1(j,:))+c21*rand*(g1-x1(j,:));

x1(j,:)=x1(j,:)+v1(j

endgb1(i)=gbest1;

endplot(gb1)

tempstr=sprintf('c1= %g ,c2=%g',c11,c21);

title(tempstr);

xlabel('迭代次數');

ylabel('適應度值');

disp

disp('函式的全域性最優位置為:')

solution=g1

disp('最後得到的優化極值為:')

result=fitness(g1,d)

disp

基本粒子群演算法的matlab源程式

主函式源程式 基本粒子群優化演算法 particle swarm optimization 名稱 基本粒子群優化演算法 pso 作用 求解優化問題 說明 全域性性,並行性,高效的群體智慧型演算法 初始格式化 clear all clc format long 給定初始化條件 c1 1.4962 學習...

二維粒子群演算法的matlab源程式

function pso f pso 2d function pso use particle swarm optimization algorithm global present close all clc clear all pop size 10pop size 種群大小 粒子數量 part...

非線性規劃的粒子群演算法1

xx大學 智慧型優化演算法課內實驗報告書 非線性規劃問題的粒子群演算法 1.1 背景介紹 1.1.1 非線性規劃簡介 具有非線性約束條件或目標函式的數學規劃,是運籌學的乙個重要的分支,目標函式和約束條件都是線性函式的情形則屬於線性規劃。非線性規劃是20世紀50年代才開始形成的一門新興學科。1951年...