final CalculateScore theScoreFunction) {
this.population = thePopulation;
this.scoreFunction = theScoreFunction;
this.selection = new TournamentSelection(this, 4);
this.rules = new BasicRuleHolder();
// set the score compare method
if (theScoreFunction.shouldMinimize()) {
this.selectionComparator = new MinimizeAdjustedScoreComp();
this.bestComparator = new MinimizeScoreComp();