我发现最低的生产成本矩阵,利用PSO,下面的代码。现在我想做同样的算法。我非常感激如果有人帮我这样做

4视图(30天)
清晰的所有clc;密切所有;
一个= 360;
h = 10;
l = 40;
o = 20;
p = 1;
% %生产矩阵
D = [60 60 80 60 60 100 90 90 50 50
60 60 60 70 80 80 70 80 70 80
50 60 80 80 70 90 80 90 80
80 90 100 70 80 80 70 100 70 60
100 60 50 50 90 100 90 90 50 70];
(p t) = (D)大小;
迭代= 100;
人口= 50;
xmax = 1.25 * D;
xmin = 0.75 * D;
N =人口;
N_GER =迭代;
PHI1 = 1.5;
PHI2 = 1.5;
W = 1;
v = 0 (p, N);
X_MAX = xmax;
X_MIN = xmin;
vmin = ((xmax) - (xmin)) / (N * 5);
vmax = ((xmax) - (xmin)) / (N * 5);
gb = 0 (p、t);
gbestvalue = 10000000000 + 0 (p、t);
gaux = 1 (p、t、N);
xb = 0 (p, N);
fitBest = 0 (N, 1);
适合= 0 (N, 1);
ng = 1;
x = initSwarm (D, N, p, t X_MIN X_MAX);
j = 1: N
(成本(j), Icost (j), Scost (j),
Ocost (j)] = Obj_func (D, x (:,:, j), A, h, l, o, p);
fitBest (j) =成本(j);
结束
[a, b] = min(成本);
gb = x (:,:, b);
gbestvalue =成本(b);
嘲笑= Icost (b);
’= Scost (b);
护镜= Ocost (b);
xb = x;
(ng < = N_GER)
i = 1;
k = 1: N
randnum1 =兰德([p、t]);
randnum2 =兰德([p、t]);
v (:,:, k) = w * v (:,:, k) + randnum1。* (PHI1。* (xb (:,: k) - x (:,:, k)))
+ randnum2。* (PHI2。* (gBest-x (:,:, k)));
i = 1: p
j = 1: t
v (i, j, k) = ((v (i, j, k) < = vmin (i, j))。* vmin) + (i, j)
((v (i, j, k) > vmin (i, j)。* v (i, j, k));
v (i, j, k) = ((v (i, j, k) > = vmax (i, j)。* vmax (i, j)) +
((v (i, j, k) < vmax (i, j))。* v (i, j, k));
结束
结束
x (:,:, k) =装天花板(x (:,:, k) + abs (v (:,:, k)));
i = 1: p
j = 1: t
如果x (i, j, k) < X_MIN (i, j)
x (i, j, k) =装天花板(X_MIN (i, j));
elseifx (i, j, k) > X_MAX (i, j)
x (i, j, k) =地板(X_MAX (i, j));
结束
结束
结束
x (:,:, k) = Repair_Strategy (D, x (:,:, k));
% (:,:,k) = x (:,:, k)
结束
(我< = N)
如果(我= = N)
j = 1: N
(成本(j), Icost (j), Scost (j),
Ocost (j)] = Obj_func (D, x (:,:, j), A, h, l, o, p);
适合(j) =成本(j);
如果适合(j) < fitBest (j)
fitBest (j) =适合(j);
xb (:,:, j) = x (:,:, j);
ib (j) = Icost (j);
某人(j) = Scost (j);
ob (j) = Ocost (j);
结束
结束
[a, b] = min(配合);
如果(适合(b) < gbestvalue)
gb = x (:,:, b);
gbestvalue =适合(b);
嘲笑= ib (b);
’=某人(b);
护镜= ob (b);
结束
结束
我=我+ 1;
结束
GenBest (ng) = gbestvalue;
ng = ng + 1;
结束
情节(GenBest)、宋惠乔网格
包含(“\ bfIteration #”)
ylabel (“\ bfF价值”)
gb = gb
gfunc = gbestvalue
gIcost =嘲笑
gScost =’
gOcost =采空区
函数(群)= initSwarm (D, N, p, t V_MIN V_MAX)
群= 0 (p, N);
k = 1: N
i = 1: p
j = 1: t
临时(i, j, k) = abs(地板(兰德(1,1)* (V_MAX (i, j) -V_MIN (j)) + V_MIN (i, j)));
结束
结束
群(:,:,k) = Repair_Strategy (D,临时(:,:,k));
结束
函数(成本、Icost Scost Ocost] = Obj_func (D, Qr, A, h、l o, p)
(p t) = (D)大小;
i = 1: p
我(1)= 0;
j = 2: t
我(I, j) = (I, j - 1) + Qr (I, j) - d (I, j);
发票(i, j) = max (i (i, j), 0);
Shrt (i, j) = abs(最低(i (i, j), 0));
结束
结束
j = 1: t
问(j) =总和(Qr (:, j));
SInv (j) =总和(发票(:,j));
Sshrt (j) =总和(Shrt (:, j));
Ocst (j) = max (q (j) *便士);
结束
Icost = h。*总和(SInv);
Scost = l。*总和(Sshrt);
Ocost = o。*总和(Ocst);
成本= Icost + Scost + Ocost;
函数城市= Repair_Strategy (D,问)
(p t) = (D)大小;
i = 1: p
SumD (i) = (D(我,:))总和;
SumQ (i) = (Q(我,:))总和;
结束
DiffQD = SumQ-SumD;
德尔地板= (DiffQD / t);
i = 1: p
j = 1: t - 1
Qd (i, j) = Q (i, j)德尔(我);
结束
sumN (i) =总和(Qd(我,:));
Qd (t) = SumD (i) -sumN(我);
结束
城市= Qd;
4评论
阿米尔赛义德
阿米尔赛义德 2012年5月31日
我有一个生产矩阵Dt和目标函数(包括存储+加班等)返回成本对应于Dt。现在我想优化矩阵Dt返回最小成本。我做了这个问题通过使用SA和PSO但无法理解如何在配电网进行/ TSP的情况

登录置评。

答案(1)

沃尔特·罗伯森
沃尔特·罗伯森 2012年6月1日
你现有的问题是还在这里,仍然活跃。你重复的问题已被删除。您可能希望编辑上述存在的问题,消除冗余信息。
请不要打开重复问题;这只是增加了混乱和不满的志愿者回答问题。

标签

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!