Как написать подпись пользовательских функций GA? (Выбор, Мутация, Кроссовер) - PullRequest
1 голос
/ 25 июня 2019

Мне трудно найти Документацию по , как писать сигнатуры моих пользовательских функций выбора, мутации, кроссовера для Генетического алгоритма.

Я не могу понять, как 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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...