Мне трудно найти Документацию по , как писать сигнатуры моих пользовательских функций выбора, мутации, кроссовера для Генетического алгоритма.
Я не могу понять, как ga () функции работает.(Я знаю, что это существует: ссылка ), но как эти функции взаимодействуют, что они ожидают для входов и для выходов?
Q & A, Подробнее о моей проблеме: ссылка
Это мои параметры GA:
options = gaoptimset(...
'PopulationSize', 10, ...
'Generations', 50, ...
'CrossoverFcn', {'crossoverscattered'}, ...
'MutationFcn', { @Mutation, 0.01 }, ...
'SelectionFcn', { @RouletteWheelSelection }, ...
'UseParallel', true, ...
'Display', 'iter' ...
);
My GA функция:
lb = 1; % Lower bound on x
ub = 3; % Upper bound on x
nvars = 1;
x = ga(@GaFitness,nvars,[],[],[],[],lb,ub,[],[],options);
My GaFitness Подпись Fcn (на данный момент):
function result = GaFitness()
Моя Мутация Функция подписи:
function chromosome = Mutation( chromosome )
Моя Выбор функцияподпись:
function selected_chromosome = RouletteWheelSelection( population )
Если вам нужна дополнительная информация о моей проблеме или больше кода, пожалуйста, сообщите мне.
Это ошибка, которую я получаю:
Error using GaFitness
Too many input arguments.
Error in createAnonymousFcn>@(x)fcn(x,FcnArgs{:}) (line 11)
fcn_handle = @(x) fcn(x,FcnArgs{:});
Error in makeState (line 47)
firstMemberScore = FitnessFcn(state.Population(initScoreProvided+1,:));
Error in galincon (line 17)
state = makeState(GenomeLength,FitnessFcn,Iterate,output.problemtype,options);
Error in ga (line 374)
[x,fval,exitFlag,output,population,scores] = galincon(FitnessFcn,nvars, ...
Caused by:
Failure in initial user-supplied fitness function evaluation. GA cannot continue.
Использование Matlab 2016b.