Esempio n. 1
0
def addpoints(xk, fxk, D, Y2, krig, index, theta, delta, pmax, opt_theta):
    points = krig.points
    # index(find(index=-1,1)) = length(fvals) + 1
    # hard code WARNING
    point = Point(2)
    point.x = xk.x
    point.fval = fxk
    points.append(point)
    Y2_0 = Y2
    index_0 = index
    
    if opt_theta:
        raise AssertionError("Optimization of hyperparameters not implemented.")

    else:
        ntest = 0
        psi = 1.0
        thetagauss = krig.params[0]


    L = []
    Y2 = Y2_0
    index = index_0

    return krig
Esempio n. 2
0
def rbfmodel(objective, fid, xk, fxk, krig, theta_1, theta_2, theta_3, theta_4, \
                 delta, deltamax, pmax, optTheta):
    deltamax = delta
    D = krig.points
    Y2, linear, Z, index = affpoints(xk, D, theta_1, theta_3*delta)
    if not linear:
        Z = Z*delta
        for i in range(len(Z[0,:])):
            # Hard code alert
            point = Point(2)
            point.x = xk.x + Z.view(np.ndarray)[:,i]
            Y2.append(point)
            D.append(point)
            f_high = objective(point, fid[1])
            point.fval = f_high - objective(point, fid[0])
            krig.points.append(point)
            index.append(len(krig.points)-1)
        linear = True

    krig = addpoints(xk, fxk[1]-fxk[0], D, Y2, krig, index, theta_2, theta_4*deltamax, pmax, optTheta)

    return krig, linear
Esempio n. 3
0
    def init_models(self):
        if self.LHS == 0:
            point = Point(self.n)
            point.x = np.array([-2.0, 2.0])
            f_low = self.objective(point, self.fid[0])
            f_high = self.objective(point, self.fid[1])
            point.fval = f_high - f_low
            self.low_fid_eval += 1
        elif self.LHS == 1:
            raise AssertionError("Latin hypercube not implemented. Set LHS = 0")
        else:
            raise AssertionError("LHS can be either 1 or 0")

        krig = Kriging(self.corr, self.params, [point])
        print point.fval
        xk = point
        fk = f_high
        f_low = f_low
        mk = f_high
        delta = self.delta_0
        krig, linear = rbfmodel(self.objective, self.fid, xk, [f_low, fk], krig,\
                                    self.theta_1, self.theta_2, self.theta_3, self.theta_4,\
                                    delta, self.delta_max, self.pmax, self.optTheta)