Esempio n. 1
0
def MLEFS(ojf, lb, ub, ki, s, b, fname):
    #use kernel ki and evaluate ojf with variance s at step for a budget b
    sp.random.seed(int(os.urandom(4).encode('hex'), 16))
    d = lb.size
    volper = 1e-8
    ninit = 10
    para = [ki[0], ki[1], ki[2], volper, s, ninit]
    if os.path.exists(fname):
        print "starting from " + str(fname)
        OE = OPTutils.EIMLE(ojf,
                            lb,
                            ub,
                            para,
                            initstate=pickle.load(open(fname, 'rb')))
    else:
        print "fresh start"
        OE = OPTutils.EIMLE(ojf, lb, ub, para)
    if sum(OE.C) >= b:
        print "no further steps needed"
        k = 0
        while sum(OE.C[:k]) < b:
            k += 1
        state = [
            OE.X[:k, :], OE.Y[:k, :], OE.S[:k, :], OE.D[:k], OE.R[:k, :],
            OE.C[:k], OE.T[:k], OE.Tr[:k], OE.Ymin[:k], OE.Xmin[:k, :],
            OE.Yreg[:k, :], OE.Rreg[:k, :]
        ]
    else:
        while sum(OE.C) < b:
            print "used {0} of {1} eval budget".format(sum(OE.C), b)
            OE.step()
        state = [
            OE.X, OE.Y, OE.S, OE.D, OE.R, OE.C, OE.T, OE.Tr, OE.Ymin, OE.Xmin,
            OE.Yreg, OE.Rreg
        ]
        print "saving as " + str(fname)
        pickle.dump(state, open(fname, 'wb'))
    return state
Esempio n. 2
0
[ojf, truexmin, trueymin] = OPTutils.gensquexpdraw(d, sp.array([-1.] * d),
                                                   sp.array([1.] * d))

kindex = GPdc.SQUEXP

mprior = sp.array([0.] + [-1.] * d)
sprior = sp.array([1.] * (d + 1))
maxf = 4000
volper = 1e-7
s = 1e-5
ninit = 10

#para = [kindex,hlb,hub,maxf,s,ninit]
para = [kindex, mprior, sprior, volper, s, ninit]

OE = OPTutils.EIMLE(ojf, lb, ub, para)

para = dict()
para['kindex'] = GPdc.SQUEXP
para['mprior'] = sp.array([0.] + [-1.] * d)
para['sprior'] = sp.array([1.] * (d + 1))
para['s'] = 1e-2
para['ninit'] = 10
#para['maxf'] = 2500
para['volper'] = 1e-7
para['DH_SAMPLES'] = 8
para['DM_SAMPLES'] = 8
para['DM_SUPPORT'] = 800
para['DM_SLICELCBPARA'] = 1.
para['SUPPORT_MODE'] = [ESutils.SUPPORT_SLICELCB, ESutils.SUPPORT_SLICEPM]
para['cfn'] = lambda x, s: ((1e-6) / s)**0.2
Esempio n. 3
0
#trueymin=0.
O = OPTutils.opt(ojf,lb,ub)
for i in tqdm(xrange(10)):
    O.step()
initstate = copy.deepcopy([O.X,O.Y,O.S,O.D,O.R,O.C,O.T,O.Tr,O.Ymin,O.Xmin,O.Yreg,O.Rreg])

    
kindex = GPdc.MAT52
mprior = sp.array([0.]+[-1.]*d)
sprior = sp.array([1.]*(d+1))
volper=1e-8
s = 1e-9
ninit = 10
para = [kindex,mprior,sprior,volper,s,ninit]

OE = OPTutils.EIMLE(ojf,lb,ub,para,initstate=copy.deepcopy(initstate))
#OL = OPTutils.LCBMLE(ojf,lb,ub,para)
#[OL.X,OL.Y,OL.S,OL.D,OL.R,OL.C,OL.T,OL.Tr,OL.Ymin] = initstate
#[OE.X,OE.Y,OE.S,OE.D,OE.R,OE.C,OE.T,OE.Tr,OE.Ymin,OE.Xmin,OE.Yreg,OE.Rreg] = copy.deepcopy(initstate)




para = dict()
para['kindex'] = GPdc.MAT52
para['mprior'] = sp.array([0.]+[-1.]*d)
para['sprior'] = sp.array([1.]*(d+1))
para['s'] = 1e-9
para['ninit'] = 10
#para['maxf'] = 2500
para['volper'] = 1e-6