|
|
fitnessFunction=@minf_5;nvars=5; P, ^% ]# r7 Q2 ^) Y) r, D0 B# h
options=gaoptimset;- d. l$ C' }+ D
options=gaoptimset(options,'PopInitRange',[0;1]);, H, o* J4 F P/ v2 N+ A
options = gaoptimset(options,'PopulationSize',100);; U e9 C0 D3 P
options=gaoptimset(options,'CrossoverFraction',0.9);
9 U) R; c" y) F4 y: j. I8 H! L% Zoptions=gaoptimset(options,'Generations',1000);9 y$ ]8 s' `8 v) m. a
options=gaoptimset(options,'CrossoverFcn',{@crossoverheuristic,0.9});2 ~5 C7 K; w- w1 p2 E: a
options=gaoptimset(options,'MutationFcn',{@mutationuniform,0.02});
& o" ]6 S/ q* W9 N[x fval reason output population scores]=ga(@minf_5,nvars,options)
: z, q' v# o, QOptimization terminated: average change in the fitness value less than options.TolFun.
5 `. g T4 r" I/ H+ d1 J0 T0 p* R2 B( T" q: H P
x =
8 z9 F0 M R/ q d- E& f& S( A, ~2 w7 B
0.6026 0.0979 0.2421 0.9712 0.9449. s- K. Q, e7 I2 \% r7 {6 ]
: o/ i$ c1 L& q# G* Y0 ]7 n6 B4 J- P/ v
fval =1 P2 |1 @) m# X" E. A
8 W( l5 T3 k" \# u" M W# } -1.6983e+03 - 1.4575e+01i
8 Q+ j+ O8 ^6 d. Z( h' ~4 X8 W( p& o, J' |2 \
附上我自己的遗传算法编程,首先是第三行的自变量范围,只能定义一个区间,不知道怎么分开定义五个自变量的范围,再就是这样计算结果竟然是个复数,还都是负号,跟我想要的正实数实在是相去甚远, |
|