reins matlab,Matlab程序中关于reins的问题

程序如下:

clear;

NIND=200;

rr=NIND/2;

MAXGEN=500;

GGAP=1;

cc=5;

gg=10;

zz=cc*gg;

pc=0.80;

pm=0.05;

minb=2468;

T=[140 126 70 60 20 93 52 7 16 14 47 40 10 13 9 23 78 56 20 153 167 32 29 116 63 7 14 3 7 14 43 82 9 31 11 2 18 4 10 40 65 17 3 73 120 40 10 65 47 28];

T1=T';

M=[4 3.2 6 5.2 4.1 2.5 3.4 4 3.5 3.4 12 20 17 10 13 23 19 25 17 12 10 11.3 14.5 13.5 10.5 16 20 32 19.5 28.5 4.5 7 4 2.5 6 7.5 6.5 3.5 3.5 6 20.5 25 17 11.5 10.5 4.5 4 3.5 4.7 3.3];

trace1=[];trace2=[];trace3=[];

farm=zeros(rr,zz);

for i=1:rr

farm(i,:)=randperm(zz);

end

gen=1;

while gen

mina=20000;

A=zeros(1,rr);

A1=zeros(1,rr);

B=zeros(1,rr);

k=zeros(rr,zz);

o=zeros(rr,zz);

l=zeros(1,zz);

for i=1:rr

for j=1:zz

if farm(i,j)<=cc

z(j)=1;x(j)=farm(i,j);

else if farm(i,j)>cc&farm(i,j)<=cc*2

z(j)=2;x(j)=farm(i,j)-cc;

else if farm(i,j)>cc*2&farm(i,j)<=cc*3

z(j)=3;x(j)=farm(i,j)-cc*2;

else if farm(i,j)>cc*3&farm(i,j)<=cc*4

z(j)=4;x(j)=farm(i,j)-cc*3;

else if farm(i,j)>cc*4&farm(i,j)<=cc*5

z(j)=5;x(j)=farm(i,j)-cc*4;

else if farm(i,j)>cc*5&farm(i,j)<=cc*6

z(j)=6;x(j)=farm(i,j)-cc*5;

else if farm(i,j)>cc*6&farm(i,j)<=cc*7

z(j)=7;x(j)=farm(i,j)-cc*6;

else if farm(i,j)>cc*7&farm(i,j)<=cc*8

z(j)=8;x(j)=farm(i,j)-cc*7;

else if farm(i,j)>cc*8&farm(i,j)<=cc*9

z(j)=9;x(j)=farm(i,j)-cc*8;

else

z(j)=10;x(j)=farm(i,j)-cc*9;

end

end

end

end

end

end

end

end

end

end

p2=[1.5/4 1];

q=[x;z];

hh=p2*q;

A(i)=hh*T1;

M1=M';

B(i)=z*M1;

k(i,:)=x;

o(i,:)=z;

if A(i)

mina=A(i);

l=farm(i,:);

x1=k(i,:);

z1=o(i,:);

end

end

%计算初始种群仲目标函数的适应度值

A1=A'

sum=0;

for i=1:rr

sum=sum+A1(i,1);

end

for i=1:rr

p(i)=A1(i,1)/sum;

end

for i=1:rr

if B(i)<1.2*minb

p(i)= p(i)+0.015;

else

p(i)= p(i);

end

end

sum1=0;

for i=1:rr

sum1=sum1+p(i);

end

for i=1:rr

p1(i)= p(i)/sum1;

end

pp=cumsum(p1);

for i=1:rr

t=rand;

if t<=pp(1)

farm1(i,:)=farm(1,:);

else

for j=2:rr

if (t>pp(j-1))&&(t<=pp(j))

farm1(i,:)=farm(j,:);

end

end

end

end

farm1;

a=zeros(rr/2,zz);

b=zeros(rr/2,zz);

a1=zeros(rr/2,zz);

b1=zeros(rr/2,zz);

for i=1:rr/2

a(i,:)=farm1(i,:);

b(i,:)=farm1(i+rr/2,:);

a1(i,:)=farm1(i,:);

b1(i,:)=farm1(i+rr/2,:);

end

h=1;

while h

if rand

n=unidrnd(zz-1,1,1);

for i=1:n

for j=1:zz

a(h,i)=a(h,i);

if a(h,i)==b1(h,j)

b1(h,j)=0;

end

end

end

j=n+1;

if j<=zz

for i=1:zz

if b1(h,i)~=0

a(h,j)=b1(h,i);

j=j+1;

end

end

end

for i=1:n

for j=1:zz

b(h,i)=b(h,i);

if b(h,i)==a1(h,j)

a1(h,j)=0;

a1(h,j);

end

end

end

j=n+1;

if j<=zz

for i=1:zz

if a1(h,i)~=0

b(h,j)=a1(h,i);

j=j+1;

end

end

end

end

if rand

t=unidrnd(zz,1,2);

c=a(h,t(1));

a(h,t(1))=a(h,t(2));

a(h,t(2))=c;

t=unidrnd(zz,1,2);

d=b(h,t(1));

b(h,t(1))=b(h,t(2));

b(h,t(2))=d;

a;

b;

end

h=h+1;

end

for i=1:rr/2

aa(i,:)=a(i,:);

aa(i+rr/2,:)=b(i,:);

end

A1=zeros(1,rr);

B1=zeros(1,rr);

for i=1:rr

for j=1:zz

if aa(i,j)<=cc

z(j)=1;x(j)=aa(i,j);

else if aa(i,j)>cc&aa(i,j)<=cc*2

z(j)=2;x(j)=aa(i,j)-cc;

else if aa(i,j)>cc*2&aa(i,j)<=cc*3

z(j)=3;x(j)=aa(i,j)-cc*2;

else if aa(i,j)>cc*3&aa(i,j)<=cc*4

z(j)=4;x(j)=aa(i,j)-cc*3;

else if aa(i,j)>cc*4&aa(i,j)<=cc*5

z(j)=5;x(j)=aa(i,j)-cc*4;

else if aa(i,j)>cc*5&aa(i,j)<=cc*6

z(j)=6;x(j)=aa(i,j)-cc*5;

else if aa(i,j)>cc*6&aa(i,j)<=cc*7

z(j)=7;x(j)=aa(i,j)-cc*6;

else if aa(i,j)>cc*7&aa(i,j)<=cc*8

z(j)=8;x(j)=aa(i,j)-cc*7;

else if aa(i,j)>cc*8&aa(i,j)<=cc*9

z(j)=9;x(j)=aa(i,j)-cc*8;

else

z(j)=10;x(j)=aa(i,j)-cc*9;

end

end

end

end

end

end

end

end

end

end

p2=[1.5/4 1];

q=[x;z];

hh=p2*q;

A1(i)=hh*T1;

end

aa=reins(aa,1,1,1,A1');

for i=1:rr

farm(i,:)=aa(i,:);

end

trace1(gen,1)=min(A);

trace1(gen,2)=mean(A);

gen=gen+1;

end

figure(1);clf;

plot(trace1(:,1));hold on;plot(trace1(:,2),'-.');

legend('解的变化','种群均值的变化')

xlabel('迭代次数');ylabel('两个目标函数值')

错误提示:

??? Undefined command/function 'reins'.

求解决办法。。急啊。。。。。。

[本帖最后由 later 于 2009-4-17 20:54 编辑]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值