Beispiel #1
0
def oppositeFunction(basef):
    """ the opposite of a function """
    if isinstance(basef, FitnessEvaluator):
        if isinstance(basef, FunctionEnvironment):
            ''' added by JPQ '''
            if isinstance(basef, MultiObjectiveFunction):
                res = MultiObjectiveFunction()
            else:
                # ---
                res = FunctionEnvironment(basef.xdim, basef.xopt)
        else:
            res = FitnessEvaluator()
        res.f = lambda x: -basef.f(x)
        if not basef.desiredValue is None:
            res.desiredValue = -basef.desiredValue
        res.toBeMinimized = not basef.toBeMinimized
        return res
    else:
        return lambda x: -basef(x)