请选择 进入手机版 | 继续访问电脑版

QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 2692|回复: 0

[问题求助] 多目标优化

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

1

主题

9

听众

12

积分

升级  7.37%

该用户从未签到

自我介绍
勇往直前

社区QQ达人

发表于 2016-5-19 20:18 |显示全部楼层
|招呼Ta 关注Ta
4体力
在多目标优化时,优化结果没有同时让目标满足要求,下面是我的主代码和所得结果,请大神帮忙解答:' a: x* \/ F$ _$ _. H8 W
global u;3 w4 u* `2 f/ u2 |( H* Z4 l- f
%贝塞尔函数求根' z. F8 C# {8 p" n* u) l
%设定模式数为20,对于TE模式需要求得一阶贝塞尔函数的前20个非零根
' |$ U' W/ V/ {8 a& W- Imaxs=20;%要求的贝塞尔函数的非零根个数
/ T* N8 f1 j* i% zincr=4.0;
" S5 Y& }# ~- X4 Cu(1,1)=fzero(@(x)besselj(1,x),3.9);%一阶贝塞尔函数的第一个解(在3.9附近)" {5 ~+ D2 S/ O) V  E( L
for s=2:maxs
" b  ]  |- J8 P, {! T    u(1,s)=fzero(@(x)besselj(1,x),u(1,s-1)+incr);%在第一个解加4附近求零阶贝塞尔函数的第二个及以上的解3 a4 l! l1 D6 Z& B
end1 x4 ]0 l* m& z* r7 K7 B$ H
NIND=40;      %个体数目40
1 Q9 s# Q0 L( F( U1 p9 nMAXGEN=100;   %最大遗传代数100
, X) D) M/ t% u7 ^2 ]NVAR=10;       %变量个数为10,前五个为半径,后五个位直波导长度
( d+ N' q/ c. f# C4 i2 t) d  rPRECI=20;      %变量的二进制位数
4 w! o4 i, O! X' cGGAP=0.9;      %代沟
8 M# c& \7 _7 s2 W# z0 ~% ktrace1=[];
% z4 k0 k$ U# g9 D, [trace2=[];   %性能跟踪器,1、2分别为第一目标函数、第二目标函数的跟踪# r) q( y. [! G0 P, I5 X, T2 f4 B
%建立区域描述器
& b" C) B1 K- @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])];
" J5 b1 [* O1 ^  m' c: {  m: iChrom=crtbp(NIND,NVAR*PRECI);        %初始化种群8 X8 ^1 J' ?+ v; \8 f7 g! y$ r+ O5 Z
v=bs2rv(Chrom,FieldD)/1000;               %初始种群十进制转换(单位由mm转换为m)
  I. [+ X, r& lgen=1;                               %代计数器
, h, D# F6 m9 r9 U7 J%遗传开始
0 d  h) S3 P, n2 s/ R, Ewhile gen<MAXGEN
3 j: p. m' w) w* Y' X    [NIND,N]=size(Chrom);6 R- ]* @7 g5 Z5 P0 P9 x
    M=fix(NIND/2);- M- C& o  h. h5 S: m" _# z
    ObjV1=Highpass(v(1:M,);         %分组后高通目标函数值(单位m)/ T/ q/ u) N) y2 P8 Q; ^5 ^$ l
    FitnV1=ranking(-ObjV1);           %分配高通适应度值(求最大值)
  Z! Q0 C6 ]: ?- M    SelCh1=select('sus', Chrom(1:M,,FitnV1,GGAP);      %调用随机遍历抽样函数sus对第一组种群基于适应度值进行选择: I" k8 P* D" X- L6 g/ Y, ?4 ^: e  T: S
    ObjV2=Lowpass(v(M+1:NIND,);     %分组后低通目标函数值(单位m)& l% P0 m$ C% R( H! }4 ^) e0 F
    FitnV2=ranking(ObjV2);            %分配低通适应度值(求最小值)
, @; y, p$ ~7 [7 ]- B* I    SelCh2=select('sus', Chrom((M+1):NIND,,FitnV2,GGAP);      %调用随机遍历抽样函数sus对第二组种群基于适应度值进行选择
' R; f( _. Q, r, w% P; K    SelCh=[SelCh1;SelCh2];            %将两组选择后种群进行合并
8 k7 C$ e1 o# |4 f( s2 G    SelCh=recombin('xovsp',SelCh,0.7);%以0.7的交叉概率进行单点交叉重组
) s' Q7 Y1 K" {7 |  L+ X    Chrom=mut(SelCh);                 %变异
1 J, b  ]" R+ g. p. i    %Chrom=reins(Chrom,SelCh);         %随机均匀选择重插入
0 ~9 H6 C5 _, Z    v=bs2rv(Chrom,FieldD)/1000;            %将进化后种群十进制转换(单位由mm转换为m)
7 W) y1 z# I; O. _+ @: C/ L    trace1(gen,1)=max(Highpass(v));
6 ?& r% z) G  k4 D5 ?    trace1(gen,2)=sum(Highpass(v))/length(Highpass(v));
- a8 U* f: n9 w    trace2(gen,1)=min(Lowpass(v));4 ]4 g# w6 {- a- a) q5 t' ?
    trace2(gen,2)=sum(Lowpass(v))/length(Lowpass(v));; E% ?& m5 R( N3 x& `
    gen=gen+1;6 q5 X) K/ N, c( |9 c% k& D% w! d/ j
end
/ h# P0 e1 @( yfigure(1);clf;
( @+ K5 ~5 I% T* mplot(trace1(:,1));hold on;plot(trace1(:,2),'-.');$ h5 X9 E$ w* R! D% ^$ a
plot(trace1(:,1),'.');plot(trace1(:,2),'.');grid;- x! O9 M: }* j
legend('解的变化','种群均值的变化')
6 E9 W/ K2 s4 w. C! Nxlabel('迭代次数');ylabel('高通目标函数值');
9 N* F- A; m! Dfigure(2);clf;
( S, [9 G0 w0 ?* e- kplot(trace2(:,1));hold on;
1 m7 n& E* \6 P  Aplot(trace2(:,2),'-.');
4 o! {3 N5 N5 fplot(trace2(:,1),'.');& Z) Y2 o7 E, }1 H% _* I2 \
plot(trace2(:,2),'.');grid;
3 [) I, [( s8 p/ v0 A' \- [legend('解的变化','种群均值的变化'), h: I( Z$ a( y
xlabel('迭代次数');ylabel('低通目标函数值');8 z4 x( D. d; j3 x  l2 G) l& ?' ^+ R
figure(3);clf;) B% c; e" g; p2 X' q8 A
plot(Highpass(v));hold on;
2 I( n2 ^4 M0 J' M! Q+ Oplot(Lowpass(v),'r-.');grid;9 \, o$ g. B, u, l% F% F6 G' _
8 J; W4 E' s5 G/ q: s

1.jpg
2.jpg
3.jpg
zan
您需要登录后才可以回帖 登录 | 注册地址

qq
收缩
  • 电话咨询

  • 04714969085
fastpost

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

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

蒙公网安备 15010502000194号

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

GMT+8, 2024-3-28 23:06 , Processed in 0.455234 second(s), 63 queries .

回顶部