91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

資源簡介

用粒子群算法來求解函數的最優值,標準粒子群算法。

資源截圖

代碼片段和文件信息

function?[pso?F]?=?pso_2D()
%???FUNCTION?PSO??--------USE?Particle?Swarm?Optimization?Algorithm
%global?present;
%?close?all;
pop_size?=?10;??????????%???pop_size?種群大小
part_size?=2;??????????%???part_size?粒子大小??????????????????????????????????????????????????????????????????????**?=n-D
gbest?=?zeros(1part_size+1);????????????%???gbest?當前搜索到的最小的值
max_gen?=?80;??????????%???max_gen?最大迭代次數
region=zeros(part_size1);??%???設定搜索空間范圍
region=[-33;-33];??????????%??????????????????????????????????????????????????????????????????????????????????????**每一維設定不同范圍


rand(‘state‘sum(100*clock));???%???重置隨機數發生器狀態
arr_present?=?ini_pos(pop_sizepart_size);???%???present?當前位置隨機初始化rand()的范圍為0~1

v=ini_v(pop_sizepart_size);?????????????%???初始化當前速度


pbest?=?zeros(pop_sizepart_size+1);??????%???pbest?粒子以前搜索到的最優值,最后一列包括這些值的適應度
w_max?=?0.9;????????????????????????????%???w_max?權系數最大值
w_min?=?0.4;
v_max?=?0.2;?????????????%??????????????????????????????????????????????????????????????????????????????????????????**最大速度為粒子的范圍寬度
c1?=?2;???????????????????%???學習因子
c2?=?2;???????????????????%???學習因子
best_record?=?zeros(1max_gen);?????%???best_record記錄最好的粒子的適應度。
%??————————————————————————
%???計算原始種群的適應度及初始化
%??————————————————————————
arr_present(:end)=ini_fit(arr_presentpop_sizepart_size);

%?for?k=1:pop_size
%?????present(kend)?=?fitness(present(k1:part_size));??%計算原始種群的適應度
%?end

pbest?=?arr_present;????????????????????????????????????????%初始化各個粒子最優值
[best_value?best_index]?=?min(arr_present(:end));?????????%初始化全局最優,即適應度為全局最小的值,根據需要也可以選取為最大值
gbest?=?arr_present(best_index:);
%v?=?zeros(pop_size1);??????????%???v?速度
%??————————————————————————
%???迭代
%??————————————————————————
%?global?m;
%?m?=?moviein(1000);??????%生成幀矩陣
x=[-3:0.01:3];
y=[-3:0.01:3];
z=@(xy)?3*(1-x).^2.*exp(-(x.^2)?-?(y+1).^2)?...
????-?10*(x/5?-?x.^3?-?y.^5).*exp(-x.^2-y.^2)?...
????-?1/3*exp(-(x+1).^2?-?y.^2);
for?i=1:max_gen
????grid?on;
????%?????plot3(xyz);
????%?????subplot(121)ezmesh(z)hold?ongrid?onplot3(arr_present(:1)arr_present(:2)arr_present(:3)‘*‘)hold?off;
????%?????subplot(122)ezmesh(z)view([14590])hold?ongrid?onplot3(arr_present(:1)arr_present(:2)arr_present(:3)‘*‘)hold?off;
????ezmesh(z)?hold?ongrid?onplot3(arr_present(:1)arr_present(:2)arr_present(:3)‘*‘)hold?off;

????drawnow
????F(i)=getframe;

????%?????ezmesh(z)
????%?%?????view([-3790])
????%?????hold?on;
????%?????grid?on;
????%?????%???plot(-0.08980.7126‘ro‘);
????%?????plot3(arr_present(:1)arr_present(:2)arr_present(:3)‘*‘);??????????????????????????????????????????????????%改為三維
????%????axis([-2*pi2*pi-pipi-5010]);
????%?????hold?off;
????pause(0.01);
????%?????m(:i)?=?getframe;????????%添加圖形
????w?=?w_max-(w_max-w_min)*i/max_gen;
????%????fprintf(‘#??%i?代開始!\n‘i);
????%???確定是否對打散已經收斂的粒子群——————————————————————————————
????reset?=?0;??????????%???reset?=?1時設置為粒子群過分收斂時將其打散,如果=1則不打散
????if?

評論

共有 條評論