Exemple #1
0
def PESFS(ojf, lb, ub, ki, s, b, fname):
    overridemaxsteps = 200
    sp.random.seed(int(os.urandom(4).encode('hex'), 16))
    para = dict()
    para['kindex'] = ki[0]
    para['mprior'] = ki[1]
    para['sprior'] = ki[2]
    para['s'] = s
    para['ninit'] = 10
    para['volper'] = 1e-6
    para['DH_SAMPLES'] = 12
    para['DM_SAMPLES'] = 12
    para['DM_SUPPORT'] = 2000
    para['DM_SLICELCBPARA'] = 20.
    para['SUPPORT_MODE'] = [ESutils.SUPPORT_UNIFORM, ESutils.SUPPORT_LAPAPR]
    if os.path.exists(fname):
        print "starting from " + str(fname)
        OE = OPTutils.PESFS(ojf,
                            lb,
                            ub,
                            para,
                            initstate=pickle.load(open(fname, 'rb')))
    else:
        print "fresh start"
        OE = OPTutils.PESFS(ojf, lb, ub, para)
    if sum(OE.C) >= b:
        print "no further steps needed"
        k = 0
        while sum(OE.C[:k]) < b:

            k += 1
        print "used {0} of {1} eval budget".format(sum(OE.C), b)
        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 and len(OE.C) < overridemaxsteps:
            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
        ]
        pickle.dump(state, open(fname, 'wb'))
    return state
Exemple #2
0
lb = sp.array([[-1.] * d])
ub = sp.array([[1.] * d])
[ojf, truexmin] = [lambda x, s, d: [-1., -1.], None]

para = dict()
para['kindex'] = GPdc.SQUEXP
para['mprior'] = sp.array([0.] + [-1.] * d)
para['sprior'] = sp.array([1.] * (d + 1))
para['s'] = 1e-6
para['ninit'] = 10
#para['maxf'] = 2500
para['volper'] = 1e-6
para['DH_SAMPLES'] = 8
para['DM_SAMPLES'] = 8
para['DM_SUPPORT'] = 400
para['DM_SLICELCBPARA'] = 0.025
para['SUPPORT_MODE'] = ESutils.SUPPORT_SLICEPM
OP = OPTutils.PESFS(ojf, lb, ub, para)

import pickle
[OP.X, OP.Y, OP.S, OP.D, OP.R, OP.C, OP.T, OP.Tr,
 OP.Ymin] = pickle.load(open('state.p', 'rb'))

OP.pcs()
#OP.step()
plt.figure(1)
#plt.plot(OP.R[-1,0],OP.R[-1,1],'r.')
plt.plot(OP.X[:, 0], OP.X[:, 1], 'b.')

plt.show()
Exemple #3
0
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
para['DH_SAMPLES'] = 8
para['DM_SAMPLES'] = 8
para['DM_SUPPORT'] = 1200
para['DM_SLICELCBPARA'] = 1.
para['SUPPORT_MODE'] = [ESutils.SUPPORT_SLICELCB,ESutils.SUPPORT_SLICEPM]

OP = OPTutils.PESFS(ojf,lb,ub,para,initstate=copy.deepcopy(initstate))
#[OP.X,OP.Y,OP.S,OP.D,OP.R,OP.C,OP.T,OP.Tr,OP.Ymin,OP.Xmin,OP.Yreg,OP.Rreg] = copy.deepcopy(initstate)
for i in tqdm_gui(xrange(runn),gui=True):
    
    state = [OP.X,OP.Y,OP.S,OP.D,OP.R,OP.C,OP.T,OP.Tr,OP.Ymin]
    try:
        pass
        #OP.step()
    except:
        import pickle
        pickle.dump(state,open('state.p','wb'))
        raise
        
    OE.step()
    O.step()
    #OL.step()