- 在线时间
- 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体力
在多目标优化时,优化结果没有同时让目标满足要求,下面是我的主代码和所得结果,请大神帮忙解答:+ u" J% C9 r2 ?8 C- u1 b1 g, [. e0 `
global u;! {- l `$ T3 @, r( \( M% ]
%贝塞尔函数求根
% V5 B( r, U7 ]( }& k- A/ x, [6 `%设定模式数为20,对于TE模式需要求得一阶贝塞尔函数的前20个非零根
4 |! A7 |/ d8 D. O- ]maxs=20;%要求的贝塞尔函数的非零根个数
# [" {2 |3 w9 h6 F) [4 zincr=4.0;* s! k, M# H. t1 T# {7 E( v% H2 w1 ~: K# X$ N
u(1,1)=fzero(@(x)besselj(1,x),3.9);%一阶贝塞尔函数的第一个解(在3.9附近)
5 y) M7 T) \3 c* P# Pfor s=2:maxs
" o; J& o7 I9 S7 c- K5 i3 s$ l u(1,s)=fzero(@(x)besselj(1,x),u(1,s-1)+incr);%在第一个解加4附近求零阶贝塞尔函数的第二个及以上的解
5 S* T' Z8 X) ?end
& n' m" L( Z5 C" W- V8 ~+ w' |3 L" ZNIND=40; %个体数目40
9 z; `( h. P8 b6 C8 ]MAXGEN=100; %最大遗传代数100* i# M, h3 o6 W* @0 b
NVAR=10; %变量个数为10,前五个为半径,后五个位直波导长度1 y3 }$ \" g* \% F X; A* g
PRECI=20; %变量的二进制位数
1 k$ w# {+ _; D K; c* V1 ^7 E9 FGGAP=0.9; %代沟: o6 j) s* }7 v, X F u
trace1=[];, Z: j) I1 b. S7 {. ]. ] m
trace2=[]; %性能跟踪器,1、2分别为第一目标函数、第二目标函数的跟踪
+ Z; A8 b* S# \- R" J%建立区域描述器; ~& U4 j" v6 c2 P. t- |
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])];( w& t L9 y( H, W
Chrom=crtbp(NIND,NVAR*PRECI); %初始化种群- f1 F+ p& L5 K4 L
v=bs2rv(Chrom,FieldD)/1000; %初始种群十进制转换(单位由mm转换为m)
: D5 h- l- H8 ?6 C6 D+ R2 ggen=1; %代计数器
9 @2 U. H9 G* x7 d R3 `%遗传开始; k9 O) L6 U4 e( T6 L% E _
while gen<MAXGEN) t6 S3 B9 n k. E1 B) v/ [ X& G
[NIND,N]=size(Chrom);' E; e) w9 f7 i6 U
M=fix(NIND/2);
/ @! c) F! x) I" s3 v* X( S ObjV1=Highpass(v(1:M, ); %分组后高通目标函数值(单位m)
5 m9 |3 S: ^/ h7 @' L2 N7 G FitnV1=ranking(-ObjV1); %分配高通适应度值(求最大值)
4 `% _8 o+ N: \$ s+ N+ ~ SelCh1=select('sus', Chrom(1:M, ,FitnV1,GGAP); %调用随机遍历抽样函数sus对第一组种群基于适应度值进行选择/ ]! j: T B) f0 ]7 x/ S) k" ^
ObjV2=Lowpass(v(M+1:NIND, ); %分组后低通目标函数值(单位m). O" b. W: p. D6 b4 |& t8 A; [
FitnV2=ranking(ObjV2); %分配低通适应度值(求最小值)
. M/ }( B: k: x0 e5 B SelCh2=select('sus', Chrom((M+1):NIND, ,FitnV2,GGAP); %调用随机遍历抽样函数sus对第二组种群基于适应度值进行选择
: K) Y% _4 Q. v; c$ S8 p- d: Z6 ^ SelCh=[SelCh1;SelCh2]; %将两组选择后种群进行合并; T% a" w2 o/ s9 o% d) R; ]
SelCh=recombin('xovsp',SelCh,0.7);%以0.7的交叉概率进行单点交叉重组* {2 T! s& P) n! ~; D
Chrom=mut(SelCh); %变异
$ F# s `5 \3 n3 X %Chrom=reins(Chrom,SelCh); %随机均匀选择重插入( f! C9 H; s, A/ Q3 P+ T
v=bs2rv(Chrom,FieldD)/1000; %将进化后种群十进制转换(单位由mm转换为m)
& s+ e& x, Y- l; h+ R) L0 E trace1(gen,1)=max(Highpass(v));
: z# S) l( X6 a9 Q trace1(gen,2)=sum(Highpass(v))/length(Highpass(v));
2 h% B5 P a3 N( c4 y5 i trace2(gen,1)=min(Lowpass(v));
9 H# O% E, f& l" O trace2(gen,2)=sum(Lowpass(v))/length(Lowpass(v));2 D- c& d b) X% p8 w/ v+ F
gen=gen+1;- y# Q6 q0 c5 d9 K+ S# G. O- k a7 s+ z
end
+ k9 u5 Y$ u2 l! I( e1 Z Cfigure(1);clf;2 o- `& w. D# m8 j; w& f* T7 |* {2 q, w
plot(trace1(:,1));hold on;plot(trace1(:,2),'-.');. k2 U( r" @! ]0 W; I
plot(trace1(:,1),'.');plot(trace1(:,2),'.');grid;
( D' I- {# U, jlegend('解的变化','种群均值的变化')
( J6 H5 I% y* Q& g" M$ [* X: S/ Dxlabel('迭代次数');ylabel('高通目标函数值');
) c# V0 p) |% @! x4 U% sfigure(2);clf;, R! Y6 l5 _: q# `4 @' v) y
plot(trace2(:,1));hold on;' B, \( J J) K U) G
plot(trace2(:,2),'-.');
% w0 d+ m* B9 Y. u9 ^. ]plot(trace2(:,1),'.');) z, \0 G6 y* i1 S
plot(trace2(:,2),'.');grid;. i4 `$ U, U! X0 ^. S
legend('解的变化','种群均值的变化')+ d' Z8 f$ f+ ^4 V( O6 `
xlabel('迭代次数');ylabel('低通目标函数值');4 x% _. a5 _' m9 c
figure(3);clf;2 p' {) W3 k8 [. K) a' u* e2 Y, F
plot(Highpass(v));hold on;, E7 P. I1 H$ s9 B3 H O' s! L: [# X& l( o/ ~
plot(Lowpass(v),'r-.');grid;
: e4 E$ K. d" a2 b( g' V9 {5 D& J9 H
T$ N# y p4 O |
-
1.jpg
(63.87 KB, 下载次数: 1065)
-
2.jpg
(67.12 KB, 下载次数: 1015)
-
3.jpg
(47.82 KB, 下载次数: 988)
zan
|