Vectorizing the fitness function of a genetic algorithm

2 visualizaciones (últimos 30 días)
Atamert Arslan
Atamert Arslan el 1 de Abr. de 2017
Editada: Stephen23 el 9 de Abr. de 2017
Dear MATLAB Community,
I am currently trying to solve a binary nonlinear problem through ga, but it just takes too long. I came across the following page (see vectorize for speed): https://www.mathworks.com/help/gads/vectorizing-the-fitness-function.html
I understand the logic, however; I have 6210 dimensions in the decision vector and I was wondering if there was another way to write the function in detail as expressed on that page.
My fitness function currently looks as follows:
A = abs(X-X_Stern);
y = c*A';
where X, X_Stern and c are vectors (1x6210).
Is there a way to vectorize for speed without having to write in open format?
I appreciate your time and answer.

Respuesta aceptada

Carl
Carl el 4 de Abr. de 2017
Editada: Carl el 4 de Abr. de 2017
Hi Atamert, I believe the way you have it structured now should work fine. If pop is the population size, the input to your fitness function will be popx6210. The output of that calculation is a vector of length pop, which is what's required from a vectorized fitness function.
  1 comentario
Atamert Arslan
Atamert Arslan el 8 de Abr. de 2017
Thanks for the answer Carl! I had to convert the vectors into matrix depending on the size of the matrix ga each time passes (sometimes it indeed passes only a row vector and not a matrix for the whole population) so I implemented it dynamically and it works now!

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Genetic Algorithm 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