Refactor cost function
Refactor crossover
Refactor random-set