(self, x, rot=0, xoffset=0, cond=1e6, actuator_noise=0.0, both=False)
Ellipsoid test objective function
Ellipsoid test objective function
Ellipsoid test objective function
def elli(self, x, rot=0, xoffset=0, cond=1e6, actuator_noise=0.0, both=False):
        """Ellipsoid test objective function"""
        if not np.isscalar(x[0]):  # parallel evaluation
            return [self.elli(xi, rot) for xi in x]  # could save 20% overall
        if rot:
            x = rotate(x)
        N = len(x)
        if actuator_noise:
            x = x + actuator_noise * np.random.randn(N)

        ftrue = sum(cond**(np.arange(N)/(N-1.))*(x+xoffset)**2)

        alpha = 0.49 + 1./N
        beta = 1
        felli = np.random.rand(1)[0]**beta * ftrue * \
                max(1, (10.**9 / (ftrue+1e-99))**(alpha*np.random.rand(1)[0]))
        # felli = ftrue + 1*np.random.randn(1)[0] / (1e-30 +
        #                                           np.abs(np.random.randn(1)[0]))**0
        if both:
            return (felli, ftrue)
        else:
            # return felli  # possibly noisy value
            return ftrue # + np.random.randn()
def elli ( self , x , rot = 0 , xoffset = 0 , cond = 1e6 , actuator_noise = 0.0 , both = False ) : if not np . isscalar ( x [ 0 ] ) : # parallel evaluation return [ self . elli ( xi , rot ) for xi in x ] # could save 20% overall if rot : x = rotate ( x ) N = len ( x ) if actuator_noise : x = x + actuator_noise * np . random . randn ( N ) ftrue = sum ( cond ** ( np . arange ( N ) / ( N - 1. ) ) * ( x + xoffset ) ** 2 ) alpha = 0.49 + 1. / N beta = 1 felli = np . random . rand ( 1 ) [ 0 ] ** beta * ftrue * max ( 1 , ( 10. ** 9 / ( ftrue + 1e-99 ) ) ** ( alpha * np . random . rand ( 1 ) [ 0 ] ) ) # felli = ftrue + 1*np.random.randn(1)[0] / (1e-30 + #                                           np.abs(np.random.randn(1)[0]))**0 if both : return ( felli , ftrue ) else : # return felli  # possibly noisy value return ftrue # + np.random.randn()