㈠ 我利用粒子群演算法工具箱求解最優值時陷入了局部最優該如何解決
粒子群陷入局部最優在所難免,建議可以採取加大權重因子的方法,或者一些改進的粒子群演算法會提出對收斂的種群進行干擾,從而產生新的種群,另外可以採用量子粒子群演算法,在局部最優問題上解決的還算可以
㈡ 粒子群演算法 matlab 工具箱 在哪調用 還是沒有現成的需要自己下載
http://www.mathworks.com/matlabcentral/fileexchange/7506
這個基復本上快算是官方的制了。粒子群演算法工具。注冊以後就可以下載了。
㈢ 粒子群演算法工具箱
您好,看到您的問題將要被新提的問題從問題列表中擠出,問題無人回答內過期後會被容扣分並且懸賞分也將被沒收!所以我給你提幾條建議: 一,您可以選擇在正確的分類下去提問或者到與您問題相關專業網站論壇里去看看,這樣知道你問題答案的人才會多一些,回答的人也會多些。 二,您可以多認識一些知識豐富的網友,和曾經為你解答過問題的網友經常保持聯系,遇到問題時可以直接向這些好友詢問,他們會更加真誠熱心為你尋找答案的。 三,該自己做的事還是必須由自己來做的,有的事還是須由自己的聰明才智來解決的,別人不可能代勞!只有自己做了才是真正屬於自己的,別人只能給你提供指導和建議,最終靠自己。 您可以不採納我的答案,但請你一定採納我的建議哦! 雖然我的答案很可能不能解決你的問題,但一定可以使你更好地使用問問哦~~~
採納哦
㈣ 哪位大神能幫我在csdn下載一個PSO工具箱,感激不盡
㈤ matlab 粒子群優化問題
我這里有一個粒子群的完整範例:<群鳥覓食的優化問題>
function main()
clc;clear all;close all;
tic; %程序運行計時
E0=0.001; %允許誤差
MaxNum=100; %粒子最大迭代次數
narvs=1; %目標函數的自變數個數
particlesize=30; %粒子群規模
c1=2; %每個粒子的個體學習因子,也稱為加速常數
c2=2; %每個粒子的社會學習因子,也稱為加速常數
w=0.6; %慣性因子
vmax=0.8; %粒子的最大飛翔速度
x=-5+10*rand(particlesize,narvs); %粒子所在的位置
v=2*rand(particlesize,narvs); %粒子的飛翔速度
%用inline定義適應度函數以便將子函數文件與主程序文件放在一起,
%目標函數是:y=1+(2.1*(1-x+2*x.^2).*exp(-x.^2/2))
%inline命令定義適應度函數如下:
fitness=inline('1/(1+(2.1*(1-x+2*x.^2).*exp(-x.^2/2)))','x');
%inline定義的適應度函數會使程序運行速度大大降低
for i=1:particlesize
for j=1:narvs
f(i)=fitness(x(i,j));
end
end
personalbest_x=x;
personalbest_faval=f;
[globalbest_faval i]=min(personalbest_faval);
globalbest_x=personalbest_x(i,:);
k=1;
while k<=MaxNum
for i=1:particlesize
for j=1:narvs
f(i)=fitness(x(i,j));
end
if f(i)<personalbest_faval(i) %判斷當前位置是否是歷史上最佳位置
personalbest_faval(i)=f(i);
personalbest_x(i,:)=x(i,:);
end
end
[globalbest_faval i]=min(personalbest_faval);
globalbest_x=personalbest_x(i,:);
for i=1:particlesize %更新粒子群里每個個體的最新位置
v(i,:)=w*v(i,:)+c1*rand*(personalbest_x(i,:)-x(i,:))...
+c2*rand*(globalbest_x-x(i,:));
for j=1:narvs %判斷粒子的飛翔速度是否超過了最大飛翔速度
if v(i,j)>vmax;
v(i,j)=vmax;
elseif v(i,j)<-vmax;
v(i,j)=-vmax;
end
end
x(i,:)=x(i,:)+v(i,:);
end
if abs(globalbest_faval)<E0,break,end
k=k+1;
end
Value1=1/globalbest_faval-1; Value1=num2str(Value1);
% strcat指令可以實現字元的組合輸出
disp(strcat('the maximum value','=',Value1));
%輸出最大值所在的橫坐標位置
Value2=globalbest_x; Value2=num2str(Value2);
disp(strcat('the corresponding coordinate','=',Value2));
x=-5:0.01:5;
y=2.1*(1-x+2*x.^2).*exp(-x.^2/2);
plot(x,y,'m-','linewidth',3);
hold on;
plot(globalbest_x,1/globalbest_faval-1,'kp','linewidth',4);
legend('目標函數','搜索到的最大值');xlabel('x');ylabel('y');grid on;toc;
請採納答案,支持我一下。
㈥ 粒子群演算法工具箱怎麼用
粒子群演算法的程序搞不到,工具箱下到一個沒有一點注釋之類的,我看不大懂,不會用,能否說說工具箱怎麼用,要粒子群標准演算法的程序。改進演算法的程序更好。很感激。郵箱[email protected]
㈦ MATLAB粒子群演算法初始化粒子群函數
先運行一下Matlab的例子看看能否正常運行,或者到較高版本上去運行一下代碼。
㈧ 求帶約束條件的粒子群演算法的MATLAB編程
粒子群演算法POS工具箱就有 你有興趣可以告訴我
㈨ 如何用matlab做粒子群的兩個目標優化啊
多目標優化是沒有精確解的,要用加權系數或者非劣解來表示你的解。
㈩ 最近在學PSO工具箱,在網上找到了PSOt以及使用簡介,我不明白的是,如果還有線性約束該怎麼寫
我覺得復在粒子群初始化之前就要限制定可行域,這樣才能在可行域中隨機初始化多個粒子,如果是本題的話,首先可以先讓y在-50到50之間隨機取值,然後x的取值范圍就是在min(-20-2y,-50)到min(60-y,50)之間隨機取值,希望能幫到你