Vectorizing the fitness function of a genetic algorithm

1 次查看(过去 30 天)
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.

采纳的回答

Carl
Carl 2017-4-4
编辑:Carl 2017-4-4
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 个评论
Atamert Arslan
Atamert Arslan 2017-4-8
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!

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Genetic Algorithm 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by