# \donttest{
### simulation costs ###
cost <- c(1, 3)
### 1-d Perdikaris function in Perdikaris, et al. (2017) ###
# low-fidelity function
f1 <- function(x) {
sin(8 * pi * x)
}
# high-fidelity function
f2 <- function(x) {
(x - sqrt(2)) * (sin(8 * pi * x))^2
}
### training data ###
n1 <- 13
n2 <- 8
### fix seed to reproduce the result ###
set.seed(1)
### generate initial nested design ###
X <- NestedX(c(n1, n2), 1)
X1 <- X[[1]]
X2 <- X[[2]]
y1 <- f1(X1)
y2 <- f2(X2)
### n=100 uniform test data ###
x <- seq(0, 1, length.out = 100)
### fit an RNAmf ###
fit.RNAmf <- RNAmf(list(X1, X2), list(y1, y2), kernel = "sqex", constant=TRUE)
### 1. ALM Criterion ###
alm.RNAmf <- AL_RNAmf(criterion="ALM",
Xcand = x, fit=fit.RNAmf, cost = cost,
use_optim = FALSE, parallel = TRUE, ncore = 2)
print(alm.RNAmf$chosen)
### visualize ALM ###
oldpar <- par(mfrow = c(1, 2))
plot(x, alm.RNAmf$AL$ALM1,
type = "l", lty = 2,
xlab = "x", ylab = "ALM criterion at the low-fidelity level",
ylim = c(min(c(alm.RNAmf$AL$ALM1, alm.RNAmf$AL$ALM2)),
max(c(alm.RNAmf$AL$ALM1, alm.RNAmf$AL$ALM2))))
points(alm.RNAmf$chosen$Xnext,
alm.RNAmf$AL$ALM1[which(x == drop(alm.RNAmf$chosen$Xnext))],
pch = 16, cex = 1, col = "red")
plot(x, alm.RNAmf$AL$ALM2,
type = "l", lty = 2,
xlab = "x", ylab = "ALM criterion at the high-fidelity level",
ylim = c(min(c(alm.RNAmf$AL$ALM1, alm.RNAmf$AL$ALM2)),
max(c(alm.RNAmf$AL$ALM1, alm.RNAmf$AL$ALM2))))
par(oldpar)
### 2. ALD Criterion ###
ald.RNAmf <- AL_RNAmf(criterion="ALD",
Xcand = x, fit=fit.RNAmf, cost = cost,
use_optim = FALSE, parallel = TRUE, ncore = 2)
print(ald.RNAmf$chosen)
### visualize ALD ###
oldpar <- par(mfrow = c(1, 2))
plot(x, ald.RNAmf$AL$ALD1,
type = "l", lty = 2,
xlab = "x", ylab = "ALD criterion at the low-fidelity level",
ylim = c(min(c(ald.RNAmf$AL$ALD1, ald.RNAmf$AL$ALD2)),
max(c(ald.RNAmf$AL$ALD1, ald.RNAmf$AL$ALD2))))
points(ald.RNAmf$chosen$Xnext,
ald.RNAmf$AL$ALD1[which(x == drop(ald.RNAmf$chosen$Xnext))],
pch = 16, cex = 1, col = "red")
plot(x, ald.RNAmf$AL$ALD2,
type = "l", lty = 2,
xlab = "x", ylab = "ALD criterion at the high-fidelity level",
ylim = c(min(c(ald.RNAmf$AL$ALD1, ald.RNAmf$AL$ALD2)),
max(c(ald.RNAmf$AL$ALD1, ald.RNAmf$AL$ALD2))))
par(oldpar)
### 3. ALC Criterion ###
alc.RNAmf <- AL_RNAmf(criterion="ALC",
Xref = x, Xcand = x, fit=fit.RNAmf, cost = cost,
use_optim = FALSE, parallel = TRUE, ncore = 2)
print(alc.RNAmf$chosen)
### visualize ALC ###
oldpar <- par(mfrow = c(1, 2))
plot(x, alc.RNAmf$AL$ALC1,
type = "l", lty = 2,
xlab = "x", ylab = "ALC criterion augmented at the low-fidelity level",
ylim = c(min(c(alc.RNAmf$AL$ALC1, alc.RNAmf$AL$ALC2)),
max(c(alc.RNAmf$AL$ALC1, alc.RNAmf$AL$ALC2))))
points(alc.RNAmf$chosen$Xnext,
alc.RNAmf$AL$ALC1[which(x == drop(alc.RNAmf$chosen$Xnext))],
pch = 16, cex = 1, col = "red")
plot(x, alc.RNAmf$AL$ALC2,
type = "l", lty = 2,
xlab = "x", ylab = "ALC criterion augmented at the high-fidelity level",
ylim = c(min(c(alc.RNAmf$AL$ALC1, alc.RNAmf$AL$ALC2)),
max(c(alc.RNAmf$AL$ALC1, alc.RNAmf$AL$ALC2))))
par(oldpar)
### 4. ALMC Criterion ###
almc.RNAmf <- AL_RNAmf(criterion="ALMC",
Xref = x, Xcand = x, fit=fit.RNAmf, cost = cost,
use_optim = FALSE, parallel = TRUE, ncore = 2)
print(almc.RNAmf$chosen)
# }
Run the code above in your browser using DataLab