I'm implementing the NSGA II genetic algorithm to develop a set of timetables for my college. I am having problems with variation of solutions.
My algorithm works fine as in initialization, mutation and crossover but after the final generation when reviewing my solutions they are all the same e.g I have 200 in a generation, maybe 64 of them will be the same as each other, 54 the same as each other etc.
My question is what may be causing this? And what is the best form of crossover and mutation?
Also is there norm for generation size, amount of generations, mutation rate and cross over rate?
At the moment it runs like so:
- Randomly generate 300 solutions
- Calculate fitness and ranking
- Pick 200 of the best solutions
- Mutate 5% of these and produce 80 children
- Calculate and Rank again
- Pick the best 300 to move on to next generation
- Repeat