def fitnessFunction(chromosome):
    '\n    Given a "chromosome", this function must determine its fitness score\n     The fitness score should be a floating point value.  If the fitness is zero or smaller\n     then the chromosome will not be allowed to "reproduce"\n    '
    a = chromosome['a']
    b = chromosome['b']
    c = chromosome['c']
    d = chromosome['d']
    val1 = math.fabs(((((a + b) + c) + d) - 17))
    val2 = math.fabs(((math.pow(a, 2) + math.pow(b, 2)) - 5))
    val3 = (((math.sin(a) + c) - d) - 20)
    dist = math.sqrt(((math.pow(val1, 2) + math.pow(val2, 2)) + math.pow(val3, 2)))
    if (dist != 0):
        return (1 / dist)
    else:
        return None
Given a "chromosome", this function must determine its fitness score
 The fitness score should be a floating point value.  If the fitness is zero or smaller
 then the chromosome will not be allowed to "reproduce"
def fitnessFunction(chromosome):
    '\n    Given a "chromosome", this function must determine its fitness score\n     The fitness score should be a floating point value.  If the fitness is zero or smaller\n     then the chromosome will not be allowed to "reproduce"\n    '
    a = chromosome['a']
    b = chromosome['b']
    c = chromosome['c']
    d = chromosome['d']
    val1 = math.fabs(((((a + b) + c) + d) - 17))
    val2 = math.fabs(((math.pow(a, 2) + math.pow(b, 2)) - 5))
    val3 = (((math.sin(a) + c) - d) - 20)
    dist = math.sqrt(((math.pow(val1, 2) + math.pow(val2, 2)) + math.pow(val3, 2)))
    if (dist != 0):
        return (1 / dist)
    else:
        return None