- 在线时间
- 1 小时
- 最后登录
- 2016-5-19
- 注册时间
- 2016-4-28
- 听众数
- 9
- 收听数
- 0
- 能力
- 0 分
- 体力
- 39 点
- 威望
- 0 点
- 阅读权限
- 20
- 积分
- 12
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 1
- 主题
- 1
- 精华
- 0
- 分享
- 0
- 好友
- 1
升级   7.37% 该用户从未签到 - 自我介绍
- 勇往直前
 |
4体力
在多目标优化时,优化结果没有同时让目标满足要求,下面是我的主代码和所得结果,请大神帮忙解答:9 L; y9 O8 ^+ c+ |4 V$ ?( e
global u;
; ]! s, k+ u( u/ G9 b9 L. T5 U%贝塞尔函数求根
1 \, L9 V8 I' ]1 Q R3 J* [" ~%设定模式数为20,对于TE模式需要求得一阶贝塞尔函数的前20个非零根
8 \" a' Q7 ?/ H, vmaxs=20;%要求的贝塞尔函数的非零根个数' h0 s' C3 e A, M
incr=4.0;
- o, U( `( ?- Xu(1,1)=fzero(@(x)besselj(1,x),3.9);%一阶贝塞尔函数的第一个解(在3.9附近), _) [. D( b% m4 K \+ g
for s=2:maxs( A' H1 m( j% Z$ E5 d) T
u(1,s)=fzero(@(x)besselj(1,x),u(1,s-1)+incr);%在第一个解加4附近求零阶贝塞尔函数的第二个及以上的解
+ I% |9 Y, |- r* }! j/ y0 c( dend+ Q7 R) B. x3 V! M
NIND=40; %个体数目40; a: U- p" [7 z2 H3 y2 o
MAXGEN=100; %最大遗传代数100. l, A6 e6 k, N% `
NVAR=10; %变量个数为10,前五个为半径,后五个位直波导长度+ A: Y. B) D: z5 Q3 O
PRECI=20; %变量的二进制位数
2 s) k E" A4 OGGAP=0.9; %代沟7 L) R# Q9 }8 ?1 |. W8 o
trace1=[];+ ?" ~! J# H' W6 A4 T2 s! v/ o
trace2=[]; %性能跟踪器,1、2分别为第一目标函数、第二目标函数的跟踪
2 k! y2 J. F/ A2 p8 ]+ x%建立区域描述器
3 M! w3 D S" ^& j; ~) d1 _FieldD=[rep([PRECI],[1,NVAR]);[20,20,20,20,20,10,10,10,10,10;50,50,50,50,50,100,100,100,100,100];rep([1;0;1;1],[1,NVAR])];
3 H8 E! K2 i/ t4 x5 @Chrom=crtbp(NIND,NVAR*PRECI); %初始化种群9 W3 _8 _- ]! y
v=bs2rv(Chrom,FieldD)/1000; %初始种群十进制转换(单位由mm转换为m); E, F' o8 z$ O0 {
gen=1; %代计数器4 d& Q" V" x( O, L
%遗传开始
( V; j* |8 s# E1 m; o' k/ Uwhile gen<MAXGEN
7 h/ R2 v8 P# z- G [NIND,N]=size(Chrom);
: y: K) v6 @: u M=fix(NIND/2);8 [4 W+ |9 c/ F4 f' G$ o% K, |( S
ObjV1=Highpass(v(1:M, ); %分组后高通目标函数值(单位m)
# x6 y7 h. h$ }% z; ?0 X: U FitnV1=ranking(-ObjV1); %分配高通适应度值(求最大值)1 w0 J3 q X7 V$ x; l$ g; O
SelCh1=select('sus', Chrom(1:M, ,FitnV1,GGAP); %调用随机遍历抽样函数sus对第一组种群基于适应度值进行选择* I% @' @: D( e$ Q+ h( b
ObjV2=Lowpass(v(M+1:NIND, ); %分组后低通目标函数值(单位m)8 Z# T* F9 k8 a+ D0 K* K
FitnV2=ranking(ObjV2); %分配低通适应度值(求最小值)2 m ?5 B" u, g* Q1 s1 ^
SelCh2=select('sus', Chrom((M+1):NIND, ,FitnV2,GGAP); %调用随机遍历抽样函数sus对第二组种群基于适应度值进行选择! r$ X+ B) |, m& C
SelCh=[SelCh1;SelCh2]; %将两组选择后种群进行合并
8 a& l7 H' |5 N3 p4 d6 |' z9 E0 }5 s SelCh=recombin('xovsp',SelCh,0.7);%以0.7的交叉概率进行单点交叉重组$ H8 y5 m# w) z, p9 H+ W/ p
Chrom=mut(SelCh); %变异" k9 m p$ U6 C! y; \/ Q! v
%Chrom=reins(Chrom,SelCh); %随机均匀选择重插入! F/ w" K' f! R4 l1 s/ `& Q) l
v=bs2rv(Chrom,FieldD)/1000; %将进化后种群十进制转换(单位由mm转换为m)
# Q2 @8 s# W S; J3 @ trace1(gen,1)=max(Highpass(v));
, l5 a. f; q, s* ^ trace1(gen,2)=sum(Highpass(v))/length(Highpass(v));
( K% A/ J+ ?0 o trace2(gen,1)=min(Lowpass(v));9 ?8 P# G: G) a' R
trace2(gen,2)=sum(Lowpass(v))/length(Lowpass(v));' w) L; i n% q
gen=gen+1;
3 A6 D! y; L- |8 }6 V. z! n% send8 R# [; y6 d) }( R2 }) [6 ^
figure(1);clf;
6 C3 X$ p2 ` _1 V# B8 Jplot(trace1(:,1));hold on;plot(trace1(:,2),'-.');
) n" b" P5 q' C' `* y4 Uplot(trace1(:,1),'.');plot(trace1(:,2),'.');grid;
) i: S# o. o+ @$ Nlegend('解的变化','种群均值的变化')& M" [8 F6 v( E- d6 D
xlabel('迭代次数');ylabel('高通目标函数值');
: I+ h8 `& P, E7 bfigure(2);clf;
2 T2 ]+ L1 e4 i. z' tplot(trace2(:,1));hold on;
+ t- X, @5 c7 {3 E9 `- [plot(trace2(:,2),'-.');
0 J( k! r0 v' t3 A7 X3 m; W! kplot(trace2(:,1),'.');. q/ _! C* a( f& x# B9 f+ H
plot(trace2(:,2),'.');grid;
/ }# [3 w: o. a8 xlegend('解的变化','种群均值的变化')( C& U0 Z% C9 k& B* f$ _# t
xlabel('迭代次数');ylabel('低通目标函数值');
, w, z5 U' `# V" t# m6 x; ^$ q/ nfigure(3);clf;7 |$ D+ w" \) c: d
plot(Highpass(v));hold on;
( Q' q+ |2 G. ^$ H$ Oplot(Lowpass(v),'r-.');grid;
2 s+ ?0 \0 m/ i# o/ H% {4 ^5 e$ J$ `$ I J* H$ U) V
|
-
1.jpg
(63.87 KB, 下载次数: 1023)
-
2.jpg
(67.12 KB, 下载次数: 987)
-
3.jpg
(47.82 KB, 下载次数: 955)
zan
|