How can one pass arguments to a custom CrossoverFunction in ga?
3 views (last 30 days)
I am implementing a custom crossover function following the documentation.
I need to pass 2 additional variables along with the solution and the rest of the GA-related parameters (parents, options, etc).
The previous doc page refer to "Passing Extra Parameters" to see how to pass additional arguments, and I believe I am doing it the same way it is explained there.
I define the function this way:
function xoverKids = ga_crossover(parents,options,nvars,FitnessFcn,~,thisPopulation,par1,par2)
xoverKids = ; %test
And I tell ga() to use it via:
options.CrossoverFcn = @(x) ga_crossover(x,par1,par2);
x = ga(ObjectiveFunction,nvars,,,,,lb,ub,ConstraintFunction,options);
I get the error that there are too many input arguments.
Inside MATLAB's own stepGa.m, the variable options.CrossoverFcnArgs that is passed as argument to the crossover function appears empty, so I think I am not setting up the function+arguments properly in the options.
Could you help me fix this?