По какой-то причине алгоритм GA возвращает «нечисловой аргумент двоичному оператору», когда я использую параметр parallel = TRUE. Алгоритм оптимизации, похоже, работает без этой опции или при установке parallel = FALSE. Я установил все необходимые пакеты, и все они обновлены. Версия R, с которой я работаю, - это 3.3.2 на 64-битной машине.GA-алгоритм возвращает «нечисловой аргумент двоичному оператору» при параллельных вычислениях
Я в основном вызываю функцию внутри функции, которую я пытаюсь оптимизировать. Код ниже - очень простой пример общей структуры проблемы, которая возвращает тот же код ошибки.
fun_in <- function(a, b, c, d, e)
{
return(a + b + c + d + e)
}
fun_out <- function(a, b, c, d, e, f, g)
{
x <- f +g
y <- fun_in(a = a, b = b, c = c, d = d, e = e)
z <- x + y
return(z)
}
library('GA')
a <- 1
b <- 1
c <- 1
d <- 1
e <- 1
f <- 1
g <- 1
fitness <- function(x) -fun_out(a, b, c, d, e, f, g)
lower_bound <- c(1,1,1,1,1,1,1)
upper_bound <- c(5,5,5,5,5,5,5)
coef_names <- c('a', 'b', 'b', 'd', 'e', 'f', 'g')
GA <- ga(type = "real-valued",
fitness = fitness,
min = lower_bound,
max = upper_bound,
popSize = 100,
maxiter = 1000,
pmutation = 0.8,
pcrossover = 0.8,
maxFitness = 1e-5,
names = coef_names,
parallel = TRUE
)
Благодарим за помощь.