声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 840|回复: 1

[综合讨论] 基于遗传神经网络的汽轮机代价敏感

[复制链接]
发表于 2009-5-15 16:30 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
要用MATLAB实现以下是程序部分,我是新手,调试不通,请教
主程序:

clear all

% 开始计时

tic,

% BP网络初始化

[P,T,R,S1,S2,S]=bpinit;

bounds=ones(S,1)*[-10 10];

% 初始种群个数

num=60;

pop=initializega(num,bounds,'fitness');

% 遗传代数

gen=200;

[x endPop bPop trace]=ga(bounds,'fitness',[],pop,[1e-6 1 1],'maxGenTerm',gen,...

'normGeomSelect',[0.09],['arithXover'],[2],'nonUnifMutation',[2 gen 3]);

for i=1:S

  x(i)=endPop(1,i);

end;

sum=0;

% 前R*S1个编码为W1

for i=1:S1,

   for k=1:R,

     W1(i,k)=x(R*(i-1)+k);

   end

end

% 接着的S1*S2个编码(即第R*S1个后的编码)为W2

for i=1:S2,

  for k=1:S1,

     W2(i,k)=x(S1*(i-1)+k+R*S1);

  end

end

% 接着的S1个编码(即第R*S1+S1*S2个后的编码)为B1

for i=1:S1,

  B1(i,1)=x((R*S1+S1*S2)+i);

end

% 接着的S2个编码(即第R*S1+S1*S2+S1个后的编码)为B2

for i=1:S2,

  B2(i,1)=x((R*S1+S1*S2+S1)+i);

end

% 计算S1与S2层的输出

for i=1:60

   x1=W1*P(:,i)+B1;

   A1=1./(1+exp(-x1));

   x2=W2*A1+B2;

   A2=1./(1+exp(-x2));

   if A2<0.5


A3=0;

   elseif A2>=0.5

       A3=1;

   end

YY(i)=A3;

end

for i=1:1:40

   x1=W1*P(:,i)+B1;

   A1=1./(1+exp(-x1));

   x2=W2*A1+B2;

   A2=1./(1+exp(-x2));

   if A2<0.5

       sum(i)=0;

   elseif  A2>=0.5

       sum(i)=10;

   end

end

   for i=41:1:60

   x1=W1*P(:,i)+B1;

   A1=1./(1+exp(-x1));

   x2=W2*A1+B2;

   A2=1./(1+exp(-x2));

   if A2<0.5

       sum(i)=100;

   elseif A2>=0.5

       sum(i)=0;

   end

   end

i=1:1:60

figure(1);

plot(i,YY(i),'ro',i,T(i),'b-');

xlabel('测试样本序号');

ylabel('故障类型');

legend('实际输出','样本输出')

figure(2);

plot(i,sum(i),'M+');

xlabel('测试样本序号');

ylabel('代价值');

legend('代价值')

toc % 结束计时
回复
分享到:

使用道具 举报

发表于 2009-5-15 19:32 | 显示全部楼层
个人水平专业有限, 建议楼主看下本版规则!
求助完整格式:出错代码和出错提示!
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-14 18:28 , Processed in 0.062852 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表