gpt4 book ai didi

r - GA算法并行计算时返回 "non-numeric argument to binary operator"

转载 作者:行者123 更新时间:2023-12-01 19:48:04 27 4
gpt4 key购买 nike

出于某种原因,当我使用选项parallel = TRUE 时,GA 算法返回“二元运算符的非数字参数”。优化算法似乎在没有该选项或设置parallel = FALSE 时也能工作。我已经安装了所有必需的软件包,并且它们都是最新的。我在 64 位机器上使用的 R 版本是 3.3.2。

我基本上是在我尝试优化的函数内调用一个函数。下面的代码是返回相同错误代码的问题一般结构的一个非常简单的示例。

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
)

感谢您的帮助。

最佳答案

简单修复fitness()中的参数名称

 --- fitness <- function(x) -fun_out(a, b, c, d, e, f, g)
+++ fitness <- function(x) -fun_out(x[1], x[2], x[3], x[4], x[5], x[6], x[7])

关于r - GA算法并行计算时返回 "non-numeric argument to binary operator",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40483801/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com