日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

粒子群优化RBF神经网络源码程序

發(fā)布時間:2025/4/5 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 粒子群优化RBF神经网络源码程序 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

clear all
close all

%G為迭代次數(shù),n為個體長度(包括12個參數(shù)),m為總?cè)阂?guī)模
%w,c1,c2為粒子群算法中的參數(shù)
G =250;
n = 12;
m = 20;
w = 0.1;
c1 = 2;
c2 = 2;

for i = 1:3
? ? MinX(i) = 0.1*ones(1);
? ? MaxX(i) = 3*ones(1);
end

for i = 4:1:9
? ? MinX(i) = -3*ones(1);
? ? MaxX(i) = 3*ones(1);
end

for i = 10:1:12
? ? MinX(i) = -ones(1);
? ? MaxX(i) = ones(1);
end

pop = rands(m,n);
for i = 1:m
? ? for j = 1:3
? ? ? ? if pop(i,j) < MinX(j)
? ? ? ? ? ? pop(i,j) = MinX(j);
? ? ? ? end
? ? ? ? if pop(i,j) > MaxX(j)
? ? ? ? ? ? pop(i,j) = MaxX(j);
? ? ? ? end
? ? end
? ? for j = 4:9
? ? ? ? if pop(i,j) < MinX(j)
? ? ? ? ? ? pop(i,j) = MinX(j);
? ? ? ? end
? ? ? ? if pop(i,j) > MaxX(j)
? ? ? ? ? ? pop(i,j) = MaxX(j);
? ? ? ? end
? ? end
? ? for j = 10:12
? ? ? ? if pop(i,j) < MinX(j)
? ? ? ? ? ? pop(i,j) = MinX(j);
? ? ? ? end
? ? ? ? if pop(i,j) > MaxX(j)
? ? ? ? ? ? pop(i,j) = MaxX(j);
? ? ? ? end
? ? end
end
? ? ? ??

V = 0.1*rands(m,n);
BsJ = 0;

%根據(jù)初始化的種群計算個體好壞,找出群體最優(yōu)和個體最優(yōu)
for s = 1:m
? ? indivi = pop(s,:);
? ? [indivi,BsJ] = chap10_3b(indivi,BsJ);
? ? Error(s) = BsJ;
end

[OderEr,IndexEr] = sort(Error);
Error;
Errorleast = OderEr(1);
for i = 1:m
? ? if Errorleast == Error(i)
? ? ? ? gbest = pop(i,:);
? ? ? ? break;
? ? end
end
ibest = pop;


for kg = 1:G
? ? kg
? ? for s = 1:m;
%個體有4%的變異概率 ? ? ? ?
? ? ? ? for j = 1:n
? ? ? ? ? ? for i = 1:m
? ? ? ? ? ? ? ? if rand(1)<0.04
? ? ? ? ? ? ? ? ? ? pop(i,j) = rand(1);
? ? ? ? ? ? ? ? end
? ? ? ? ? ? end
? ? ? ? end
%r1,r2為粒子群算法參數(shù) ? ? ? ?
? ? ? ? r1 = rand(1);
? ? ? ? r2 = rand(1);

%個體和速度更新 ? ? ? ?
? ? ? ? V(s,:) = w*V(s,:) + c1*r1*(ibest(s,:)-pop(s,:)) + c2*r2*(gbest-pop(s,:));
? ? ? ? pop(s,:) = pop(s,:) + 0.3*V(s,:);
? ? ? ??
? ? ? ? for j = 1:3
? ? ? ? ? ? if pop(s,j) < MinX(j)
? ? ? ? ? ? ? ? pop(s,j) = MinX(j);
? ? ? ? ? ? end
? ? ? ? ? ? if pop(s,j) > MaxX(j)
? ? ? ? ? ? ? ? pop(s,j) = MaxX(j);
? ? ? ? ? ? end
? ? ? ? end
? ? ? ? for j = 4:9
? ? ? ? ? ? if pop(s,j) < MinX(j)
? ? ? ? ? ? ? ? pop(s,j) = MinX(j);
? ? ? ? ? ? end
? ? ? ? ? ? if pop(s,j) > MaxX(j)
? ? ? ? ? ? ? ? pop(s,j) = MaxX(j);
? ? ? ? ? ? end
? ? ? ? end
? ? ? ? for j = 10:12
? ? ? ? ? ? if pop(s,j) < MinX(j)
? ? ? ? ? ? ? ? pop(s,j) = MinX(j);
? ? ? ? ? ? end
? ? ? ? ? ? if pop(s,j) > MaxX(j)
? ? ? ? ? ? ? ? pop(s,j) = MaxX(j);
? ? ? ? ? ? end
? ? ? ? end

%求更新后的每個個體適應(yīng)度值 ? ? ? ?
? ? ? ? [pop(s,:),BsJ] = chap10_3b(pop(s,:),BsJ);
? ? ? ? error(s) = BsJ;
%根據(jù)適應(yīng)度值對個體最優(yōu)和群體最優(yōu)進行更新 ? ? ? ?
? ? ? ? if error(s)<Error(s)
? ? ? ? ? ? ibest(s,:) = pop(s,:);
? ? ? ? ? ? Error(s) = error(s);
? ? ? ? end
? ? ? ? if error(s)<Errorleast
? ? ? ? ? ? gbest = pop(s,:);
? ? ? ? ? ? Errorleast = error(s);
? ? ? ? end
? ? end
? ??
? ? Best(kg) = Errorleast;
end
plot(Best);

save pfile1 gbest;
? ??

?

總結(jié)

以上是生活随笔為你收集整理的粒子群优化RBF神经网络源码程序的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。