NSGA-II: Why some solution variables don't change over many iterations? #528
-
I am running a discrete problem with 3 objectives and 12 solution varables with NSGA-II algorithm. The best solution this time is: opt_F=array([-0.44153224, -1.71889729, -2.86858502]) opt_X=array([0, 1, 0, 1, 1, 0, 1, 4, 0, 5, 0, 4]) But I know there's a better solution from earilyer execution: opt_F=array([-0.52725378, -1.8748386 , -3.29617812]) opt_X=array([1, 1, 1, 0, 1, 2, 1, 1, 0, 3, 0, 0]) Here are part of the code:
The strange thing I see is during iteration 26 to 46 there are no change in variables x1-x5 (all are 0,1,0,1,1) in any of the populations (they are all 0-1's), only the other 7 variables have variations, and unfortunately the better solution comes with x1-x5 = 1,1,1,0,1. My question is why all the crossovers and mutations do not add any variations to x1-x5 for 21 straight iterations? Does this make sense at all? Are there any mistakes with my parameters?
|
Beta Was this translation helpful? Give feedback.
Replies: 1 comment 2 replies
-
Keep in mind that evolutionary algorithms are probabilistic algorithms. Not in every run the same solution will be found. In some runs, you might get stuck in a local optima and when the diversity in the population is lost it will be hard to get out of it. For some applications, implementing a restart strategy might make sense too! |
Beta Was this translation helpful? Give feedback.
Keep in mind that evolutionary algorithms are probabilistic algorithms. Not in every run the same solution will be found. In some runs, you might get stuck in a local optima and when the diversity in the population is lost it will be hard to get out of it.
For some applications, implementing a restart strategy might make sense too!