(Ignore branch name nothing in crossover changes, the issue was in Tournament).
Essentially, I made the following changes to Tournament:
Changed the pool size to a fixed 2 individuals for now.
Added fix that ensures Tournament does not have duplicate individuals in pools.
These were because, in runs that involved only Tournament selection, the GA was stalling in Crossover because there were not enough different individuals being selected to be able to finish crossover in later populations. We will need to revisit this later but for now these changes are fixing the problem in tests.
(Ignore branch name nothing in crossover changes, the issue was in Tournament). Essentially, I made the following changes to Tournament:
These were because, in runs that involved only Tournament selection, the GA was stalling in Crossover because there were not enough different individuals being selected to be able to finish crossover in later populations. We will need to revisit this later but for now these changes are fixing the problem in tests.