|
|
fitnessFunction=@minf_5;nvars=5;( f- m0 \ _0 @% D9 A$ \- M& ]9 M
options=gaoptimset;& x3 w. t" }+ Y- c
options=gaoptimset(options,'PopInitRange',[0;1]);
- K9 ]- n1 O1 d+ eoptions = gaoptimset(options,'PopulationSize',100);1 w5 }8 L& [6 m( G1 d! m
options=gaoptimset(options,'CrossoverFraction',0.9);
5 {5 _* e y. S. p ~( xoptions=gaoptimset(options,'Generations',1000);
, T( Q5 \( `' coptions=gaoptimset(options,'CrossoverFcn',{@crossoverheuristic,0.9});
) o( I. D. x$ @7 `( q/ M, ]/ Zoptions=gaoptimset(options,'MutationFcn',{@mutationuniform,0.02});
1 I$ H& s' E8 D( Y T[x fval reason output population scores]=ga(@minf_5,nvars,options)
0 [4 {8 ]" o/ r- bOptimization terminated: average change in the fitness value less than options.TolFun.
( T' g* d+ h. \9 Y, N; u
6 c4 Z1 J- u8 r. ]x =
% D( U; O& K2 u4 {- V. a
9 n! Y- J3 m* B- T n 0.6026 0.0979 0.2421 0.9712 0.9449
# u( h' A) u( z, G, w9 l9 u1 {
" C* T/ o6 K4 G4 ?; T/ P
+ z% r1 I/ v* \fval =
; m3 @5 L% S& b0 n
( O; F% ?$ q7 ^; R -1.6983e+03 - 1.4575e+01i& A9 j7 F/ f* g9 v, K$ C+ o
3 u2 S5 U7 p, D# [1 l; q9 a
附上我自己的遗传算法编程,首先是第三行的自变量范围,只能定义一个区间,不知道怎么分开定义五个自变量的范围,再就是这样计算结果竟然是个复数,还都是负号,跟我想要的正实数实在是相去甚远, |
|