public override double calculateFitness(Individual individual, double fitness) { string individualString = individual.ToString(); if (!checkEnds(individual) || !checkOperatorPair(individual) || checkZeroDivision(individual)) { fitness = Double.NegativeInfinity; } else { int sum = evalExpression(individualString); int difference = Math.Abs(finalTarget - sum); if (sum <= 0) { fitness = Double.NegativeInfinity; } else if (difference > 0) { fitness = -difference; } else if (difference == 0) { fitness = sum; } } return(fitness); }
private bool checkZeroDivision(Individual values) { string valuesString = values.ToString(); if (valuesString.Contains("/0") == true) { return(true); } else { return(false); } }