Hi all
I would be grateful you can help me with my problem.
I try to run an optimization code . in one line I have runif in order to
sample the PDF. I get this error while i run it.
Error in runif(1, f$d[[n.of.u.vars + n.of.o.vars + j]][[2]][1],
f$d[[n.of.u.vars + :
invalid arguments
Here is a part of that code:
# initialize random numeber generator
if (seed>0) set.seed(seed)
# set parameters
e.abs <- e
e.rel <- e
max.value <- f$opt
eval <- 0
last.impr <- max.eval;
nl <- matrix(NA,k,k-1)
iteration <- 0
# separate unordered and ordered from continuous variables
range.u <- vector()
range.o <- vector()
n.of.x.vars <- 0
n.of.o.vars <- 0
n.of.u.vars <- 0
for (i in f$d) {
if (i[[1]]=="u") {
range.u <- c(range.u, length(i[[2]]))
n.of.u.vars <- n.of.u.vars + 1
}
if (i[[1]]=="o") {
range.o <- c(range.o, length(i[[2]]))
n.of.o.vars <- n.of.o.vars + 1
}
if (i[[1]]=="x") {
n.of.x.vars <- n.of.x.vars + 1
}
}
# initialize variables
max.u <- rep(NA,n.of.u.vars)
max.o <- rep(NA,n.of.o.vars)
max.X <- rep(NA,n.of.x.vars)
max.y <- -Inf
p.X <- vector()
p.u <- vector()
p.o <- vector()
p <- data.frame(v=numeric(),sd=numeric(),gr=numeric());
# randomly choose the starting population
# (but based on the data given in the function definition)
for (i in 1:k) {
if (n.of.u.vars>0) {
U <- vector()
for (j in 1:n.of.u.vars) {
U <- c(U, sample(range.u[j],1))
}
U <- t(U)
}
else U <- NULL
if (n.of.o.vars>0) {
O <- vector()
for (j in 1:n.of.o.vars) {
O <- c(O, sample(range.o[j],1))
}
O <- t(O)
}
X <- vector()
for (j in 1:n.of.x.vars) {
X <- c(X, runif(1,f$d[[n.of.u.vars+n.of.o.vars+j]][[2]][1],
f$d[[n.of.u.vars+n.of.o.vars+j]][[2]][2]))
}
X <- t(X)
Many Thanks
Yasin
[[alternative HTML version deleted]]