1. Problembeschreibung:
Verwendung des Partikelschwarmalgorithmus zur Lösung von Problemen bei der Zuverlässigkeitsoptimierung
2. Teil des Programms:
klar;
clc;
alle schließen
popsize = 20; num = 5;
jiage = [3,12,8,5,10]; jiage = jiage ';
kekaoxing = [0,96,0,93,0,85,0,8,0,75]; r0 = 0,9;
bujian = Nullen (popsize) , num + 2);% Die Zuverlässigkeit der Spalte num + 1, der Preis der Spalte num + 2
newbujian = Nullen (popsize, num + 2);
vol = Nullen (popsize, num);
% quanzhong = 1; c1 = 1 ; c2 = 1;
c1 = 1,4962; c2 = 1,4962;
maxgen = 100;
für i = 1: popsize,
für j = 1: num,
bujian (i, j) = decken (5 * rand); newbujian (i, j) = decken (5 * rand);
end
bujian (i, num + 1) ) = 1; newbujian (i, num + 1) = 1;
für j = 1: num,
bujian (i, num + 1) = bujian (i, num + 1) * (1- (1-kekaoxing (j)) ) ^ bujian (i, j));
newbujian (i, num + 1) = newbujian (i, num + 1) * (1- (1-kekaoxing (j)) ^ newbujian (i, j));
end
if bujian (i, num + 1) <r0 bujian (i, :) = kkxchangenew (bujian (i, :), jiage, kekaoxing, r0); end% Stellen Sie sicher, dass die Zuverlässigkeitsanforderungen nach der Initialisierung erfüllt sind,
wenn newbujian (i, num +) 1) <r0 newbujian (i, :) = kkxchangenew (newbujian (i, :), jiage, kekaoxing, r0); end%, um sicherzustellen, dass die Zuverlässigkeitsanforderungen nach der Initialisierung erfüllt sind
bujian (i, num + 2) = bujian ( i, 1: 5) * jiage;
newbujian (i, num + 2) = newbujian (i, 1: 5) * jiage;
Ende
bestbujian = newbujian (1, :);
%%%%%%%%%%%% starten die Hauptschleife %%%%%%%%%%%%
für k = 1: maxgen,
quanzhong = 0,9-0,5 * k / maxgen;
% berechnen das individuelle Extrem Wert und globaler Extremwert
für i = 1: popsize,
%% bujian (i, num + 2) = bujian (i, 1: 5) * jiaga;
wenn bujian (i, num + 2) <newbujian (i, num +) 2) newbujian (i, :) = bujian (i, :); end
if newbujian (i, num + 2) <bestbujian (num + 2) bestbujian = newbujian (i, :); end
end
track (k, 1) = k; Spur (k, 2) = bestbujian (num + 2); Spur (k, 3) = min (bujian (:, num + 2)); Spur (k, 4) = max (bujian (:, num +2));
% Position und Geschwindigkeit
für i = 1 aktualisieren: Popsize,
für j = 1: num,
vol (i, j) = quanzhong * vol (i, j) + c1 * rand * (newbujian (i, j) -bujian (i, j)) + c2 * rand * (bestbujian (j) -bujian (i, j));% Aktualisierungsgeschwindigkeit
bujian (i, j) = bujian (i, j) + vol (i, j);% Aktualisierungsort
bujian (i, j) = decken (bujian (i, j));
if ( bujian (i, j) <0) bujian (i, j) = 0; end
end
end
% Berechnen Sie die Zuverlässigkeit und stellen Sie die Zuverlässigkeitsanforderungen sicher und berechnen Sie gleichzeitig den Preis
für i = 1: popsize,
bujian (i , num + 1) = 1;
für j = 1: num, bujian (i, num + 1) = bujian (i, num + 1) * (1- (1-kekaoxing (j)) ^ bujian (i, j )); end
if bujian (i, num + 1) <r0 bujian (i, :) = kkxchangenew (bujian (i, :), jiage, kekaoxing, r0); end% garantiert, um die Zuverlässigkeitsanforderungen zu erfüllen
bujian (i, num + 2) = bujian (i, 1: 5) * jiage;
Ende
Ende
%%%%%%%%%%% Ende der Hauptschleife
%%%%%%%%%% bestbujian,
Figurendiagramm
(Spur (:, 1), Spur (:, 2), 'b - +', Spur (:, 1), Spur (:, 3), 'r-x', Spur (:, 1), Spur (:, 4), 'm- *');
t = max (Spur (:, 2));
Figurendiagramm
(Spur (:, 1), Spur (:, 2), 'r');
Achse ( [1, maxgen, 80, t + 1]);
xlabel ('Anzahl der Iterationen'); ylabel ('Preis (Yuan)');
3. Simulationsschlussfolgerung:
D00004