2016-11-08 2 views
2

GAアルゴリズムは何らかの理由で、parallel = TRUEオプションを使用すると "非数値引数を2項演算子に返す" 最適化アルゴリズムは、そのオプションを指定しないか、parallel = FALSEに設定すると動作します。 私はすべての必要なパッケージをインストールしており、最新の状態です。私が扱っているRバージョンは64Bitマシンで3.3.2です。GA-並列演算時に "非数値引数を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 
) 

ありがとうございました。フィットネス内の引数名の

答えて

0

簡単な修正()

--- 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]) 
関連する問題