def dtlz4(individual, obj, alpha):
 xc = individual[:(obj - 1)]
 xm = individual[(obj - 1):]
 g = sum((((xi - 0.5) ** 2) for xi in xm))
 f = [((1.0 + g) * reduce(mul, (cos(((0.5 * (xi ** alpha)) * pi)) for xi in xc), 1.0))]
 f.extend(((((1.0 + g) * reduce(mul, (cos(((0.5 * (xi ** alpha)) * pi)) for xi in xc[:m]), 1)) * sin(((0.5 * (xc[m] ** alpha)) * pi))) for m in range((obj - 2), (-1), (-1))))
 return f

def dtlz4 ( individual , obj , alpha ) : xc = individual [ : ( obj - 1 ) ] xm = individual [ ( obj - 1 ) : ] g = sum ( ( ( ( xi - 0.5 ) ** 2 ) for xi in xm ) ) f = [ ( ( 1.0 + g ) * reduce ( mul , ( cos ( ( ( 0.5 * ( xi ** alpha ) ) * pi ) ) for xi in xc ) , 1.0 ) ) ] f . extend ( ( ( ( ( 1.0 + g ) * reduce ( mul , ( cos ( ( ( 0.5 * ( xi ** alpha ) ) * pi ) ) for xi in xc [ : m ] ) , 1 ) ) * sin ( ( ( 0.5 * ( xc [ m ] ** alpha ) ) * pi ) ) ) for m in range ( ( obj - 2 ) , ( - 1 ) , ( - 1 ) ) ) ) return f
dtlz4 multiobjective function .