① matlab的PSO工具箱 誰有
已發送,望採納
② 用matlab實現粒子群優化演算法的可視化模擬,跪求源代碼!!!!
給你一個地址,是Mathworks公司網站上的,全球Matlab使用者將自己的代碼在這里分享,這是粒子群演算法PSO工具箱地址
http://www.mathworks.com/matlabcentral/fileexchange/7506-particle-swarm-optimization-toolbox
看看使用說明,用一下demo就會了,在界面的右下方有平面粒子顯示
在這里你還可以搜到很多源代碼,希望對你有幫助
③ matlab 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;
請採納答案,支持我一下。
⑤ MATLAB中使用PSO的工具箱編程中遇到的問題
目標函數計算裡面維數不一樣 把az的分號去掉 看看結果是什麼 是否是一個行向量
⑥ 粒子群演算法 matlab 工具箱 在哪調用 還是沒有現成的需要自己下載
http://www.mathworks.com/matlabcentral/fileexchange/7506
這個基復本上快算是官方的制了。粒子群演算法工具。注冊以後就可以下載了。
⑦ MATLAB 中pso工具箱運行時出現錯誤pso_Trelea_vectorized at 235,是不是工具箱沒安裝好
您好,您要把這個工具箱的路徑(包含子路徑)addpath到matlab環境中版。
??? Error using ==> feval
Undefined function or method 'test_func' for input arguments of type 'double'.
Error in ==> pso_Trelea_vectorized at 267
out = feval(functname,pos); % returns column of cost values (1 for each particle)
Error in ==> Untitled4 at 8
pso_Trelea_vectorized('test_func',n,Max_V,range) %調用PSO核心模權塊。
⑧ 有關MATLAB的PSO工具箱(粒子群演算法模擬)
你也是做畢業設計的呀,我也是。咨詢老師好多次了都還是交不了。傷心
⑨ PSO工具箱中,如何添加等式約束條件
1條回答
首先回答你第一個問題:怎麼加入變數的約束條件?
打開遺傳演算法工具箱的窗體中會有下圖所示的選項,即是約束條件的編輯
至於添加的方式,這里要重點的提一下,首先將問題抽象成規劃問題的標准形式(如果你不懂什麼是標准形式的話,建議你去翻閱運籌學那本書,上告訴你什麼是標准形式),然後用矩陣語言寫出來,最後將矩陣的系數填寫到線性不等約束和線性相等約束中,同時定義所求變數x的上界和下界(記住有多少個變數就有多少列,如果你發現有些條件中沒有出現某些變數,那麼就應該用0補足,這個是matlab解決規劃問題與lingo想比較麻煩的一個地方,)。
然後回答你第二個問題:可否在M文件中添加約束條件?
當然可以,界面的東西是為了方便不熟悉matlab編程的人而設計出來的,但是其底層的演算法和介面肯定是有的。
碰到不懂的函數,請記得:help 函數名
help ga 之後會得到一下一些函數
ga
Find minimum of function using genetic algorithm //這個是定義
Syntax // 這個是語法也即是調用的規則
x = ga(fitnessfcn,nvars)
x = ga(fitnessfcn,nvars,A,b)
x = ga(fitnessfcn,nvars,A,b,Aeq,beq)
x = ga(fitnessfcn,nvars,A,b,Aeq,beq,LB,UB)
x = ga(fitnessfcn,nvars,A,b,Aeq,beq,LB,UB,nonlcon)
x = ga(fitnessfcn,nvars,A,b,Aeq,beq,LB,UB,nonlcon,options)
x = ga(problem)
[x,fval] = ga(...)
[x,fval,exitflag] = ga(...)
直接給你將最長的那個吧
x = ga(fitnessfcn,nvars,A,b,Aeq,beq,LB,UB,nonlcon,options)
X是返回所求的解
fitnessfcn是適應度函數
nvars是適應度函數中所含變數的維數
A是不等式約束中變數的系數矩陣,b是不等式約束中不含變數的值矩陣
Aeq是等式約束中變數的系數矩陣,beq是等式約束中不含變數的值矩陣
LB是下界,UB是上界
nonlcon 是非線性約束條件
至於options嘛 我也木有用過,其實你也可以不用管的。
懂了木有呢,親?
⑩ Matlab 中的 pso_Trelea_vectorized
沒法識別normmat函數。有可能你沒有安裝工具箱,或者你把PSO工具箱復制到toolbox文件下了,但是沒有添加文件路勁,matlab直接就沒掃描到函數normmat