求遗传算法怎样应用到潮流计算中
tic%定义遗传算法参数NIND=100;%个体数目MAXGEN=300;%最大遗传代数NVAR=32;%变量的维数PRECI=3;%变量的二进制位数GGAP=0.9;%代沟trace=zeros(MAXGEN,2);%寻优结果的初始值%建立区域描述器FieldD=,);rep(,);rep(,)];Chrom=crtbp(NIND,NVAR*PRECI);%创建初始种群chrom=bs2rv(Chrom,FieldD);qc=0.03*chrom;%计算初始种群的十进制转换gen=0;%代计数器bus=[1
0
0
0
0
2
0
0
0
0
3
0
0
0
0
4
-0.16
-0.08
0
0
5
-0.16
-0.08
0
0
6
0
0
0
0
7
-0.16
-0.08
0
0
8
-0.16
-0.08
0
0
9
-0.16
-0.08
0
0
10
0
0
0
0
11
-0.16
-0.08
0
0
12
-0.16
-0.08
0
0
13
-0.16
-0.08
0
0
14
0
0
0
0
15
-0.16
-0.08
0
0
16
-0.16
-0.08
0
0
17
-0.16
-0.08
0
0
18
-0.16
-0.08
0
0
19
0
0
0
0
20
-0.16
-0.08
0
0
21
-0.16
-0.08
0
0
22
0
0
0
0
23
-0.16
-0.08
0
0
24
-0.16
-0.08
0
0
25
0
0
0
0
26
-0.16
-0.08
0
0
27
-0.16
-0.08
0
0
28
0
0
0
0
29
-0.16
-0.08
0
0
30
-0.16
-0.08
0
0
31
-0.16
-0.08
0
0
32
-0.16
-0.08
0
0
];
q0=bus(:,3)';
for i=1:NIND
Q=q0+qc(i,:);
Ploss1(i) = cljs1(Q);
end
ObjV=Ploss1'
;%计算初始种群个体的目标函数值while gen<MAXGEN,%迭代
FitnV=ranking(ObjV);%分配适应度值
SelCh=select('sus',Chrom,FitnV,GGAP);%选择
SelCh=recombin('xovdp',SelCh,0.7);%重组
SelCh=mut(SelCh);%变异
qc=0.03*bs2rv(SelCh,FieldD);%子代个体的十进制转换
a=size(qc);
b=a(1,1); %变异后种群的个数
for k=1:b
Q=q0+qc(k,:);
Ploss2(k) = cljs1(Q);
end
ObjVSel=Ploss2'
;%计算子代的目标函数值
=reins(Chrom,SelCh,1,1,ObjV,ObjVSel);%重插入子代的新种群
gen=gen+1;%代计数器增加%输出最优解及其对应的32个自变量的十进制值,Y为最优解,I为种群的序号,并在目标函数图像中标出
=min(ObjV);hold on;
trace(gen,1)=min(ObjV);
%遗传算法性能跟踪
trace(gen,2)=sum(ObjV)/length(ObjV); endvariable=chrom(I,:),Yplot(trace(:,1));hold on;plot(trace(:,2),'-.');grid;legend('种群均值的变化','解的变化')xlabel('迭代次数');ylabel('目标函数值')toc总是弹出未定义rep
页:
[1]