QQ登录

只需要一步,快速开始

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

[问题求助] 多目标优化

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

1

主题

9

听众

12

积分

升级  7.37%

该用户从未签到

自我介绍
勇往直前

社区QQ达人

跳转到指定楼层
1#
发表于 2016-5-19 20:18 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
4体力
在多目标优化时,优化结果没有同时让目标满足要求,下面是我的主代码和所得结果,请大神帮忙解答:
2 m. i7 x- h2 \3 p6 r$ O1 oglobal u;
& T5 l) H% R( K& |%贝塞尔函数求根
7 V* Q% f( L0 b%设定模式数为20,对于TE模式需要求得一阶贝塞尔函数的前20个非零根% F" i5 o  U9 g) p
maxs=20;%要求的贝塞尔函数的非零根个数
5 O( I0 S6 W: y2 F5 g$ k; E" N: Zincr=4.0;
# f# E' I% I4 n5 Nu(1,1)=fzero(@(x)besselj(1,x),3.9);%一阶贝塞尔函数的第一个解(在3.9附近)! j0 E! k9 |& K+ e$ T
for s=2:maxs
' o9 F5 U* v( H    u(1,s)=fzero(@(x)besselj(1,x),u(1,s-1)+incr);%在第一个解加4附近求零阶贝塞尔函数的第二个及以上的解7 T; Z/ p3 ]! }& f* m9 ]
end
9 o, V/ W) ?. c" W5 B& zNIND=40;      %个体数目40
6 [) e; u4 i; V( MMAXGEN=100;   %最大遗传代数100
/ L" H1 f( o" y- }+ w' DNVAR=10;       %变量个数为10,前五个为半径,后五个位直波导长度
4 D6 g8 J- l  r4 E2 KPRECI=20;      %变量的二进制位数; }2 G9 S: Q" d, H) N9 I
GGAP=0.9;      %代沟
: t2 Z* y& C8 {0 }trace1=[];
4 H4 t5 D# [$ a" I- ?# Ctrace2=[];   %性能跟踪器,1、2分别为第一目标函数、第二目标函数的跟踪1 j! p) w( h1 W5 z# }& E
%建立区域描述器
  E" F/ g* |% }/ z: Z% OFieldD=[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])];
' H' {' P3 \! [Chrom=crtbp(NIND,NVAR*PRECI);        %初始化种群9 b, E8 V, K% r" x# V- K# d8 I9 ?  ]
v=bs2rv(Chrom,FieldD)/1000;               %初始种群十进制转换(单位由mm转换为m)4 u% D! S8 {$ T- X* H) Z7 `
gen=1;                               %代计数器
0 o2 Z2 T% B2 M+ B%遗传开始
" g- [& V3 \; @5 kwhile gen<MAXGEN/ E7 I1 k7 `( N: L( N
    [NIND,N]=size(Chrom);) B7 ~. k* \$ g; \" K  F4 U% m
    M=fix(NIND/2);( f: _5 M& k/ V
    ObjV1=Highpass(v(1:M,);         %分组后高通目标函数值(单位m)
* `: D1 b+ q9 o4 ?- D- m    FitnV1=ranking(-ObjV1);           %分配高通适应度值(求最大值)7 G& G0 C7 f7 u9 F9 s7 }* t0 g
    SelCh1=select('sus', Chrom(1:M,,FitnV1,GGAP);      %调用随机遍历抽样函数sus对第一组种群基于适应度值进行选择
  r* p+ i% @8 {1 b0 ~8 p  z. ]    ObjV2=Lowpass(v(M+1:NIND,);     %分组后低通目标函数值(单位m): U) k. D4 m% I
    FitnV2=ranking(ObjV2);            %分配低通适应度值(求最小值)
: P  X7 z. O* e/ p- E- O: I/ G    SelCh2=select('sus', Chrom((M+1):NIND,,FitnV2,GGAP);      %调用随机遍历抽样函数sus对第二组种群基于适应度值进行选择$ {- n7 _8 j! ^, p
    SelCh=[SelCh1;SelCh2];            %将两组选择后种群进行合并& w' h2 T# {' b) G
    SelCh=recombin('xovsp',SelCh,0.7);%以0.7的交叉概率进行单点交叉重组: W) p, W+ R. e  y( e" }% L" O5 g
    Chrom=mut(SelCh);                 %变异
+ e7 `" f5 V2 C* J6 ?    %Chrom=reins(Chrom,SelCh);         %随机均匀选择重插入
' c, u  t2 f) U  y" c' D    v=bs2rv(Chrom,FieldD)/1000;            %将进化后种群十进制转换(单位由mm转换为m)
+ u3 V2 q4 C- K3 n( q4 ~    trace1(gen,1)=max(Highpass(v));
) u+ D) @/ W5 ^5 f    trace1(gen,2)=sum(Highpass(v))/length(Highpass(v));  J( C5 b4 ^+ k" ?4 g, {
    trace2(gen,1)=min(Lowpass(v));
- E) _/ H. ?, E, X* L% a3 F; L    trace2(gen,2)=sum(Lowpass(v))/length(Lowpass(v));2 k/ X& ]! s% M
    gen=gen+1;
" o0 R; n+ O* b' K0 mend
+ O3 `. \9 @$ f; ?0 F: dfigure(1);clf;
. }. ]8 m2 q; O0 Gplot(trace1(:,1));hold on;plot(trace1(:,2),'-.');
; k, M. |' ~+ gplot(trace1(:,1),'.');plot(trace1(:,2),'.');grid;/ b' l* v% p" S* M$ Y# X
legend('解的变化','种群均值的变化')
* n) o6 z+ G7 k* |" Fxlabel('迭代次数');ylabel('高通目标函数值');. @8 P; f* e, S- V* V0 R" F
figure(2);clf;
% `4 m& S* H# V! m# X  @plot(trace2(:,1));hold on;
& }0 A: h7 A1 V5 P& Z5 dplot(trace2(:,2),'-.');8 T  E$ H% w' r& s1 z
plot(trace2(:,1),'.');
1 t) V- }/ f% x" _; u( oplot(trace2(:,2),'.');grid;$ `+ Y  g6 }7 Q% J
legend('解的变化','种群均值的变化')
2 ~* t$ c6 ]2 bxlabel('迭代次数');ylabel('低通目标函数值');/ Y9 g& |' ?8 y7 ]* ~8 W! l7 r2 j5 u
figure(3);clf;
" g5 P1 C. |8 X2 i6 C8 `plot(Highpass(v));hold on;/ _$ V  q3 P2 r  f" @
plot(Lowpass(v),'r-.');grid;
8 @$ \2 m7 D6 C4 @; l. [& `- {& J' L; q: {; }: Q

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

1.jpg

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

2.jpg

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

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-7-13 08:42 , Processed in 0.357590 second(s), 63 queries .

回顶部