|
|
fitnessFunction=@minf_5;nvars=5;
! g* R4 f' K+ `! C" T" Ioptions=gaoptimset;5 x5 S, ~& T* d) e5 R7 L+ S C6 |
options=gaoptimset(options,'PopInitRange',[0;1]);
/ I- K! E; D! D1 E( n0 Soptions = gaoptimset(options,'PopulationSize',100);5 z9 k4 t4 |4 }6 U' z4 L. s
options=gaoptimset(options,'CrossoverFraction',0.9);% i, W5 P+ x! H% a$ ?, P' y
options=gaoptimset(options,'Generations',1000);% M: Y0 u3 H; T( F$ O8 l \9 s
options=gaoptimset(options,'CrossoverFcn',{@crossoverheuristic,0.9});' s7 P) c7 ^3 N; O
options=gaoptimset(options,'MutationFcn',{@mutationuniform,0.02});; r& y+ X, c" k* {0 w3 k/ I( T
[x fval reason output population scores]=ga(@minf_5,nvars,options)* ?$ c% u- e, s8 R% E: i; z7 K- e
Optimization terminated: average change in the fitness value less than options.TolFun.& |) A* l& J0 a# ^
$ D5 V) Y8 h4 m" A) g4 ^
x =% r# O2 ~/ M5 K/ g
6 [! x% s2 a3 F. O$ K5 O# P 0.6026 0.0979 0.2421 0.9712 0.9449' p1 D0 L6 o: W9 h
6 {6 H6 F! G6 m, ?3 z! |0 b1 r# U! c4 X k
fval =
) X5 W2 o5 e8 N" ~5 H
4 B( r" F4 I$ E$ r9 {$ J% S -1.6983e+03 - 1.4575e+01i2 ^; p' [. m/ W7 B1 G% P; Y
2 r2 T. b+ x% Y s1 g附上我自己的遗传算法编程,首先是第三行的自变量范围,只能定义一个区间,不知道怎么分开定义五个自变量的范围,再就是这样计算结果竟然是个复数,还都是负号,跟我想要的正实数实在是相去甚远, |
|