You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
A gene = a model: so there are 50 genes to choose from
DNA/Chromosome/Genome/individual = an ensemble
Population = Ensemble 1, Ensemble 2, ......
Generation = Ensemble 1 crossed with Ensemble 2 so after a generation we might end up with
Ensemble 3 = 0,1,40,3,20,5,6,7
Fitness = score of an ensemble
I have noticed that in gentic_operator.hpp the function
pagmo::detail::sbx_crossover_impl(....)
doesn't seem to work very well with integers. Between calling sbx_betaq(beta, eta_c, rand01) and multiplying by .5 it seems to keep the numbers rather close to the original numbers, thus not much cross over seems to happen, since 24.0561 get treated the same as 24.49523.
Also in sga::perform_crossover(....) there is the following lines
which means that only individuals next to each other in the vector can mate.
I am new to Evolutionary Algorithms, so am I correct in thinking that the SGA algorithm with binary crossover is not a good choice for what I am trying to do. I made changes to pagmo::detail::sbx_crossover_impl(....) and some other functions so that they work with integers, however I am thinking that I just need to write my own algorithm to do what I want to do.
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
-
Hello
I am using Pagmo C++ Simple Genetic Algorithim(SGA) to choose 8 models out of 50 models to form an ensemble.
For example
Ensemble 1 = 0, 1, 2, 3, 4, 5, 6, 7
Ensemble 2 = 0,50,40,30,20,10,25,39
Ensemble 3 = ..........
were 0 = model#1, 1 = model#2, .... 49 = model#50
A gene = a model: so there are 50 genes to choose from
DNA/Chromosome/Genome/individual = an ensemble
Population = Ensemble 1, Ensemble 2, ......
Generation = Ensemble 1 crossed with Ensemble 2 so after a generation we might end up with
Ensemble 3 = 0,1,40,3,20,5,6,7
Fitness = score of an ensemble
I have noticed that in gentic_operator.hpp the function
pagmo::detail::sbx_crossover_impl(....)doesn't seem to work very well with integers. Between calling sbx_betaq(beta, eta_c, rand01) and multiplying by .5 it seems to keep the numbers rather close to the original numbers, thus not much cross over seems to happen, since 24.0561 get treated the same as 24.49523.
Also in sga::perform_crossover(....) there is the following lines
and
X[i] = children.first; X[i + 1] = children.second;which means that only individuals next to each other in the vector can mate.
I am new to Evolutionary Algorithms, so am I correct in thinking that the SGA algorithm with binary crossover is not a good choice for what I am trying to do. I made changes to
pagmo::detail::sbx_crossover_impl(....)and some other functions so that they work with integers, however I am thinking that I just need to write my own algorithm to do what I want to do.Thank you for you help.
Cheers
Beta Was this translation helpful? Give feedback.
All reactions