|
fitnessFunction=@minf_5;nvars=5;
2 K5 {5 Y, q ] T0 N: R' [5 Yoptions=gaoptimset;" ?4 l% K8 h1 x8 i6 b: K" R8 D
options=gaoptimset(options,'PopInitRange',[0;1]);
4 h l9 F% H8 L coptions = gaoptimset(options,'PopulationSize',100);( p9 Q; G5 k) f9 r( [1 Z+ \( E. t
options=gaoptimset(options,'CrossoverFraction',0.9);
4 K+ e' g% G, E& _7 @8 Voptions=gaoptimset(options,'Generations',1000);
Z% A2 D: O2 N, ^ k3 m: Yoptions=gaoptimset(options,'CrossoverFcn',{@crossoverheuristic,0.9});
9 k' P7 f& ~% J8 _4 y0 Y0 u3 l' moptions=gaoptimset(options,'MutationFcn',{@mutationuniform,0.02});7 Z& s' g9 o+ V8 f% h5 y
[x fval reason output population scores]=ga(@minf_5,nvars,options)
2 k$ v+ P% A+ l) H# jOptimization terminated: average change in the fitness value less than options.TolFun.
% w+ H0 m. U$ a" N A; f+ x/ m6 i- A: d- s& W
x =5 M, j& F% E! r& x% n7 [% q! V
" m7 ]( _2 X; a" }
0.6026 0.0979 0.2421 0.9712 0.9449: Z N2 ]9 s4 Y/ V
/ W+ R O0 F3 s, c; Z U
8 H; B% j9 }( @! S% }+ f' r% xfval =/ p/ g: F& j2 s/ m) l* M
1 |2 w0 R6 G1 Y+ J -1.6983e+03 - 1.4575e+01i
3 @* i7 X, L/ y2 k8 k+ K: x$ Q/ B, `1 p1 m
附上我自己的遗传算法编程,首先是第三行的自变量范围,只能定义一个区间,不知道怎么分开定义五个自变量的范围,再就是这样计算结果竟然是个复数,还都是负号,跟我想要的正实数实在是相去甚远, |
|