- 在线时间
- 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体力
在多目标优化时,优化结果没有同时让目标满足要求,下面是我的主代码和所得结果,请大神帮忙解答:
, J; q# y7 y( p9 c% cglobal u;
- Y3 R& X0 u1 [4 W1 U5 ?3 [%贝塞尔函数求根
$ ^' x' X, u* O+ D: y4 c5 v; U%设定模式数为20,对于TE模式需要求得一阶贝塞尔函数的前20个非零根
3 j7 ?. I9 D; w' qmaxs=20;%要求的贝塞尔函数的非零根个数9 X. ^4 P% O: ?
incr=4.0;$ f" F- r) l& p8 q4 x
u(1,1)=fzero(@(x)besselj(1,x),3.9);%一阶贝塞尔函数的第一个解(在3.9附近)
1 _9 p" W9 r4 m3 ~. X* dfor s=2:maxs
+ O, H' D. F* R/ t3 H- ^0 ~ u(1,s)=fzero(@(x)besselj(1,x),u(1,s-1)+incr);%在第一个解加4附近求零阶贝塞尔函数的第二个及以上的解+ _4 u9 c) Q0 S0 n) @
end
) X! j# S0 I; K2 ENIND=40; %个体数目40' E9 ^: U# N: b% ^0 j' H4 {
MAXGEN=100; %最大遗传代数100
" A6 v+ ]0 ~9 ]* c/ bNVAR=10; %变量个数为10,前五个为半径,后五个位直波导长度
$ p% \) b. S) T* tPRECI=20; %变量的二进制位数
9 V5 H# h% A( ?' A+ p2 z' ?GGAP=0.9; %代沟
( @- @2 c7 G- y, Utrace1=[];
/ i, a) ]* y3 S) t* v rtrace2=[]; %性能跟踪器,1、2分别为第一目标函数、第二目标函数的跟踪
- K( Q) A/ ]3 K) F' F4 V%建立区域描述器
% G: O7 A, h% U- TFieldD=[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])];4 n$ v, S9 y4 K! I, N6 i: q+ U
Chrom=crtbp(NIND,NVAR*PRECI); %初始化种群
6 k6 f1 l9 M" Y3 i, Cv=bs2rv(Chrom,FieldD)/1000; %初始种群十进制转换(单位由mm转换为m): K* O8 z) `4 N x9 Z) ~. m
gen=1; %代计数器
/ C8 o) x4 n# R+ N* M% x+ }%遗传开始
: A8 K* Q2 U# Z5 N3 K" Bwhile gen<MAXGEN
. s4 ^- z# p1 U |: k# @ [NIND,N]=size(Chrom);% P4 X; u# }3 k( U
M=fix(NIND/2);
# f* P" Z; C3 u* I ObjV1=Highpass(v(1:M, ); %分组后高通目标函数值(单位m)
0 K6 \7 I; ~8 | FitnV1=ranking(-ObjV1); %分配高通适应度值(求最大值)
. W( b# J1 \$ X Q' s SelCh1=select('sus', Chrom(1:M, ,FitnV1,GGAP); %调用随机遍历抽样函数sus对第一组种群基于适应度值进行选择8 w' G/ E: k, Q, X
ObjV2=Lowpass(v(M+1:NIND, ); %分组后低通目标函数值(单位m)
2 z- y5 `# t. r4 h FitnV2=ranking(ObjV2); %分配低通适应度值(求最小值)
9 h; y5 W. m4 W" }% x# ]% L SelCh2=select('sus', Chrom((M+1):NIND, ,FitnV2,GGAP); %调用随机遍历抽样函数sus对第二组种群基于适应度值进行选择
/ \6 h* [ M Y/ Q SelCh=[SelCh1;SelCh2]; %将两组选择后种群进行合并
! U0 ]% }* e& R' j SelCh=recombin('xovsp',SelCh,0.7);%以0.7的交叉概率进行单点交叉重组( x) N8 W4 E" ]8 h% K" U" n+ w
Chrom=mut(SelCh); %变异
5 F5 L+ B& i( ^( u# e7 C% i% s %Chrom=reins(Chrom,SelCh); %随机均匀选择重插入
2 H2 f) H0 ?* F v=bs2rv(Chrom,FieldD)/1000; %将进化后种群十进制转换(单位由mm转换为m). o" \2 o$ `; S4 u* { s* o4 } b
trace1(gen,1)=max(Highpass(v));7 N7 X. G: W! n; F+ f0 j# A& y
trace1(gen,2)=sum(Highpass(v))/length(Highpass(v));/ o4 K0 m# b# b* ~ w
trace2(gen,1)=min(Lowpass(v));
& p# O) C1 {( C0 y H0 P trace2(gen,2)=sum(Lowpass(v))/length(Lowpass(v));9 t: Y4 N& x( T3 q8 M6 e' ^
gen=gen+1;. Z% I r! z& x0 m
end3 u, J; i. Z% Y/ o B- |
figure(1);clf;
6 \. V2 A' l. p5 Iplot(trace1(:,1));hold on;plot(trace1(:,2),'-.');
1 {# k- f" D* y, O4 Rplot(trace1(:,1),'.');plot(trace1(:,2),'.');grid;
- v8 o4 w# ?7 M9 T/ g5 wlegend('解的变化','种群均值的变化')0 L" r5 e! o1 i) P5 h
xlabel('迭代次数');ylabel('高通目标函数值');9 [8 j+ w9 D; y1 w: S* L
figure(2);clf;$ M0 I4 Z- r) |2 }) V% G* D) z
plot(trace2(:,1));hold on;9 a2 {4 \- B) }* p/ r
plot(trace2(:,2),'-.');% C6 K2 _, n ]7 {( s: J
plot(trace2(:,1),'.');0 |, U# A0 g4 e5 B/ G
plot(trace2(:,2),'.');grid;0 \7 n# P$ Z7 F2 R' Q* j9 w
legend('解的变化','种群均值的变化'). I5 X% B5 O' L( {
xlabel('迭代次数');ylabel('低通目标函数值');
. c) n6 S6 |! A( \figure(3);clf;" q; E9 c4 h7 o+ H3 P* `- L
plot(Highpass(v));hold on;
( M- a( U7 t% uplot(Lowpass(v),'r-.');grid;2 H1 J8 b- b" S$ D! @. h/ ^5 F" ]
+ p. |5 s+ G1 `+ X |
-
1.jpg
(63.87 KB, 下载次数: 986)
-
2.jpg
(67.12 KB, 下载次数: 948)
-
3.jpg
(47.82 KB, 下载次数: 917)
zan
|