Stop mutation in GAMULTIOBj

2 visualizaciones (últimos 30 días)
Dilini
Dilini el 21 de Dic. de 2014
Respondida: Zhangxi Feng el 19 de Jun. de 2018
Hi, I tried this simple problem with an initial population. I want to find the best set of combinations of these variables without altering their values. This I'm trying to get by having only crossover children. As I understand from the documentation this can be done by setting crossoverfraction to 1. But I don't get the expected result.
e.g.
P_s=randi(20,3,9);
numberOfVariables=9;
FitFunc = @multiobjectiveFit;
options = gaoptimset('CrossoverFraction',1,'InitialPopulation',P_s,'CrossoverFcn',@crossovertwopoint)
[x,fval,exitflag]=gamultiobj(FitFunc,numberOfVariables,[],[],[],[],[],[],options);
function y=multiobjectiveFit(x)
y = zeros(2,1);
y(1) =-sum(x);
y(2) =var(x);
gives me a new set of populations x with non-integer values whereas I started with integer values. Please help me. (FYI: My original problem has a very large initial population with non-integer values)
  1 comentario
Dilini
Dilini el 21 de Dic. de 2014
May be I mis-interpreted the document. In crossover it doesn't simply swap the elements it combines them whereas in mutation it alters the value, isn't it? May be I should write my own crossover function?

Iniciar sesión para comentar.

Respuestas (1)

Zhangxi Feng
Zhangxi Feng el 19 de Jun. de 2018
Sad no one answers this question. I am trying to understand the whole process more also. I believe making your own creation, selection, crossover, and mutation functions are definitely the way to go if you have a specific need.

Categorías

Más información sobre Startup and Shutdown en Help Center y File Exchange.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by