- i am getting error in line
- initialpop = Xmin + (Xmax - Xmin) .* rand(numofparticles, numofdims);
- Error using *
- Inner matrix dimensions must agree.
- please help me
Particle Swarm Optimization help
2 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
I new in matlab i need some help about with a code in matlab. I want make the Particle Swarm Optimization and i want put a mouse click to define a point in space with a window size [min1, max1] and [min2, max2]. Then a cluster consisting of n = 10 particles initialized and searches for the point set initially by the user.
my code is this:
clear all;
numofdims = 30;
numofparticles = 50;
c1 = 2;
c2 = 2;
numofiterations = 1000;
V = zeros(50, 30);
initialpop = V;
Vmin = zeros(30, 1);
Vmax = Vmin;
Xmax = ones(30, 1) * 100;
Xmin = -Xmax;
pbestfits = zeros(50, 1);
worsts = zeros(50, 1);
bests = zeros(50, 1);
meanfits = zeros(50, 1);
pbests = zeros(50, 30);
initialpop = Xmin + (Xmax - Xmin) .* rand(numofparticles, numofdims);
X = initialpop;
fitnesses = testfunc1(X);
[minfit, minfitidx] = min(fitnesses);
gbestfit = minfit;
gbest = X(minfitidx, :);
for i = 1:numofdims
Vmax(i) = 0.2 * (Xmax(i) - Xmin(i));
Vmin(i) = -Vmax(i);
end
for t = 1:1000
w = 0.9 - 0.7 * (t / numofiterations);
for i = 1:numofparticles
if(fitnesses(i) < pbestfits(i))
pbestfits(i) = fitnesses(i);
pbests(i, :) = X(i, :);
end
end
for i = 1:numofparticles
for j = 1:numofdims
V(i, j) = min(max((w * V(i, j) + rand * c1 * (pbests(i, j) - X(i, j))...
+ rand * c2 * (gbest(j) - X(i, j))), Vmin(j)), Vmax(j));
X(i, j) = min(max((X(i, j) + V(i, j)), Xmin(j)), Xmax(j));
end
end
fitnesses = testfunc1(X);
[minfit, minfitidx] = min(fitnesses);
if(minfit < gbestfit)
gbestfit = minfit;
gbest = X(minfitidx, :);
end
worsts(t) = max(fitnesses);
bests(t) = gbestfit;
meanfits(t) = mean(fitnesses);
end
1 commentaire
scorpio 09
le 4 Avr 2014
Réponses (2)
Walter Roberson
le 27 Jan 2014
"I want to do this" is not something we can act on. Give us a question. A question about MATLAB. A statement of what you are aiming for is not a question. "Why am I unable to color my graphics input cursor 'Gold' in MATLAB?" is an example of a question. "Why do all my MATLAB programs that start with 'clear all' fail to work?' is a question. "What are some good resources for learning MATLAB?" is a question. "I want a really good cup of Hot Cocoa." is a statement.
0 commentaires
Yarpiz / Mostapha Heris
le 13 Sep 2015
A structured and well-commented MATLAB implementation of Particle Swarm Optimization (PSO) is available to download in the following FEX link:
1 commentaire
younes youyou
le 16 Déc 2019
i have this error with this PSO algorithm ? how can i solve it many thanks
Index exceeds matrix dimensions.
Error in Sphere (line 16) z= 2.633*x(1)+2.992*x(2)+3.134*x(3)+3.678*x(4)+3.620*x(5)+2.948*x(6)+1.607*x(7)+2.952*x(8)+3.348*x(9)+3.680*x(10)+3.774*x(11)+2.995*x(12)+3.237*x(13)+1.608*x(14);
Error in pso>@(x)Sphere(x)
Error in pso (line 160) disp ([ 'CostFunction = ' (CostFunction(it))])
Voir également
Catégories
En savoir plus sur Particle Swarm dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!