There are several steps to the GA(遗传算法的循环过程):
population generation
scoring
loop
fitness (适应度函数)
scaling
selection (选择)
crossover (交叉)
mutation (变异)
scoring
migration
output
termination testing(终止判断)
end loop
Each of these steps can be controlled by the options structure created
by GAOPTIMSET.
在上面的循环过程中各个步骤的限制条件都是可以在GAOPTIMSET设置的。你不自己设置就会被默认设置所代替。(下面还有)
默认设置defaultopt = struct('PopulationType', 'doubleVector', ...
'PopInitRange', [0;1], ...
'PopulationSize', 20, ...
'EliteCount', 2, ...
'CrossoverFraction', 0.8, ...
'MigrationDirection','forward', ...
'MigrationInterval',20, ...
'MigrationFraction',0.2, ...
'Generations', 100, ...
'TimeLimit', inf, ...
'FitnessLimit', -inf, ...
'StallGenLimit', 50, ...
'StallTimeLimit', 20, ...
'InitialPopulation',[], ...
'InitialScores', [], ...
'PlotInterval',1, ...
'FitnessScalingFcn', @fitscalingrank, ..(注意:这里的函数是可以选择的,并且都可以在toolbox gad工具箱
中找到并找到平行的函数并替换).
'SelectionFcn', @selectionstochunif, ...(注意:这里的函数是可以选择的,并且都可以在toolbox gad工具箱
中找到并找到平行的函数并替换).
'CrossoverFcn',@crossoverscattered, ...(注意:这里的函数是可以选择的,并且都可以在toolbox gad工具箱
中找到并找到平行的函数并替换).
'MutationFcn',@mutationgaussian, ...(注意:这里的函数是可以选择的,并且都可以在toolbox gad工具箱中找
到并找到平行的函数并替换).
'PlotFcns', [], ...
'Display', 'final', ...
'OutputFcns', [], ...
'CreationFcn',@gacreationuniform, ...(注意:这里的函数是可以选择的,并且都可以在toolbox gad工具箱中
找到并找到平行的函数并替换).
'HybridFcn',[], ...
'Vectorized','off');
而你的问题可能是以下原因:
比如说默认的generations(循环停止代数)为100代已经到达,但是最优的解还没达到,
或者是其它的设置的问题。也可能是fitness的最小值达到了就像上楼说的。
不知道对你有没有帮助,你先看看吧,还有就是你的问题描述的不是很清楚,如果更清楚一点的话相信版主们会帮你搞定的。