久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
PSO求解最大崩潰路徑 MATLAB源程序
[打印本頁]
作者:
冰美式
時間:
2020-8-24 10:33
標題:
PSO求解最大崩潰路徑 MATLAB源程序
這是我個人的程序庫中的程序,是本人在大二時為求解電網(wǎng)崩潰節(jié)點概率所寫。根據(jù)每個節(jié)點的崩潰概率,求解最大崩潰路徑,據(jù)此在設計方案時盡可能避免路徑的產生。
輸出結果.jpg
(49.09 KB, 下載次數(shù): 67)
下載附件
2020-8-24 10:28 上傳
隨即結果與最優(yōu)結果對比,同時給出相應崩潰概率
MATLAB源程序:
%% 該函數(shù)演示多目標perota優(yōu)化問題
%清空環(huán)境
%close all
%clear,clc
load qzjz %權值矩陣
%% 初始參數(shù)
%初始化程序
Dim=20; %粒子維數(shù)
PopSize=100; %種群個數(shù)
MaxIt=500; %迭代次數(shù)
c1=0.5; %算法參數(shù)
c2=0.7; %算法參數(shù)
wmax=1.2; %慣性因子
wmin=0.1; %慣性因子
NumToNext=1; %記錄最優(yōu)適應值個數(shù)
NumToQuit=1; %記錄最優(yōu)適應度重復出現(xiàn)的個數(shù)
w=0;
for i=1:PopSize %粒子初始化
Group(i,:)=randperm(20);
end
v=zeros(1,Dim); %速度初始化
%定義位置
x=[10 10 5 20 30 20 10 20 25 5 20 5 10 10 0 30 15 15 0 5 10];
y=[2.5 3 2 2 0 1.5 1 0.5 1 0.5 0 0 0.5 0 1.5 0.5 1.5 2 2 1.5 2.5];
% 粒子適應度值
IndivdualFitness=ones(1,PopSize); %單個粒子適應度
%計算初始目標向量
for i=1:PopSize
for j=1:Dim-1
IndivdualFitness(i) = IndivdualFitness(i)*qzjz(Group(i,j),Group(i,j+1)); %粒子概率
end
end
% 最優(yōu)值初始化
IndivdualBestFitness=IndivdualFitness; %粒子最大適應度
IndivdualBestPath=Group; %個體最佳值
GlobalBestPath=Group(1,:); %粒子群最佳位置
%記錄上一次各粒子的適應值
OldIndivdualFitness=IndivdualFitness;
%記錄初始最優(yōu)適應值
OldGlobalBestFitness=max(IndivdualBestFitness);
%隨機解
sign={'1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20'};
figure;
subplot(2,2,1);
plot(x,y,'r*');
for i=1:Dim
text(x(i)+0.1,y(i)+0.1,sign{i}) %利用點的坐標添加對應標注
end
line(x,y);
title('隨機解')
grid on;
%% 循環(huán)迭代
for iter=1:MaxIt
% 權值更新
w=wmax-(wmax-wmin)*iter/MaxIt;
%% 群體更新
for i=1:PopSize
%速度更新
v=w*v+c1*rand(1,1)*(IndivdualBestPath(i,:)-Group(i,:))+c2*rand(1,1)*(GlobalBestPath-Group(i,:));
%位置更新
Group(i,:)=Group(i,:)+v;
Group(i,:)=ceil(Group(i,:));
index0=[];
for j=1:Dim
flag=0; %沒有不符合條件的值
if ((Group(i,j)<=0)||(Group(i,j)>Dim))
flag=1;
end
for k=j+1:Dim
if Group(i,j)==Group(i,k)
flag=1;
break;
end
end
if flag==1
index0=[index0,j];
end
end
t=1;
m=randperm(Dim);
NumOfSize=size(index0,2);
for j=1:Dim
flag=0; %新產生的隨機數(shù)與原矩陣中不相同
for k=1:Dim
flag0=0;
for q=1:NumOfSize
if k==index0(q)
flag0=1;
end
end
if flag0==1
continue;
end
if m(1,j)==Group(i,k)
flag=1;
break;
end
end
if flag==0
Group(i,index0(t))=m(1,j);
t=t+1;
end
if t>length(index0)
break;
end
end
end
%% 計算更新后個體適應度
IndivdualFitness(:)=1;
for i=1:PopSize
for j=1:Dim-1 %控制類別
IndivdualFitness(i) = IndivdualFitness(i)*qzjz(Group(i,j),Group(i,j+1)); %計算粒子i 概率
end
end
IsChange=IndivdualFitness>=OldIndivdualFitness; %判斷新粒子路徑的適應值是否大于原來的
IndivdualBestPath(find(IsChange),:) = Group(find(IsChange),:);%更新個體最佳路徑
OldIndivdualFitness = OldIndivdualFitness.*( ~IsChange) + IndivdualFitness.*IsChange;%更新個體最佳路徑距離
[GlobalBestFitness,Index]=max(IndivdualFitness);
GlobalBestPath=Group(Index,:);
if GlobalBestFitness>OldGlobalBestFitness
NumToNext=NumToNext+1;
OldGlobalBestFitness(1,NumToNext)=GlobalBestFitness;
else
NumToQuit=NumToQuit+1;
end
if NumToQuit>=20 %重復20次種群最優(yōu)適應度為改變就退出迭代
break;
end
end
%最優(yōu)解
for i=1:Dim
x1(i)=x(GlobalBestPath(i));
y1(i)=y(GlobalBestPath(i));
end
subplot(2,2,2);
plot(x,y,'r*');
for i=1:Dim
text(x(i)+0.1,y(i)+0.1,sign{i}) %利用點的坐標添加對應標注
end
line(x1,y1);
title('最優(yōu)解');
grid on;
%適應值曲線
subplot(2,2,3:4);
s=size(OldGlobalBestFitness,2);
plot(1:s,OldGlobalBestFitness,'p');
line(1:s,OldGlobalBestFitness);
%%給出計算結果
disp('最優(yōu)路徑為:');
for i=1:Dim
fprintf('%d',GlobalBestPath(i));
if i~=Dim
fprintf('%s','-');
end
end
fprintf('\n');
復制代碼
下載:
PSO求解最大崩潰路徑.zip
(2.25 KB, 下載次數(shù): 8)
2020-8-24 10:32 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
歡迎光臨 (http://m.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
91美女片黄在线观看91美女
|
日韩一二区
|
在线黄色网
|
成人免费视频国产免费麻豆
|
午夜在线免费视频
|
日韩一区二区中文字幕
|
午夜高清
|
伊人超碰在线
|
九九在线精品
|
亚洲二级片
|
免费特级毛片
|
亚洲欧美精品一区
|
www.一区二区三区
|
午夜久久久久久
|
在线视频亚洲
|
成年网站在线观看
|
国产精品久久久久久久久久久久久久久
|
欧美日视频
|
中文在线观看免费高清
|
欧美黄色一级
|
精品欧美一区二区三区久久久
|
欧美在线观看一区
|
亚洲毛片网
|
亚洲激情片
|
黄色一级片网站
|
国内精品久久久久
|
欧美日韩免费在线观看
|
91久久久久久久久久久
|
日韩欧美色
|
久久久精品国产sm调教
|
av片在线看
|
欧美日韩在线视频观看
|
成人中文字幕在线观看
|
成人免费黄色片
|
欧美日韩在线视频观看
|
中文字幕观看
|
一区二区三区四区精品
|
色婷婷网
|
亚洲一级大片
|
99福利视频
|
日韩视频一区二区三区
|