def gensquexpIPdraw(d,lb,ub,sl,su,sfn,sls,cfn): #axis = 0 value = sl #d dimensional objective +1 for s nt=25 #print sp.hstack([sp.array([[sl]]),lb]) #print sp.hstack([sp.array([[su]]),ub]) [X,Y,S,D] = ESutils.gen_dataset(nt,d+1,sp.hstack([sp.array([[sl]]),lb]).flatten(),sp.hstack([sp.array([[su]]),ub]).flatten(),GPdc.SQUEXP,sp.array([1.5]+[sls]+[0.30]*d)) G = GPdc.GPcore(X,Y,S,D,GPdc.kernel(GPdc.SQUEXP,d+1,sp.array([1.5]+[sls]+[0.30]*d))) def obj(x,s,d,override=False): x = x.flatten() if sfn(x)==0. or override: noise = 0. else: noise = sp.random.normal(scale=sp.sqrt(sfn(x))) return [G.infer_m(x,[d])[0,0]+noise,cfn(x)] def dirwrap(x,y): z = obj(sp.array([[sl]+[i for i in x]]),sl,[sp.NaN],override=True) return (z,0) [xmin0,ymin0,ierror] = DIRECT.solve(dirwrap,lb,ub,user_data=[], algmethod=1, maxf=89000, logfilename='/dev/null') lb2 = xmin0-sp.ones(d)*1e-4 ub2 = xmin0+sp.ones(d)*1e-4 [xmin,ymin,ierror] = DIRECT.solve(dirwrap,lb2,ub2,user_data=[], algmethod=1, maxf=89000, logfilename='/dev/null') #print "RRRRR"+str([xmin0,xmin,ymin0,ymin,xmin0-xmin,ymin0-ymin]) return [obj,xmin,ymin]
def gensquexpdraw(d, lb, ub, ignores=-1): nt = 14 [X, Y, S, D] = ESutils.gen_dataset(nt, d, lb, ub, GPdc.SQUEXP, sp.array([1.5] + [0.30] * d)) G = GPdc.GPcore(X, Y, S, D, GPdc.kernel(GPdc.SQUEXP, d, sp.array([1.5] + [0.30] * d))) def obj(x, s, d, override=False): #print [x,s,d] if ignores > 0: s = ignores if s == 0. or override: noise = 0. else: noise = sp.random.normal(scale=sp.sqrt(s)) print "EVAL WITH NOISE: " + str(noise) + "FROM S= " + str(s) return [G.infer_m(x, [d])[0, 0] + noise, 1.] def dirwrap(x, y): z = G.infer_m(x, [[sp.NaN]])[0, 0] #z = obj(x,0.,[sp.NaN]) return (z, 0) [xmin, ymin, ierror] = DIRECT.solve(dirwrap, lb, ub, user_data=[], algmethod=1, maxf=89000, logfilename='/dev/null') return [obj, xmin, ymin]
def gensquexpIPdraw(d, lb, ub, sl, su, sfn, sls, cfn): #axis = 0 value = sl #d dimensional objective +1 for s nt = 25 #print sp.hstack([sp.array([[sl]]),lb]) #print sp.hstack([sp.array([[su]]),ub]) [X, Y, S, D] = ESutils.gen_dataset(nt, d + 1, sp.hstack([sp.array([[sl]]), lb]).flatten(), sp.hstack([sp.array([[su]]), ub]).flatten(), GPdc.SQUEXP, sp.array([1.5] + [sls] + [0.30] * d)) G = GPdc.GPcore( X, Y, S, D, GPdc.kernel(GPdc.SQUEXP, d + 1, sp.array([1.5] + [sls] + [0.30] * d))) def obj(x, s, d, override=False): x = x.flatten() if sfn(x) == 0. or override: noise = 0. else: noise = sp.random.normal(scale=sp.sqrt(sfn(x))) return [G.infer_m(x, [d])[0, 0] + noise, cfn(x)] def dirwrap(x, y): z = obj(sp.array([[sl] + [i for i in x]]), sl, [sp.NaN], override=True) return (z, 0) [xmin0, ymin0, ierror] = DIRECT.solve(dirwrap, lb, ub, user_data=[], algmethod=1, maxf=89000, logfilename='/dev/null') lb2 = xmin0 - sp.ones(d) * 1e-4 ub2 = xmin0 + sp.ones(d) * 1e-4 [xmin, ymin, ierror] = DIRECT.solve(dirwrap, lb2, ub2, user_data=[], algmethod=1, maxf=89000, logfilename='/dev/null') #print "RRRRR"+str([xmin0,xmin,ymin0,ymin,xmin0-xmin,ymin0-ymin]) return [obj, xmin, ymin]
def makedata(self, n, d, ki, hy, lb, ub): self.n = n self.d = d self.ki = ki self.hy = hy self.nhy = hy.size self.lb = lb self.ub = ub t0 = time.time() [X, Y, S, D] = ESutils.gen_dataset(n, d, lb, ub, ki, hy, s=hy[-1]) t1 = time.time() print "Setuptime: " + str(t1 - t0) S = sp.zeros(S.shape) self.X = X self.Y = Y self.S = S self.D = D return
def makedata(self,n,d,ki,hy,lb,ub): self.n=n self.d=d self.ki=ki self.hy=hy self.nhy = hy.size self.lb=lb self.ub=ub t0 = time.time() [X,Y,S,D] = ESutils.gen_dataset(n,d,lb,ub,ki,hy,s=hy[-1]) t1 = time.time() print "Setuptime: "+str(t1-t0) S = sp.zeros(S.shape) self.X=X self.Y=Y self.S=S self.D=D return
def gensquexpdraw(d,lb,ub,ignores=-1): nt=14 [X,Y,S,D] = ESutils.gen_dataset(nt,d,lb,ub,GPdc.SQUEXP,sp.array([1.5]+[0.30]*d)) G = GPdc.GPcore(X,Y,S,D,GPdc.kernel(GPdc.SQUEXP,d,sp.array([1.5]+[0.30]*d))) def obj(x,s,d,override=False): #print [x,s,d] if ignores>0: s=ignores if s==0. or override: noise = 0. else: noise = sp.random.normal(scale=sp.sqrt(s)) print "EVAL WITH NOISE: "+str(noise) + "FROM S= "+str(s) return [G.infer_m(x,[d])[0,0]+noise,1.] def dirwrap(x,y): z = G.infer_m(x,[[sp.NaN]])[0,0] #z = obj(x,0.,[sp.NaN]) return (z,0) [xmin,ymin,ierror] = DIRECT.solve(dirwrap,lb,ub,user_data=[], algmethod=1, maxf=89000, logfilename='/dev/null') return [obj,xmin,ymin]
import ESutils import scipy as sp from scipy import linalg as spl from scipy import stats as sps from matplotlib import pyplot as plt import GPdc import PES #------------------------------------------------------------------------- #2d nt = 30 d = 2 lb = sp.array([-1.] * d) ub = sp.array([1.] * d) [X, Y, S, D] = ESutils.gen_dataset(nt, d, lb, ub, GPdc.SQUEXP, sp.array([1.5, 0.35, 0.30])) kindex = GPdc.SQUEXP mprior = sp.array([0.] + [-1.] * d) sprior = sp.array([1.] * (d + 1)) pesobj = PES.PES(X, Y, S, D, lb, ub, kindex, mprior, sprior, DH_SAMPLES=8,
from scipy import stats as sps from scipy import linalg as spl import scipy as sp from matplotlib import pyplot as plt import ESutils import GPdc nt = 22 d = 1 lb = sp.array([-1.] * d) ub = sp.array([1.] * d) [X, Y, S, D] = ESutils.gen_dataset(nt, d, lb, ub, GPdc.SQUEXP, sp.array([0.9, 0.25]), s=1e-8) S *= 0. f0 = plt.figure() a0 = plt.subplot(111) a0.plot(sp.array(X[:, 0]).flatten(), Y, 'g.') lb = sp.array([-2., -2., -9]) ub = sp.array([2., 2., -1]) MLEH = GPdc.searchMLEhyp(X, Y, S, D, lb, ub, GPdc.SQUEXPCS, mx=10000) mprior = sp.array([0., -1., -5.]) sprior = sp.array([1., 1., 3.])
import scipy as sp from scipy import linalg as spl from matplotlib import pyplot as plt import GPdc import OPTutils import ESutils import DIRECT #base dimension d = 2 kindex = GPdc.MAT52 nt = 34 lb = sp.array([0.] + [-1.] * d) ub = sp.array([5.] + [1.] * d) Htrue = sp.array([1.4, 4.] + [0.25] * d) [X, Y, S, D] = ESutils.gen_dataset(nt, d + 1, lb, ub, kindex, Htrue, s=1e-8) G = GPdc.GPcore(X, Y, S, D, GPdc.kernel(kindex, d + 1, Htrue)) def ojfaugnn(x): return G.infer_m(x, [[sp.NaN]])[0, 0] def opt_ip(s): def dwrap(x, y): X = sp.hstack([[s], x]) return (ojfaugnn(X), 0) [xm, ym, ierror] = DIRECT.solve(dwrap, lb[1:], ub[1:],
import ESutils import scipy as sp from scipy import linalg as spl from scipy import stats as sps from matplotlib import pyplot as plt import GPdc import PES #------------------------------------------------------------------------- #2d nt=30 d=2 lb = sp.array([0.]+[-1.]*(d-1)) ub = sp.array([1.]*d) [X,Y,S,D] = ESutils.gen_dataset(nt,d,lb,ub,GPdc.SQUEXP,sp.array([1.5,0.55,0.25])) kindex = GPdc.SQUEXP mprior = sp.array([0.]+[-1.]*d) sprior = sp.array([1.]*(d+1)) axis=0 value=0. pesobj = PES.PES_inplane(X,Y,S,D,lb,ub,kindex,mprior,sprior,axis,value,DH_SAMPLES=8,DM_SAMPLES=8, DM_SUPPORT=400,DM_SLICELCBPARA=1.,AM_POLICY=PES.NOMIN,mode=ESutils.SUPPORT_SLICEEI) def cfn(x): return 1.-(0.6*x[0])**0.1 def sfn(x): return 1e-4 [xmin,ymin,ierror] = pesobj.search_acq(cfn,sfn)
# To change this license header, choose License Headers in Project Properties. # To change this template file, choose Tools | Templates # and open the template in the editor. from scipy import stats as sps from scipy import linalg as spl import scipy as sp from matplotlib import pyplot as plt import ESutils import GPdc nt=80 d=1 lb = sp.array([-1.]*d) ub = sp.array([1.]*d) [X,Y,S,D] = ESutils.gen_dataset(nt,d,lb,ub,GPdc.SQUEXP,sp.array([0.9,0.25]),s=0.) S*=0. for i in xrange(nt): x = X[i,0] s = -(1e-2)*(x-1.)*(x+1.1) Y[i,0]+= sps.norm.rvs(0,sp.sqrt(s)) f0 = plt.figure() a0 = plt.subplot(111) a0.plot(sp.array(X[:,0]).flatten(),Y,'g.') lb = sp.array([-2.,-2.,-9,-2.,-2.]) ub = sp.array([2.,2.,-1,2.,2.]) MLEH = GPdc.searchMLEhyp(X,Y,S,D,lb,ub,GPdc.SQUEXPPS,mx=20000) mprior = sp.array([0.,-1.,-5.,-0.5,0.5])
import scipy as sp from scipy import linalg as spl from matplotlib import pyplot as plt import GPdc import OPTutils import ESutils import DIRECT #base dimension d = 2 kindex = GPdc.MAT52 nt = 34 lb = sp.array([0.]+[-1.]*d) ub = sp.array([5.]+[1.]*d) Htrue = sp.array([1.4,4.]+[0.25]*d) [X,Y,S,D] = ESutils.gen_dataset(nt,d+1,lb,ub,kindex,Htrue, s=1e-8) G = GPdc.GPcore(X,Y,S,D,GPdc.kernel(kindex,d+1,Htrue)) def ojfaugnn(x): return G.infer_m(x,[[sp.NaN]])[0,0] def opt_ip(s): def dwrap(x,y): X = sp.hstack([[s],x]) return (ojfaugnn(X),0) [xm,ym,ierror] = DIRECT.solve(dwrap,lb[1:],ub[1:], user_data=[], algmethod=1, maxf=12000, logfilename='/dev/null') print "DIRECT found: " +str([xm,ym,ierror]) return xm mintrue = opt_ip(0.) minaug = sp.hstack([[0.],mintrue])
# To change this license header, choose License Headers in Project Properties. # To change this template file, choose Tools | Templates # and open the template in the editor. import scipy as sp from scipy import linalg as spl from scipy import stats as sps from matplotlib import pyplot as plt import GPdc import ESutils nt=2 d=1 lb = sp.array([-1.]) ub = sp.array([1.]) [X,Y,S,D] = ESutils.gen_dataset(nt,d,lb,ub,GPdc.SQUEXP,sp.array([1.5,0.35]),s=1e-3) g = GPdc.GPcore(X,Y,S,D,GPdc.kernel(GPdc.SQUEXP,1,sp.array([1.5,0.35]))) np=100 sup = sp.linspace(-1,1,np) Dp = [[sp.NaN]]*np Xp = sp.vstack([sp.array([i]) for i in sup]) [m,V] = g.infer_diag_post(Xp,Dp) f,a = plt.subplots(3) s = sp.sqrt(V[0,:]) a[0].fill_between(sup,sp.array(m[0,:]-2.*s).flatten(),sp.array(m[0,:]+2.*s).flatten(),facecolor='lightblue',edgecolor='lightblue') a[0].plot(sup,m[0,:].flatten()) a[0].plot(sp.array(X[:,0]).flatten(),Y,'g.')