Genetic algorithm viewing population

I am using genetic algorithm on a string of 1s and 0s to solve an optimization problem. For this I have to pass the string generated to a function to check its feasibility. How can I store the population (i.e. the strings in every generation) and pass it to the function.

2 个评论

Are you sure you need to pass the entire population at one time, and not just the current bitstring, which would be what the parameter to your objective function would be?
@Walter Roberson I want to pass the just one bitstring

请先登录,再进行评论。

 采纳的回答

The objective function is automatically passed the current bitstring as a vector of double, values 0 and 1. You can pass that vector to a different function.

4 个评论

From what I know, I would be using the "ga()" function. I dont know how to get the individual vector.
The vector is simply the argument that is passed to the objective function. You can extract individual elements by indexing. For example if the current bitstring is 0110 then that would be passed to your objective function as [0, 1, 1, 0]
I am sorry if I am not getting this. But this is an example code -
fun = @(x) (10*x(1) + 20*x(2) - 30*x(3));
nvars = 3;
lb = [0 0 0];
ub = [1 1 1];
intcon = [1 2 3];
sol = ga(fun, nvars, [], [], [], [], lb, ub, [], intcon);
I dont know how to get the values of x it passes and factors to control it like the size of population, cross-over probability etc.
Thank you for your patience.
The x(1) and so on are the values it passes.
The control over size of the population and the like is through the options parameter. Possibly you want to use the OutputFcn parameter??

请先登录,再进行评论。

更多回答(0 个)

类别

产品

Community Treasure Hunt

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

Start Hunting!

Translated by