Degraded Performance in 0.6.0 vs. 0.5.0 #360
-
Hi, I've been running optimisations with an earlier version of pymoo (0.5.0) and have recently switched to the latest version (0.6.0) but I've noticed a drop in performance (see figure). If this may seem small its not and quite significant for my use case. The only differences I've made to my code are how the sampling, crossover and mutation operators are defined, as per the new convention:
I'm making the assumption that this is the same as previous, see here for old implementation:
Firstly, is what I'm doing in the latest version the same as what I was doing previously, I've checked the documentation and it appears to be the case. If it is the same then do you have any ideas why the performance has dropped so much? I've ran few times changing the random seed and don't get back to the original performance, so I'm ruling out its just stochastic. I've also tweaked the population, crossover and mutation rates and got slight improvements but its still not as good as the older version. Thanks in advance for your help and any suggestions would be welcome. |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment 2 replies
-
Hi, Peter! I've tried to read the code in detail over these last few days to compare 0.5.0 to 0.6.* and I believe some keyword arguments in SBX and PM either became obsolete or changed their meaning. prob in Mutation operators now seems to be a probability that each individual is mutated at all, and the old prob from PM now becomes prob_var (considering prob=1.0). The same has happened to SBX as the possibility of asymmetric crossovers is incorporated. Perhaps, that is the reason for the performance change in your problem. The new features are interesting as they provide the user with more options on how the operators will work. However, I believe we must be concerned in future versions about changing the mechanisms related to some parameters and documenting their meaning in more detail. In my opinion, PM and SBX from 0.5.0 were easier to interpret and use than they are in version 0.6.* besides being more adherent to most studies in the literature on the subjects. |
Beta Was this translation helpful? Give feedback.
Hi, Peter!
I've tried to read the code in detail over these last few days to compare 0.5.0 to 0.6.* and I believe some keyword arguments in SBX and PM either became obsolete or changed their meaning.
prob in Mutation operators now seems to be a probability that each individual is mutated at all, and the old prob from PM now becomes prob_var (considering prob=1.0). The same has happened to SBX as the possibility of asymmetric crossovers is incorporated. Perhaps, that is the reason for the performance change in your problem.
The new features are interesting as they provide the user with more options on how the operators will work. However, I believe we must be concerned in future versions a…