QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 4747|回复: 0
打印 上一主题 下一主题

[问题求助] 多目标优化

[复制链接]
字体大小: 正常 放大

1

主题

9

听众

12

积分

升级  7.37%

该用户从未签到

自我介绍
勇往直前

社区QQ达人

跳转到指定楼层
1#
发表于 2016-5-19 20:18 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
4体力
在多目标优化时,优化结果没有同时让目标满足要求,下面是我的主代码和所得结果,请大神帮忙解答:
8 ]: l* j0 W: i' kglobal u;- t3 s& M, L  M
%贝塞尔函数求根% Z6 e1 y& @; ~
%设定模式数为20,对于TE模式需要求得一阶贝塞尔函数的前20个非零根
4 o! m: m2 U/ C1 G! s  ?maxs=20;%要求的贝塞尔函数的非零根个数2 a# ?+ V! M' i; L
incr=4.0;* J9 E1 o$ P4 o9 Z7 R
u(1,1)=fzero(@(x)besselj(1,x),3.9);%一阶贝塞尔函数的第一个解(在3.9附近); o+ {/ s) j! O2 L
for s=2:maxs
" V( N6 ]3 E3 W) S    u(1,s)=fzero(@(x)besselj(1,x),u(1,s-1)+incr);%在第一个解加4附近求零阶贝塞尔函数的第二个及以上的解" x% g$ ]8 }* O$ c
end. |% P4 \' {! f8 e/ P" K
NIND=40;      %个体数目40
) S. Z! m$ [, a. E0 W0 {/ h- L3 lMAXGEN=100;   %最大遗传代数100% G. L1 k9 I/ |+ E; L3 O/ e
NVAR=10;       %变量个数为10,前五个为半径,后五个位直波导长度
; v4 P% t, F% B% @1 w. m% APRECI=20;      %变量的二进制位数
! r" ]$ c+ h4 v7 E; bGGAP=0.9;      %代沟
1 T, U" C( r& e1 U; ]trace1=[];7 q: Y5 i+ B' z
trace2=[];   %性能跟踪器,1、2分别为第一目标函数、第二目标函数的跟踪
" @6 I5 [; h2 j+ a%建立区域描述器
& Y# T' J4 u# v. ^$ R% LFieldD=[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])];. e  c5 F" R/ D7 k, T
Chrom=crtbp(NIND,NVAR*PRECI);        %初始化种群- C0 i1 N6 v% c3 @4 R. ~
v=bs2rv(Chrom,FieldD)/1000;               %初始种群十进制转换(单位由mm转换为m)
8 J) S0 X, O+ ^gen=1;                               %代计数器
+ L! S; ^+ f& |1 D%遗传开始
+ |2 i  b, A1 qwhile gen<MAXGEN
- D/ A2 P% i1 P, U; T  }    [NIND,N]=size(Chrom);
; e- s. Q; n7 B) a8 R    M=fix(NIND/2);( P2 r% T2 L5 q: s  @
    ObjV1=Highpass(v(1:M,);         %分组后高通目标函数值(单位m)
9 a; `# l( }4 }7 P    FitnV1=ranking(-ObjV1);           %分配高通适应度值(求最大值)
  b4 }$ ^  B3 k" A& b9 B& }    SelCh1=select('sus', Chrom(1:M,,FitnV1,GGAP);      %调用随机遍历抽样函数sus对第一组种群基于适应度值进行选择
6 i$ ]& r; Q  M& ~# f& S* C% W    ObjV2=Lowpass(v(M+1:NIND,);     %分组后低通目标函数值(单位m)9 ^# @" u* Y9 \0 l  S5 h3 ?
    FitnV2=ranking(ObjV2);            %分配低通适应度值(求最小值)+ a0 G  Q" [, o
    SelCh2=select('sus', Chrom((M+1):NIND,,FitnV2,GGAP);      %调用随机遍历抽样函数sus对第二组种群基于适应度值进行选择; i+ Y* x, s8 k, |& Y9 E) M: k9 M
    SelCh=[SelCh1;SelCh2];            %将两组选择后种群进行合并' [# Z6 ^# G4 A4 }
    SelCh=recombin('xovsp',SelCh,0.7);%以0.7的交叉概率进行单点交叉重组
0 z6 ^+ S" }1 C( b% r& ]& w    Chrom=mut(SelCh);                 %变异
, X+ O+ L7 |7 l  E8 }    %Chrom=reins(Chrom,SelCh);         %随机均匀选择重插入
" r  w. a& i( D" l6 B- ~  X    v=bs2rv(Chrom,FieldD)/1000;            %将进化后种群十进制转换(单位由mm转换为m)& }) e4 m9 N; l+ _
    trace1(gen,1)=max(Highpass(v));
0 J) A! z5 a( J9 W% B; F- C; ?    trace1(gen,2)=sum(Highpass(v))/length(Highpass(v));
& W# c1 I6 m2 }, \    trace2(gen,1)=min(Lowpass(v));
6 b6 E$ Z! P) h) i7 X. H+ O    trace2(gen,2)=sum(Lowpass(v))/length(Lowpass(v));
& M2 V9 A$ I  i( `7 O    gen=gen+1;4 d& a' x* \" k- j% k
end$ I3 ^! _& [; l3 X" G0 O
figure(1);clf;# t8 |2 R- x# S) n) X
plot(trace1(:,1));hold on;plot(trace1(:,2),'-.');( n# Q6 L2 I6 |' M8 o; I; u
plot(trace1(:,1),'.');plot(trace1(:,2),'.');grid;( t6 y' [. R- f
legend('解的变化','种群均值的变化')
  J* t4 C: n: W; J9 `5 x7 f; fxlabel('迭代次数');ylabel('高通目标函数值');
8 Q6 n5 k2 @' X. S! O6 ofigure(2);clf;
/ g# A' j# Q9 w  o( C! ^+ M  vplot(trace2(:,1));hold on;8 Y  G! H1 I2 o1 R
plot(trace2(:,2),'-.');
5 n" o8 Z+ I; N- d9 Kplot(trace2(:,1),'.');
' y- D& y% I) |! v# R; |* e, Rplot(trace2(:,2),'.');grid;
& p. x2 v- p* U# k( u! S; zlegend('解的变化','种群均值的变化')
7 y* V/ N0 J" r0 U$ zxlabel('迭代次数');ylabel('低通目标函数值');. @# D8 C$ u4 u& V+ x# Z, ~
figure(3);clf;/ h$ J1 n: t0 Q$ ]: y" C1 P' Z
plot(Highpass(v));hold on;
' d" ~( A# I0 x5 Dplot(Lowpass(v),'r-.');grid;
1 a5 V9 g' ]6 |; ~6 C+ I+ V, y9 W3 K) I

1.jpg (63.87 KB, 下载次数: 1069)

1.jpg

2.jpg (67.12 KB, 下载次数: 1022)

2.jpg

3.jpg (47.82 KB, 下载次数: 995)

3.jpg

zan
转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
您需要登录后才可以回帖 登录 | 注册地址

qq
收缩
  • 电话咨询

  • 04714969085
fastpost

关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

手机版|Archiver| |繁體中文 手机客户端  

蒙公网安备 15010502000194号

Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

GMT+8, 2026-10-15 05:55 , Processed in 0.516892 second(s), 68 queries .

回顶部