QQ登录

只需要一步,快速开始

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

[问题求助] 多目标优化

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

1

主题

9

听众

12

积分

升级  7.37%

该用户从未签到

自我介绍
勇往直前

社区QQ达人

跳转到指定楼层
1#
发表于 2016-5-19 20:18 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
4体力
在多目标优化时,优化结果没有同时让目标满足要求,下面是我的主代码和所得结果,请大神帮忙解答:
, }% n2 q0 V% Pglobal u;+ A+ x, O2 S0 l0 e2 |- S
%贝塞尔函数求根. @$ C/ P0 n9 x. A" n" @1 G' L
%设定模式数为20,对于TE模式需要求得一阶贝塞尔函数的前20个非零根% D$ @# c3 D1 g# V6 n6 q$ j
maxs=20;%要求的贝塞尔函数的非零根个数
5 Q* E4 H6 o+ f, E3 L9 d, i7 [incr=4.0;8 q( g2 ]0 `3 V7 k5 z
u(1,1)=fzero(@(x)besselj(1,x),3.9);%一阶贝塞尔函数的第一个解(在3.9附近)! o' F& v( J, s  L4 h. X6 {
for s=2:maxs$ v# u8 j" \" J$ R! E/ G$ Q
    u(1,s)=fzero(@(x)besselj(1,x),u(1,s-1)+incr);%在第一个解加4附近求零阶贝塞尔函数的第二个及以上的解4 u3 |' {5 `1 [5 W- _- B
end
& C' U) D$ o; pNIND=40;      %个体数目400 m) e/ u, L' P% _3 E, ~9 K
MAXGEN=100;   %最大遗传代数100
- E* N: L4 k. K/ W! wNVAR=10;       %变量个数为10,前五个为半径,后五个位直波导长度- y: R" {! S) `8 I$ y2 S" {/ G0 q
PRECI=20;      %变量的二进制位数  h3 c2 u$ o) c! M
GGAP=0.9;      %代沟( K. A' t4 v( x4 [3 Y: u
trace1=[];
/ y* h9 [/ Q; ~: y1 A% otrace2=[];   %性能跟踪器,1、2分别为第一目标函数、第二目标函数的跟踪
; a7 q. [* S# k1 P6 {%建立区域描述器
7 Y& O" ^9 ^/ F! Z! 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])];
. A0 g: i5 x- T7 M2 D. Z* Q" U8 TChrom=crtbp(NIND,NVAR*PRECI);        %初始化种群1 ^7 K! l9 D3 h7 n$ ^) A
v=bs2rv(Chrom,FieldD)/1000;               %初始种群十进制转换(单位由mm转换为m)
8 \) K! e9 {9 e; a% mgen=1;                               %代计数器/ I9 f9 R4 R8 j. O
%遗传开始+ v8 |; c) O# ?2 l
while gen<MAXGEN
# }7 n9 A% P3 h0 J    [NIND,N]=size(Chrom);' k. U! m: i8 Y( i
    M=fix(NIND/2);. L1 X; E0 ~' n: m
    ObjV1=Highpass(v(1:M,);         %分组后高通目标函数值(单位m)
, u$ s$ y" ]: D; M* g/ K! s    FitnV1=ranking(-ObjV1);           %分配高通适应度值(求最大值)
) i! @9 d9 ~0 c$ I9 ], q    SelCh1=select('sus', Chrom(1:M,,FitnV1,GGAP);      %调用随机遍历抽样函数sus对第一组种群基于适应度值进行选择
; K+ `6 n* y# q7 z- K    ObjV2=Lowpass(v(M+1:NIND,);     %分组后低通目标函数值(单位m)
6 L7 j* }% a3 t2 A' y5 S4 P7 _, q    FitnV2=ranking(ObjV2);            %分配低通适应度值(求最小值)
1 l8 y; T% z( t% I5 k3 w    SelCh2=select('sus', Chrom((M+1):NIND,,FitnV2,GGAP);      %调用随机遍历抽样函数sus对第二组种群基于适应度值进行选择
6 R9 i6 T1 x5 P( c4 r0 V; S    SelCh=[SelCh1;SelCh2];            %将两组选择后种群进行合并
, P$ C! t! J8 L5 `8 `! f7 u; \    SelCh=recombin('xovsp',SelCh,0.7);%以0.7的交叉概率进行单点交叉重组
% {3 H/ @& g, p2 i( S, a% y; c    Chrom=mut(SelCh);                 %变异
! N" B  j9 e! ]( f    %Chrom=reins(Chrom,SelCh);         %随机均匀选择重插入2 Z9 ?& d8 f6 F: m- L( E5 T
    v=bs2rv(Chrom,FieldD)/1000;            %将进化后种群十进制转换(单位由mm转换为m)
( L3 t& S0 x5 L* U; a% T    trace1(gen,1)=max(Highpass(v));: {0 N  o- [' r) r. I8 Q
    trace1(gen,2)=sum(Highpass(v))/length(Highpass(v));1 p; x. l* p  \: s" m+ J6 i. T
    trace2(gen,1)=min(Lowpass(v));5 @3 |# C9 E5 t: W; \
    trace2(gen,2)=sum(Lowpass(v))/length(Lowpass(v));  |* X, v4 \/ ]/ a$ c6 y
    gen=gen+1;
6 G5 D7 D9 q7 \9 ?end
  {* @0 q/ F6 V: K0 ?+ C/ J$ g  ifigure(1);clf;$ u( |9 t2 M- U
plot(trace1(:,1));hold on;plot(trace1(:,2),'-.');: p4 {+ d8 _1 m1 O
plot(trace1(:,1),'.');plot(trace1(:,2),'.');grid;
& Q* h, h) r2 L1 p+ B7 {legend('解的变化','种群均值的变化')
2 ^( _" N8 [2 `/ V/ A( Gxlabel('迭代次数');ylabel('高通目标函数值');9 ~9 `5 E& v& n$ g
figure(2);clf;& l; T8 d# a0 M2 B4 I2 |) E, f* \
plot(trace2(:,1));hold on;
6 g( t+ [  D9 @plot(trace2(:,2),'-.');: v- l' G2 p! }
plot(trace2(:,1),'.');2 L* i; F3 n( n6 O
plot(trace2(:,2),'.');grid;7 m% I0 ~6 r2 ^$ C3 i
legend('解的变化','种群均值的变化')
; r/ e% \4 R7 ^7 yxlabel('迭代次数');ylabel('低通目标函数值');+ O9 J3 t4 |1 n
figure(3);clf;& v  J. B. o4 g3 c6 Q
plot(Highpass(v));hold on;! D2 {$ U: b* I! Y
plot(Lowpass(v),'r-.');grid;5 l+ ]! M1 q6 b

; |$ k3 x% n4 o

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

1.jpg

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

2.jpg

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

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-4-10 08:56 , Processed in 0.514312 second(s), 62 queries .

回顶部