|
|
fitnessFunction=@minf_5;nvars=5;
& E5 J* n6 i! o: \8 aoptions=gaoptimset; Y2 p! S- L- q* t( E
options=gaoptimset(options,'PopInitRange',[0;1]);
' I+ m$ a1 y$ W% S5 N4 q( [options = gaoptimset(options,'PopulationSize',100);
+ \* i9 A7 z2 a+ Doptions=gaoptimset(options,'CrossoverFraction',0.9);7 M, W5 z# E3 r6 d
options=gaoptimset(options,'Generations',1000);
' E) J9 s7 |1 Q8 R/ F" ^6 o1 Uoptions=gaoptimset(options,'CrossoverFcn',{@crossoverheuristic,0.9});" g& z" G% v) @% h
options=gaoptimset(options,'MutationFcn',{@mutationuniform,0.02});3 c1 n9 @& C+ K+ M9 {% [1 X
[x fval reason output population scores]=ga(@minf_5,nvars,options)" O' i: v* P; V; [9 b( Y
Optimization terminated: average change in the fitness value less than options.TolFun.. ?0 ?) J$ E6 P8 g
( } [" S% d# m3 c, h7 Px =' b6 J1 g' V, u$ @
+ u$ W# x% V1 W. T% M( ^
0.6026 0.0979 0.2421 0.9712 0.9449
4 n0 \) v% w2 n( T5 d, b* ?
# i* }& \9 W" @! D6 e5 y% ~. t3 p3 X- E, `
fval =
5 z9 u, J- k& G2 G
1 M3 l% A% B8 j& j! Y4 R6 W -1.6983e+03 - 1.4575e+01i. u, u( j5 [' V1 u
# N1 j5 ?" B, P3 [附上我自己的遗传算法编程,首先是第三行的自变量范围,只能定义一个区间,不知道怎么分开定义五个自变量的范围,再就是这样计算结果竟然是个复数,还都是负号,跟我想要的正实数实在是相去甚远, |
|