|
|
fitnessFunction=@minf_5;nvars=5;
4 O0 o i9 @4 G. P! aoptions=gaoptimset;7 l7 p6 {% p* n/ P
options=gaoptimset(options,'PopInitRange',[0;1]);8 j) S8 I, P5 c9 m, I) w: k
options = gaoptimset(options,'PopulationSize',100);
7 x$ b0 s. c9 v3 ~' L% `0 U5 Boptions=gaoptimset(options,'CrossoverFraction',0.9);
' W4 |# y6 ~7 A, H6 ^4 ^options=gaoptimset(options,'Generations',1000);
: |* w) c- \: D3 H* z% P+ @- ~options=gaoptimset(options,'CrossoverFcn',{@crossoverheuristic,0.9});
: k# Z( l7 l& Q* ]3 ?options=gaoptimset(options,'MutationFcn',{@mutationuniform,0.02});- h# z* A7 u" X4 ]' l$ G
[x fval reason output population scores]=ga(@minf_5,nvars,options)# C& i. a" W$ B1 d7 c; c
Optimization terminated: average change in the fitness value less than options.TolFun., \. L# H8 l% o/ l, l9 t
! U$ z7 I& Q" S7 v, f
x =
/ Q# [' Z9 G& O# i3 r |$ L2 Q, ?# K1 G
0.6026 0.0979 0.2421 0.9712 0.9449- y/ o$ }1 u6 c3 q, V
$ Q. F( g& O! \9 v# ?* B4 X& q2 r& Y3 ^* Y! S& |; I
fval =* u8 [- A- ?- s4 W9 n' t" W
1 s) ~! N3 q# C$ j; Z$ P& G5 G
-1.6983e+03 - 1.4575e+01i9 z. a) H" a. w; V
0 b% I; K2 Z) g# O% D& N
附上我自己的遗传算法编程,首先是第三行的自变量范围,只能定义一个区间,不知道怎么分开定义五个自变量的范围,再就是这样计算结果竟然是个复数,还都是负号,跟我想要的正实数实在是相去甚远, |
|