<s> """<STR_LIT>""" <EOL> from scipy import array , exp , sqrt , sin , cos , power , pi , arctan , ndarray <EOL> from pybrain . rl . environments . functions . function import FunctionEnvironment <EOL> from pybrain . structure . parametercontainer import ParameterContainer <EOL> __author__ = '<STR_LIT>' <EOL> class MultiObjectiveFunction ( FunctionEnvironment ) : <EOL> """<STR_LIT>""" <EOL> ydim = <NUM_LIT:2> <EOL> feasible = None <EOL> xbound = None <EOL> constrained = None <EOL> violation = None <EOL> @ property <EOL> def outfeasible ( self ) : <EOL> return self . feasible <EOL> @ property <EOL> def outviolation ( self ) : <EOL> return self . violation <EOL> @ property <EOL> def outdim ( self ) : <EOL> return self . ydim <EOL> def __call__ ( self , x ) : <EOL> if isinstance ( x , ParameterContainer ) : <EOL> x = x . params <EOL> assert type ( x ) == ndarray , '<STR_LIT>' + str ( type ( x ) ) <EOL> res = self . f ( x ) <EOL> return res <EOL> class SchBenchmark ( MultiObjectiveFunction ) : <EOL> """<STR_LIT>""" <EOL> xdim = <NUM_LIT:1> <EOL> xdimMax = <NUM_LIT:1> <EOL> def f ( self , x ) : <EOL> return - array ( [ x ** <NUM_LIT:2> , ( x - <NUM_LIT:2> ) ** <NUM_LIT:2> ] ) <EOL> class FonBenchmark ( MultiObjectiveFunction ) : <EOL> """<STR_LIT>""" <EOL> xdim = <NUM_LIT:3> <EOL> def f ( self , x ) : <EOL> f1 = <NUM_LIT:1> - exp ( - sum ( ( x - <NUM_LIT:1> / sqrt ( <NUM_LIT:3> ) ) ** <NUM_LIT:2> ) ) <EOL> f2 = <NUM_LIT:1> - exp ( - sum ( ( x + <NUM_LIT:1> / sqrt ( <NUM_LIT:3> ) ) ** <NUM_LIT:2> ) ) <EOL> return - array ( [ f1 , f2 ] ) <EOL> class PolBenchmark ( MultiObjectiveFunction ) : <EOL> """<STR_LIT>""" <EOL> xdim = <NUM_LIT:2> <EOL> _A1 = <NUM_LIT:0.5> * sin ( <NUM_LIT:1> ) - <NUM_LIT:2> * cos ( <NUM_LIT:1> ) + sin ( <NUM_LIT:2> ) - <NUM_LIT> * cos ( <NUM_LIT:2> ) <EOL> _A2 = <NUM_LIT> * sin ( <NUM_LIT:1> ) - cos ( <NUM_LIT:1> ) + <NUM_LIT:2> * sin ( <NUM_LIT:2> ) - <NUM_LIT:0.5> * cos ( <NUM_LIT:2> ) <EOL> def f ( self , x ) : <EOL> B1 = <NUM_LIT:0.5> * sin ( x [ <NUM_LIT:0> ] ) - <NUM_LIT:2> * cos ( x [ <NUM_LIT:0> ] ) + sin ( x [ <NUM_LIT:1> ] ) - <NUM_LIT> * cos ( x [ <NUM_LIT:1> ] ) <EOL> B2 = <NUM_LIT> * sin ( x [ <NUM_LIT:0> ] ) - cos ( x [ <NUM_LIT:0> ] ) + <NUM_LIT:2> * sin ( x [ <NUM_LIT:1> ] ) - <NUM_LIT:0.5> * cos ( x [ <NUM_LIT:1> ] ) <EOL> f1 = <NUM_LIT:1> + ( self . _A1 - B1 ) ** <NUM_LIT:2> + ( self . _A2 - B2 ) ** <NUM_LIT:2> <EOL> f2 = ( x [ <NUM_LIT:0> ] + <NUM_LIT:3> ) ** <NUM_LIT:2> + ( x [ <NUM_LIT:1> ] + <NUM_LIT:1> ) ** <NUM_LIT:2> <EOL> return - array ( [ f1 , f2 ] ) <EOL> class KurBenchmark ( MultiObjectiveFunction ) : <EOL> """<STR_LIT>""" <EOL> xdim = <NUM_LIT:3> <EOL> def f ( self , x ) : <EOL> f1 = sum ( - <NUM_LIT:10> * exp ( - <NUM_LIT> * sqrt ( x [ : - <NUM_LIT:1> ] ** <NUM_LIT:2> + x [ <NUM_LIT:1> : ] ** <NUM_LIT:2> ) ) ) <EOL> f2 = sum ( power ( abs ( x ) , <NUM_LIT> ) + <NUM_LIT:5> * sin ( x ** <NUM_LIT:3> ) ) <EOL> return - array ( [ f1 , f2 ] ) <EOL> '''<STR_LIT>''' <EOL> class Deb ( MultiObjectiveFunction ) : <EOL> """<STR_LIT>""" <EOL> xdim = <NUM_LIT:2> <EOL> def __init__ ( self ) : <EOL> self . xbound = [ ] <EOL> self . xbound . append ( ( <NUM_LIT:0.1> , <NUM_LIT:1.0> ) ) <EOL> self . xbound . append ( ( <NUM_LIT:0.0> , <NUM_LIT> ) ) <EOL> self . constrained = False <EOL> def f ( self , x ) : <EOL> f1 = x [ <NUM_LIT:0> ] <EOL> f2 = ( <NUM_LIT:1> + x [ <NUM_LIT:1> ] ) / x [ <NUM_LIT:0> ] <EOL> return - array ( [ f1 , f2 ] ) <EOL> class ConstDeb ( MultiObjectiveFunction ) : <EOL> """<STR_LIT>""" <EOL> xdim = <NUM_LIT:2> <EOL> def __init__ ( self ) : <EOL> self . feasible = None <EOL> self . xbound = [ ] <EOL> self . xbound . append ( ( <NUM_LIT:0.1> , <NUM_LIT:1.0> ) ) <EOL> self . xbound . append ( ( <NUM_LIT:0.0> , <NUM_LIT> ) ) <EOL> self . constrained = True <EOL> def g ( self , x ) : <EOL> g1 = x [ <NUM_LIT:1> ] + <NUM_LIT> * x [ <NUM_LIT:0> ] - <NUM_LIT> <EOL> g2 = - x [ <NUM_LIT:1> ] + <NUM_LIT> * x [ <NUM_LIT:0> ] - <NUM_LIT:1.0> <EOL> if g1 >= <NUM_LIT:0> and g2 >= <NUM_LIT:0> : <EOL> return True , array ( [ <NUM_LIT:0.> , <NUM_LIT:0.> ] ) <EOL> return False , array ( [ g1 , g2 ] ) <EOL> def f ( self , x ) : <EOL> self . feasible , self . violation = self . g ( x ) <EOL> '''<STR_LIT>''' <EOL> MultiObjectiveFunction . feasible = self . feasible <EOL> MultiObjectiveFunction . violation = self . violation <EOL> f1 = x [ <NUM_LIT:0> ] <EOL> f2 = ( <NUM_LIT:1> + x [ <NUM_LIT:1> ] ) / x [ <NUM_LIT:0> ] <EOL> return - array ( [ f1 , f2 ] ) <EOL> class Pol ( MultiObjectiveFunction ) : <EOL> """<STR_LIT>""" <EOL> xdim = <NUM_LIT:2> <EOL> _A1 = <NUM_LIT:0.5> * sin ( <NUM_LIT:1> ) - <NUM_LIT:2> * cos ( <NUM_LIT:1> ) + sin ( <NUM_LIT:2> ) - <NUM_LIT> * cos ( <NUM_LIT:2> ) <EOL> _A2 = <NUM_LIT> * sin ( <NUM_LIT:1> ) - cos ( <NUM_LIT:1> ) + <NUM_LIT:2> * sin ( <NUM_LIT:2> ) - <NUM_LIT:0.5> * cos ( <NUM_LIT:2> ) <EOL> def __init__ ( self ) : <EOL> self . xbound = [ ] <EOL> self . xbound . append ( ( - pi , pi ) ) <EOL> self . xbound . append ( ( - pi , pi ) ) <EOL> self . constrained = False <EOL> def f ( self , x ) : <EOL> B1 = <NUM_LIT:0.5> * sin ( x [ <NUM_LIT:0> ] ) - <NUM_LIT:2> * cos ( x [ <NUM_LIT:0> ] ) + sin ( x [ <NUM_LIT:1> ] ) - <NUM_LIT> * cos ( x [ <NUM_LIT:1> ] ) <EOL> B2 = <NUM_LIT> * sin ( x [ <NUM_LIT:0> ] ) - cos ( x [ <NUM_LIT:0> ] ) + <NUM_LIT:2> * sin ( x [ <NUM_LIT:1> ] ) - <NUM_LIT:0.5> * cos ( x [ <NUM_LIT:1> ] ) <EOL> f1 = <NUM_LIT:1> + ( self . _A1 - B1 ) ** <NUM_LIT:2> + ( self . _A2 - B2 ) ** <NUM_LIT:2> <EOL> f2 = ( x [ <NUM_LIT:0> ] + <NUM_LIT:3> ) ** <NUM_LIT:2> + ( x [ <NUM_LIT:1> ] + <NUM_LIT:1> ) ** <NUM_LIT:2> <EOL> return - array ( [ f1 , f2 ] ) <EOL> class ConstSrn ( MultiObjectiveFunction ) : <EOL> """<STR_LIT>""" <EOL> xdim = <NUM_LIT:2> <EOL> def __init__ ( self ) : <EOL> self . feasible = None <EOL> self . xbound = [ ] <EOL> self . xbound . append ( ( - <NUM_LIT> , <NUM_LIT> ) ) <EOL> self . xbound . append ( ( - <NUM_LIT> , <NUM_LIT> ) ) <EOL> self . constrained = True <EOL> def g ( self , x ) : <EOL> g1 = <NUM_LIT> - ( x [ <NUM_LIT:1> ] ** <NUM_LIT:2> + x [ <NUM_LIT:0> ] ** <NUM_LIT:2> ) <EOL> g2 = <NUM_LIT:3> * x [ <NUM_LIT:1> ] - x [ <NUM_LIT:0> ] - <NUM_LIT> <EOL> if g1 >= <NUM_LIT:0> and g2 >= <NUM_LIT:0> : <EOL> return True , array ( [ <NUM_LIT:0.> , <NUM_LIT:0.> ] ) <EOL> return False , array ( [ g1 , g2 ] ) <EOL> def f ( self , x ) : <EOL> self . feasible , self . violation = self . g ( x ) <EOL> MultiObjectiveFunction . feasible = self . feasible <EOL> MultiObjectiveFunction . violation = self . violation <EOL> f1 = <NUM_LIT:2> + ( x [ <NUM_LIT:0> ] - <NUM_LIT:2> ) ** <NUM_LIT:2> + ( x [ <NUM_LIT:1> ] - <NUM_LIT:1> ) ** <NUM_LIT:2> <EOL> f2 = <NUM_LIT:9> * x [ <NUM_LIT:0> ] - ( x [ <NUM_LIT:1> ] - <NUM_LIT:1> ) ** <NUM_LIT:2> <EOL> return - array ( [ f1 , f2 ] ) <EOL> class ConstOsy ( MultiObjectiveFunction ) : <EOL> """<STR_LIT>""" <EOL> xdim = <NUM_LIT:6> <EOL> def __init__ ( self ) : <EOL> self . feasible = None <EOL> self . xbound = [ ] <EOL> self . xbound . append ( ( <NUM_LIT:0.0> , <NUM_LIT> ) ) <EOL> self . xbound . append ( ( <NUM_LIT:0.0> , <NUM_LIT> ) ) <EOL> self . xbound . append ( ( <NUM_LIT:1.0> , <NUM_LIT> ) ) <EOL> self . xbound . append ( ( <NUM_LIT:0.0> , <NUM_LIT> ) ) <EOL> self . xbound . append ( ( <NUM_LIT:1.0> , <NUM_LIT> ) ) <EOL> self . xbound . append ( ( <NUM_LIT:0.0> , <NUM_LIT> ) ) <EOL> self . constrained = True <EOL> def g ( self , x ) : <EOL> g1 = x [ <NUM_LIT:0> ] + x [ <NUM_LIT:1> ] - <NUM_LIT> <EOL> g2 = <NUM_LIT> - x [ <NUM_LIT:0> ] - x [ <NUM_LIT:1> ] <EOL> g3 = <NUM_LIT> - x [ <NUM_LIT:1> ] + x [ <NUM_LIT:0> ] <EOL> g4 = <NUM_LIT:1.0> - x [ <NUM_LIT:0> ] + <NUM_LIT> * x [ <NUM_LIT:1> ] <EOL> g5 = <NUM_LIT> - ( x [ <NUM_LIT:2> ] - <NUM_LIT:3> ) ** <NUM_LIT:2> - x [ <NUM_LIT:3> ] <EOL> g6 = ( x [ <NUM_LIT:4> ] - <NUM_LIT:3> ) ** <NUM_LIT:2> + x [ <NUM_LIT:5> ] - <NUM_LIT> <EOL> if g1 >= <NUM_LIT:0> and g2 >= <NUM_LIT:0> and g3 >= <NUM_LIT:0> and g4 >= <NUM_LIT:0> and g5 >= <NUM_LIT:0> and g6 >= <NUM_LIT:0> : <EOL> return True , array ( [ <NUM_LIT:0.> , <NUM_LIT:0.> ] ) <EOL> return False , array ( [ g1 , g2 , g3 , g4 , g5 , g6 ] ) <EOL> def f ( self , x ) : <EOL> self . feasible , self . violation = self . g ( x ) <EOL> MultiObjectiveFunction . feasible = self . feasible <EOL> MultiObjectiveFunction . violation = self . violation <EOL> f1 = - ( <NUM_LIT> * ( x [ <NUM_LIT:0> ] - <NUM_LIT> ) ** <NUM_LIT:2> + ( x [ <NUM_LIT:1> ] - <NUM_LIT> ) ** <NUM_LIT:2> + ( x [ <NUM_LIT:2> ] - <NUM_LIT:1.0> ) ** <NUM_LIT:2> + ( x [ <NUM_LIT:3> ] - <NUM_LIT> ) ** <NUM_LIT:2> + ( x [ <NUM_LIT:4> ] - <NUM_LIT:1.0> ) ** <NUM_LIT:2> ) <EOL> f2 = x [ <NUM_LIT:0> ] ** <NUM_LIT:2> + x [ <NUM_LIT:1> ] ** <NUM_LIT:2> + x [ <NUM_LIT:2> ] ** <NUM_LIT:2> + x [ <NUM_LIT:3> ] ** <NUM_LIT:2> + x [ <NUM_LIT:4> ] ** <NUM_LIT:2> + x [ <NUM_LIT:5> ] ** <NUM_LIT:2> <EOL> return - array ( [ f1 , f2 ] ) <EOL> class ConstTnk ( MultiObjectiveFunction ) : <EOL> """<STR_LIT>""" <EOL> xdim = <NUM_LIT:2> <EOL> def __init__ ( self ) : <EOL> self . feasible = None <EOL> self . xbound = [ ] <EOL> self . xbound . append ( ( <NUM_LIT:0.0> , pi ) ) <EOL> self . xbound . append ( ( <NUM_LIT:0.0> , pi ) ) <EOL> self . constrained = True <EOL> def g ( self , x ) : <EOL> if x [ <NUM_LIT:1> ] == <NUM_LIT:0.0> : <EOL> A = pi / <NUM_LIT> <EOL> else : <EOL> A = arctan ( x [ <NUM_LIT:0> ] / x [ <NUM_LIT:1> ] ) <EOL> g1 = x [ <NUM_LIT:1> ] ** <NUM_LIT:2> + x [ <NUM_LIT:0> ] ** <NUM_LIT:2> - <NUM_LIT:1.0> - <NUM_LIT:0.1> * cos ( <NUM_LIT> * A ) <EOL> g2 = <NUM_LIT:0.5> - ( x [ <NUM_LIT:0> ] - <NUM_LIT:0.5> ) ** <NUM_LIT:2> - ( x [ <NUM_LIT:1> ] - <NUM_LIT:0.5> ) ** <NUM_LIT:2> <EOL> if g1 >= <NUM_LIT:0> and g2 >= <NUM_LIT:0> : <EOL> return True , array ( [ <NUM_LIT:0.> , <NUM_LIT:0.> ] ) <EOL> return False , array ( [ g1 , g2 ] ) <EOL> def f ( self , x ) : <EOL> self . feasible , self . violation = self . g ( x ) <EOL> MultiObjectiveFunction . feasible = self . feasible <EOL> MultiObjectiveFunction . violation = self . violation <EOL> f1 = x [ <NUM_LIT:0> ] <EOL> f2 = x [ <NUM_LIT:1> ] <EOL> return - array ( [ f1 , f2 ] ) <EOL> class ConstBnh ( MultiObjectiveFunction ) : <EOL> """<STR_LIT>""" <EOL> xdim = <NUM_LIT:2> <EOL> def __init__ ( self ) : <EOL> self . feasible = None <EOL> self . xbound = [ ] <EOL> self . xbound . append ( ( <NUM_LIT:0.0> , <NUM_LIT> ) ) <EOL> self . xbound . append ( ( <NUM_LIT:0.0> , <NUM_LIT> ) ) <EOL> self . constrained = True <EOL> def g ( self , x ) : <EOL> g1 = <NUM_LIT> - ( x [ <NUM_LIT:0> ] - <NUM_LIT> ) ** <NUM_LIT:2> - x [ <NUM_LIT:1> ] ** <NUM_LIT:2> <EOL> g2 = ( x [ <NUM_LIT:0> ] - <NUM_LIT> ) ** <NUM_LIT:2> + ( x [ <NUM_LIT:1> ] + <NUM_LIT> ) ** <NUM_LIT:2> - <NUM_LIT> <EOL> if g1 >= <NUM_LIT:0> and g2 >= <NUM_LIT:0> : <EOL> return True , array ( [ <NUM_LIT:0.> , <NUM_LIT:0.> ] ) <EOL> return False , array ( [ g1 , g2 ] ) <EOL> def f ( self , x ) : <EOL> self . feasible , self . violation = self . g ( x ) <EOL> MultiObjectiveFunction . feasible = self . feasible <EOL> MultiObjectiveFunction . violation = self . violation <EOL> f1 = <NUM_LIT:4> * x [ <NUM_LIT:0> ] ** <NUM_LIT:2> + <NUM_LIT:4> * x [ <NUM_LIT:1> ] ** <NUM_LIT:2> <EOL> f2 = ( x [ <NUM_LIT:0> ] - <NUM_LIT:5> ) ** <NUM_LIT:2> + ( x [ <NUM_LIT:1> ] - <NUM_LIT:5> ) ** <NUM_LIT:2> <EOL> return - array ( [ f1 , f2 ] ) </s>
