x[i,j]中的错误:维数不正确:在R(GA包)中使用遗传算法的运输问题

x[i,j]中的错误:维数不正确:在R(GA包)中使用遗传算法的运输问题,r,readxl,R,Readxl,我得到以下错误: x[i,j]中的错误:尺寸数量不正确 执行以下代码时: library(GA) library(readxl) path <- "GAMS data & solution.xlsx" c <- read_excel(path,range = "C3:G7",col_names = F) f <- read_excel(path,range = "C10:G10",col_names = F)

我得到以下错误:

x[i,j]中的错误:尺寸数量不正确

执行以下代码时:

library(GA)
library(readxl)

path <- "GAMS data & solution.xlsx"
c <- read_excel(path,range = "C3:G7",col_names = F)
f <- read_excel(path,range = "C10:G10",col_names = F)
d <- read_excel(path,range = "C13:G13",col_names = F)
cap <- read_excel(path,range = "C16:G16",col_names = F)
rows <- nrow(c)
cols <- ncol(c)[enter image description here][1]

val2 <-0
val1 <-0

fitness <- function(m){
    x<-m[1] 
    y<-m[2]
    
    # define fitness function
    for(i in 1:rows){
        for(j in 1:cols){
            val <- c[i,j]*x[i,j]
            val1 <- val1 + val
        }
    }
   for(i in 1:rows){
      val0 <- f[i]*y[i]
      val2 <- val2+val0
   }
    
    fitness_value <- val1 + val2
    
    #define constraint
    g1 <- x
    
    for(j in 1:cols){
    for(i in 1:rows){
        sum1 <- x[i,j]
        sum2 <- sum2+sum1
    }
        gtemp <- sum2-d[j]
        g2 <- append(g2,gtemp)
    }
    
    
        for(i in 1:rows){
            for(j in 1:cols){
            sum0 <- x[i,j]
            sum3 <- sum3+sum0
        }
        gtemp1 <- sum3-cap[i]*y[i]
        g3 <- append(g3,gtemp)
    }
    

    #penalized constraint violation
    fitness_value <- ifelse( g1 >= 0 & g2 >= 0 & g3 <= 0 , fitness_value, fitness_value + 1e5 )
    
    return(-fitness_value)
}

ga(type = "real-valued", fitness,lower = c(0,0),upper = c(10000, 1),maxiter = 1000, popSize = 100, monitor = F) 

库(GA)
图书馆(readxl)

在上面显示的代码中,您有
sum2 yes。。。忘记在初始化val1和val2的函数外部初始化sum2和sum3。即使在这个修正之后,我仍然会得到错误。