|
fitnessFunction=@minf_5;nvars=5;$ ?. X% a1 L! U: a* i
options=gaoptimset;
1 B' f# z' n+ \) t9 S5 G, m; o9 \options=gaoptimset(options,'PopInitRange',[0;1]);
! a% g6 H1 r( @ g) K: d$ \& U: K5 ooptions = gaoptimset(options,'PopulationSize',100);# q2 Q# X% n. D; Z
options=gaoptimset(options,'CrossoverFraction',0.9);
- b& Q1 `; D' v' l Q) F3 p0 Toptions=gaoptimset(options,'Generations',1000);
2 ~$ @4 x6 L* I6 k1 ~options=gaoptimset(options,'CrossoverFcn',{@crossoverheuristic,0.9});
. o: [! S1 ?' a* soptions=gaoptimset(options,'MutationFcn',{@mutationuniform,0.02});! O" u6 `4 n ^) ^) A
[x fval reason output population scores]=ga(@minf_5,nvars,options)
) ^) l' P3 E$ k# ~8 w+ mOptimization terminated: average change in the fitness value less than options.TolFun.
- X& { ~. S$ e: t q6 a3 Z; v R. c( S% @& j
x =4 i! T: M7 F9 ~6 @0 S
' Z0 S Y) V% d, G$ ^
0.6026 0.0979 0.2421 0.9712 0.9449
. L$ ^1 Z* y+ R& T, [8 n. \' g2 T0 ?6 F2 g
% Z& Q% {# i" _2 Y- I2 T
fval =* H8 E ?/ L. J
& t* n. K; V/ b( m -1.6983e+03 - 1.4575e+01i. B6 ]0 g$ Z& H% D3 o; p- k1 n
& p% s5 a/ ~4 |3 N, [3 K; z附上我自己的遗传算法编程,首先是第三行的自变量范围,只能定义一个区间,不知道怎么分开定义五个自变量的范围,再就是这样计算结果竟然是个复数,还都是负号,跟我想要的正实数实在是相去甚远, |
|