## function to output design with lowest fmin for scale= scale0 and n = end
fl <- function(scale0, end){
dat <- out[out[,2] == scale0, end]
if(length(dat) < 6){return("NA")}
op <- c("dist_beta", "maximin", "LHS", "random", "lhsbeta1", "lhsbeta2")[rank(dat) == 1]
return(op)
}
## paired t-test
pairt <- function(design1, design2, clm){
out$design <- as.character(out$design)
sp1 <- out[out$design == design1, clm + 2]
sp2 <- out[out$design == design2, clm + 2]
return(t.test(log(sp1), log(sp2), alternative = "less", paired = T)$p.value)
}
#pairt("maximin", "dist_beta",30)
2-D
load("/home/boyazhang/repos/unifdist/code/optim_ei_2d_prl.RData")
out <- out[,c(c(ncol(out), ncol(out)-1), 1:(ncol(out)-2))]
scales <- unique(out[,2])
par(mfcol = c(2,2))
boxplot(log(out[,17]) ~out$design, main = paste("2d, ninit = 8, 10*sqrt(m), no-update, fmin after", 15, "searches"))
boxplot(log(out[,27]) ~out$design, main = paste("2d, ninit = 8, 10*sqrt(m), no-update, fmin after", 25, "searches"))
boxplot(log(out[,72]) ~out$design, main = paste("2d, ninit = 8, 10*sqrt(m), no-update, fmin after", 70, "searches"))
boxplot(log(out[,102]) ~out$design, main = paste("2d, ninit = 8, 10*sqrt(m), no-update, fmin after", 100, "searches"))

## lowest designs for all scales after 30, 50, 100, 200 searches
search_num <- c(15,25,70,100)
tb <- data.frame(dist_beta = rep(NA, 4), maximin= rep(NA, 4), LHS= rep(NA, 4), random= rep(NA, 4), lhsbeta1= rep(NA, 4), lhsbeta2= rep(NA, 4))
tb <- cbind(search_num, tb)
bestdsn <- rep(NA, length(scales))
for( j in 1:length(search_num)){
for( i in 1:length(scales)){
bestdsn[i] <- fl(scales[i], search_num[j])}
tb[j, 2:7] <- table(bestdsn)
}
# ## paired-t test pval table
# pvtb <- list()
# for( j in 1:4){
# ntb <- tb[j,-1]
# pvtb[[j]] <- data.frame(dist_beta = NA, maximin= NA, LHS= NA, random= NA, lhsbeta1= NA, lhsbeta2= NA)
# names(pvtb[[j]]) <- names(sort(ntb, decreasing = T))
# for( i in 1:5)
# { d1 <- names(ntb)[rank(ntb, ties.method = "first") == 7-i]
# d2 <- names(ntb)[rank(ntb, ties.method = "first") == 6-i]
# pvtb[[j]][,i] <- pairt(d1, d2, tb[j,1])
# }
# }
p-val matrix
2d: 15 searches
|
dist_beta
|
maximin
|
LHS
|
random
|
lhsbeta1
|
lhsbeta2
|
dist_beta
|
NaN
|
0.9979211
|
0.8028183
|
0.0498150
|
1.0000000
|
1.0000000
|
maximin
|
0.0020789
|
NaN
|
0.0161530
|
0.0000027
|
0.9967392
|
0.9998952
|
LHS
|
0.1971817
|
0.9838470
|
NaN
|
0.0047756
|
0.9999997
|
1.0000000
|
random
|
0.9501850
|
0.9999973
|
0.9952244
|
NaN
|
1.0000000
|
1.0000000
|
lhsbeta1
|
0.0000000
|
0.0032608
|
0.0000003
|
0.0000000
|
NaN
|
0.8857774
|
lhsbeta2
|
0.0000000
|
0.0001048
|
0.0000000
|
0.0000000
|
0.1142226
|
NaN
|
2d: 25 searches
|
dist_beta
|
maximin
|
LHS
|
random
|
lhsbeta1
|
lhsbeta2
|
dist_beta
|
NaN
|
0.0000008
|
0.0000047
|
0.0000092
|
0.9998745
|
0.9999696
|
maximin
|
0.9999992
|
NaN
|
0.7779433
|
0.7870843
|
1.0000000
|
1.0000000
|
LHS
|
0.9999953
|
0.2220567
|
NaN
|
0.5111085
|
1.0000000
|
1.0000000
|
random
|
0.9999908
|
0.2129157
|
0.4888915
|
NaN
|
1.0000000
|
1.0000000
|
lhsbeta1
|
0.0001255
|
0.0000000
|
0.0000000
|
0.0000000
|
NaN
|
0.6148437
|
lhsbeta2
|
0.0000304
|
0.0000000
|
0.0000000
|
0.0000000
|
0.3851563
|
NaN
|
2d: 70 searches
|
dist_beta
|
maximin
|
LHS
|
random
|
lhsbeta1
|
lhsbeta2
|
dist_beta
|
NaN
|
0.00e+00
|
0.0000010
|
0.0000002
|
1.000000
|
1.000000
|
maximin
|
1.0000000
|
NaN
|
0.9999838
|
0.9999565
|
1.000000
|
1.000000
|
LHS
|
0.9999990
|
1.62e-05
|
NaN
|
0.3753832
|
1.000000
|
1.000000
|
random
|
0.9999998
|
4.35e-05
|
0.6246168
|
NaN
|
1.000000
|
1.000000
|
lhsbeta1
|
0.0000000
|
0.00e+00
|
0.0000000
|
0.0000000
|
NaN
|
0.001279
|
lhsbeta2
|
0.0000000
|
0.00e+00
|
0.0000000
|
0.0000000
|
0.998721
|
NaN
|
2d: 100 searches
|
dist_beta
|
maximin
|
LHS
|
random
|
lhsbeta1
|
lhsbeta2
|
dist_beta
|
NaN
|
0.00e+00
|
0.0000120
|
0.0000001
|
1.0000000
|
0.9999997
|
maximin
|
1.0000000
|
NaN
|
0.9999984
|
0.9999532
|
1.0000000
|
1.0000000
|
LHS
|
0.9999880
|
1.60e-06
|
NaN
|
0.1913908
|
1.0000000
|
1.0000000
|
random
|
0.9999999
|
4.68e-05
|
0.8086092
|
NaN
|
1.0000000
|
1.0000000
|
lhsbeta1
|
0.0000000
|
0.00e+00
|
0.0000000
|
0.0000000
|
NaN
|
0.0155375
|
lhsbeta2
|
0.0000003
|
0.00e+00
|
0.0000000
|
0.0000000
|
0.9844625
|
NaN
|
3-D
load("/home/boyazhang/repos/unifdist/code/optim_ei_3d.RData")
out <- out[,c(c(ncol(out), ncol(out)-1), 1:(ncol(out)-2))]
scales <- unique(out[,2])
par(mfcol = c(2,2))
boxplot(log(out[,22]) ~out$design, main = paste("3d, ninit = 16, 10*sqrt(m), no-update, fmin after", 20, "searches"))
boxplot(log(out[,52]) ~out$design, main = paste("3d, ninit = 16, 10*sqrt(m), no-update, fmin after", 50, "searches"))
boxplot(log(out[,102]) ~out$design, main = paste("3d, ninit = 16, 10*sqrt(m), no-update, fmin after", 100, "searches"))
boxplot(log(out[,202]) ~out$design, main = paste("3d, ninit = 16, 10*sqrt(m), no-update, fmin after", 200, "searches"))

## lowest designs for all scales after 30, 50, 100, 200 searches
search_num <- c(20,50,100,200)
tb <- data.frame(dist_beta = rep(NA, 4), maximin= rep(NA, 4), LHS= rep(NA, 4), random= rep(NA, 4), lhsbeta1= rep(NA, 4), lhsbeta2= rep(NA, 4))
tb <- cbind(search_num, tb)
bestdsn <- rep(NA, length(scales))
for( j in 1:length(search_num)){
for( i in 1:length(scales)){
bestdsn[i] <- fl(scales[i], search_num[j])}
tb[j, 2:7] <- table(bestdsn)
}
## paired-t test pval table
pvtb <- list()
for( j in 1:4){
ntb <- tb[j,-1]
pvtb[[j]] <- data.frame(dist_beta = NA, maximin= NA, LHS= NA, random= NA, lhsbeta1= NA, lhsbeta2= NA)
names(pvtb[[j]]) <- names(sort(ntb, decreasing = T))
for( i in 1:5)
{ d1 <- names(ntb)[rank(ntb, ties.method = "first") == 7-i]
d2 <- names(ntb)[rank(ntb, ties.method = "first") == 6-i]
pvtb[[j]][,i] <- pairt(d1, d2, tb[j,1])
}
}
p-val matrix
3d: 20 searches
|
dist_beta
|
maximin
|
LHS
|
random
|
lhsbeta1
|
lhsbeta2
|
dist_beta
|
NaN
|
0.9996420
|
1.0000000
|
0.9999862
|
0.5803819
|
0.8650862
|
maximin
|
0.0003580
|
NaN
|
0.9761562
|
0.6892534
|
0.0002305
|
0.0036311
|
LHS
|
0.0000000
|
0.0238438
|
NaN
|
0.0595703
|
0.0000000
|
0.0000008
|
random
|
0.0000138
|
0.3107466
|
0.9404297
|
NaN
|
0.0000205
|
0.0007262
|
lhsbeta1
|
0.4196181
|
0.9997695
|
1.0000000
|
0.9999795
|
NaN
|
0.8204560
|
lhsbeta2
|
0.1349138
|
0.9963689
|
0.9999992
|
0.9992738
|
0.1795440
|
NaN
|
3d: 50 searches
|
dist_beta
|
maximin
|
LHS
|
random
|
lhsbeta1
|
lhsbeta2
|
dist_beta
|
NaN
|
0.0004755
|
0.0252589
|
0.0200167
|
0.9998462
|
0.9575303
|
maximin
|
0.9995245
|
NaN
|
0.9199095
|
0.8848266
|
1.0000000
|
0.9999997
|
LHS
|
0.9747411
|
0.0800905
|
NaN
|
0.4193443
|
1.0000000
|
0.9998596
|
random
|
0.9799833
|
0.1151734
|
0.5806557
|
NaN
|
1.0000000
|
0.9998988
|
lhsbeta1
|
0.0001538
|
0.0000000
|
0.0000000
|
0.0000000
|
NaN
|
0.0210505
|
lhsbeta2
|
0.0424697
|
0.0000003
|
0.0001404
|
0.0001012
|
0.9789495
|
NaN
|
3d: 100 searches
|
dist_beta
|
maximin
|
LHS
|
random
|
lhsbeta1
|
lhsbeta2
|
dist_beta
|
NaN
|
0.00e+00
|
0.0005158
|
0.0000505
|
1.0000000
|
0.9999821
|
maximin
|
1.0000000
|
NaN
|
0.9999614
|
0.9994970
|
1.0000000
|
1.0000000
|
LHS
|
0.9994842
|
3.86e-05
|
NaN
|
0.2353101
|
1.0000000
|
1.0000000
|
random
|
0.9999495
|
5.03e-04
|
0.7646899
|
NaN
|
1.0000000
|
1.0000000
|
lhsbeta1
|
0.0000000
|
0.00e+00
|
0.0000000
|
0.0000000
|
NaN
|
0.0030752
|
lhsbeta2
|
0.0000179
|
0.00e+00
|
0.0000000
|
0.0000000
|
0.9969248
|
NaN
|
3d: 200 searches
|
dist_beta
|
maximin
|
LHS
|
random
|
lhsbeta1
|
lhsbeta2
|
dist_beta
|
NaN
|
0e+00
|
0.0000008
|
0.0000000
|
1.0000000
|
0.9986775
|
maximin
|
1.0000000
|
NaN
|
1.0000000
|
0.9999998
|
1.0000000
|
1.0000000
|
LHS
|
0.9999992
|
0e+00
|
NaN
|
0.1354787
|
1.0000000
|
1.0000000
|
random
|
1.0000000
|
2e-07
|
0.8645213
|
NaN
|
1.0000000
|
1.0000000
|
lhsbeta1
|
0.0000000
|
0e+00
|
0.0000000
|
0.0000000
|
NaN
|
0.0018074
|
lhsbeta2
|
0.0013225
|
0e+00
|
0.0000000
|
0.0000000
|
0.9981926
|
NaN
|
4-D
load("/home/boyazhang/repos/unifdist/code/optim_ei_4d_prl_test.RData")
par(mfcol = c(2,2))
scales <- unique(out[,2])
boxplot(log(out[,52]) ~out$design, main = paste("4d, ninit = 32, 10*sqrt(m), no-update, fmin after", 50, "searches"))
boxplot(log(out[,202]) ~out$design, main = paste("4d, ninit = 32, 10*sqrt(m), no-update, fmin after", 200, "searches"))
boxplot(log(out[,502]) ~out$design, main = paste("4d, ninit = 32, 10*sqrt(m), no-update, fmin after", 500, "searches"))
boxplot(log(out[,702]) ~out$design, main = paste("4d, ninit = 32, 10*sqrt(m), no-update, fmin after", 700, "searches"))

# ## remove scales with uncomplete output
# naind <- c()
# for( i in 1:length(scales)){
# if(fl(scales[i], 100) == "NA"){
# naind <- c(naind, i)
# }
# }
# for(i in naind){
# out <- out[out[,2] != scales[i],]
# }
# scales <- scales[-naind]
## lowest designs for all scales after 30, 50, 100, 200 searches
search_num <- c(50,200,500,700)
tb <- data.frame(dist_beta = rep(NA, 4), maximin= rep(NA, 4), LHS= rep(NA, 4), random= rep(NA, 4), lhsbeta1= rep(NA, 4), lhsbeta2= rep(NA, 4))
tb <- cbind(search_num, tb)
bestdsn <- rep(NA, length(scales))
for( j in 1:length(search_num)){
for( i in 1:length(scales)){
bestdsn[i] <- fl(scales[i], search_num[j])}
tb[j, 2:7] <- table(bestdsn)
}
## paired-t test pval table
pvtb <- list()
for( j in 1:4){
ntb <- tb[j,-1]
pvtb[[j]] <- data.frame(dist_beta = NA, maximin= NA, LHS= NA, random= NA, lhsbeta1= NA, lhsbeta2= NA)
names(pvtb[[j]]) <- names(sort(ntb, decreasing = T))
for( i in 1:5)
{ d1 <- names(ntb)[rank(ntb, ties.method = "first") == 7-i]
d2 <- names(ntb)[rank(ntb, ties.method = "first") == 6-i]
pvtb[[j]][,i] <- pairt(d1, d2, tb[j,1])
}
}
p-val matrix
4d: 50 searches
|
dist_beta
|
maximin
|
LHS
|
random
|
lhsbeta1
|
lhsbeta2
|
dist_beta
|
NaN
|
1.0000000
|
1.0000000
|
1.0000000
|
1.0000000
|
1.0000000
|
maximin
|
0
|
NaN
|
0.8076274
|
0.9930352
|
0.6752545
|
0.6953501
|
LHS
|
0
|
0.1923726
|
NaN
|
0.9721547
|
0.3252330
|
0.3485853
|
random
|
0
|
0.0069648
|
0.0278453
|
NaN
|
0.0108353
|
0.0144140
|
lhsbeta1
|
0
|
0.3247455
|
0.6747670
|
0.9891647
|
NaN
|
0.5203524
|
lhsbeta2
|
0
|
0.3046499
|
0.6514147
|
0.9855860
|
0.4796476
|
NaN
|
4d: 200 searches
|
dist_beta
|
maximin
|
LHS
|
random
|
lhsbeta1
|
lhsbeta2
|
dist_beta
|
NaN
|
0.0043229
|
0.8331157
|
0.9993764
|
0.9999731
|
0.9999955
|
maximin
|
0.9956771
|
NaN
|
0.9998459
|
1.0000000
|
1.0000000
|
1.0000000
|
LHS
|
0.1668843
|
0.0001541
|
NaN
|
0.9913833
|
0.9992273
|
0.9996821
|
random
|
0.0006236
|
0.0000000
|
0.0086167
|
NaN
|
0.7530273
|
0.8341066
|
lhsbeta1
|
0.0000269
|
0.0000000
|
0.0007727
|
0.2469727
|
NaN
|
0.6182122
|
lhsbeta2
|
0.0000045
|
0.0000000
|
0.0003179
|
0.1658934
|
0.3817878
|
NaN
|
4d: 500 searches
|
dist_beta
|
maximin
|
LHS
|
random
|
lhsbeta1
|
lhsbeta2
|
dist_beta
|
NaN
|
0.0002372
|
0.9611947
|
0.9436150
|
0.9998045
|
0.9981271
|
maximin
|
0.9997628
|
NaN
|
0.9999999
|
0.9999997
|
1.0000000
|
1.0000000
|
LHS
|
0.0388053
|
0.0000001
|
NaN
|
0.4363040
|
0.9654461
|
0.8616354
|
random
|
0.0563850
|
0.0000003
|
0.5636960
|
NaN
|
0.9737361
|
0.8904576
|
lhsbeta1
|
0.0001955
|
0.0000000
|
0.0345539
|
0.0262639
|
NaN
|
0.2489401
|
lhsbeta2
|
0.0018729
|
0.0000000
|
0.1383646
|
0.1095424
|
0.7510599
|
NaN
|
4d: 700 searches
|
dist_beta
|
maximin
|
LHS
|
random
|
lhsbeta1
|
lhsbeta2
|
dist_beta
|
NaN
|
1.02e-05
|
0.8411475
|
0.3941812
|
0.9958072
|
0.9741775
|
maximin
|
0.9999898
|
NaN
|
0.9999999
|
0.9999684
|
1.0000000
|
1.0000000
|
LHS
|
0.1588525
|
1.00e-07
|
NaN
|
0.1005475
|
0.9555382
|
0.8340870
|
random
|
0.6058188
|
3.16e-05
|
0.8994525
|
NaN
|
0.9983797
|
0.9857086
|
lhsbeta1
|
0.0041928
|
0.00e+00
|
0.0444618
|
0.0016203
|
NaN
|
0.2460469
|
lhsbeta2
|
0.0258225
|
0.00e+00
|
0.1659130
|
0.0142914
|
0.7539531
|
NaN
|