|
|
fitnessFunction=@minf_5;nvars=5;
3 |) B) c4 }2 A ^2 Yoptions=gaoptimset;6 c+ O3 D: t8 k1 R; `
options=gaoptimset(options,'PopInitRange',[0;1]);
3 n4 M% |% Y; U3 N8 foptions = gaoptimset(options,'PopulationSize',100);
$ ~: {4 X# f" I# Xoptions=gaoptimset(options,'CrossoverFraction',0.9);, s! f) l0 N/ l6 F7 ]$ v
options=gaoptimset(options,'Generations',1000);
! A, F! V9 v. _* r+ [options=gaoptimset(options,'CrossoverFcn',{@crossoverheuristic,0.9});
3 r+ h" p9 B9 Yoptions=gaoptimset(options,'MutationFcn',{@mutationuniform,0.02});0 ?# j- f% \! t% f+ c
[x fval reason output population scores]=ga(@minf_5,nvars,options)
) q1 z3 E2 C: e; R1 |) YOptimization terminated: average change in the fitness value less than options.TolFun.
$ G5 l* h! x* k
( m! J# T& \" @% Lx =
, I9 ?: ]/ }, T; t, T, G% u- W3 v8 A) L$ [$ s
0.6026 0.0979 0.2421 0.9712 0.9449
( ~! J0 D! {- B3 p8 t r* t% u4 |0 d( d1 {' U6 t) I
% Q* f6 F% N' jfval =
. n$ g. B" I; V" @, Q/ X: Y
0 h) ~8 ~/ J3 Z! G3 v4 E+ M4 I# j7 O8 N -1.6983e+03 - 1.4575e+01i
( _& Y u) K, c' Y( D6 y8 C) t5 j5 W. Z' ^9 T% g' m( q# {
附上我自己的遗传算法编程,首先是第三行的自变量范围,只能定义一个区间,不知道怎么分开定义五个自变量的范围,再就是这样计算结果竟然是个复数,还都是负号,跟我想要的正实数实在是相去甚远, |
|