A more comprehensive naming system might help the readability. Rather than commenting "//Population Size", perhaps make def popSize. The same for popVector, fitVector, etc. Just a thought, because reading through the code, I had to scroll back up to remember what each one was called.