r - x[i, j] 中的错误:维数不正确:使用 R(GA 包)中的遗传算法的传输问题
问题描述
我收到以下错误:
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)
我正在尝试使用 R 的 GA 包解决以下问题:
这是我的数据的样子。
解决方案
推荐阅读
- python - pydantic 模式/模型的 python 类型提示
- r - 将第一行之后的所有行替换为 R 中相同的特定条件
- sql - 具有变量低效率的 SQL Server 双案例语句
- google-cloud-platform - 如何保护托管在 Google Cloud Run 上的应用程序?
- javascript - 在 React 中使用 Apex-Chart,有没有办法在注释上显示工具提示?
- formatting - 格式化 15 个顺序命令行方向的最佳方法?
- laravel - 在“https://email.us-west-1.amazonaws.com”上执行“SendRawEmail”时出错;AWS HTTP laravel 5.2
- javascript - ChartJS:在工具提示中调用数组对象的属性
- reactjs - 在 React-Native 中转换回对人类友好的计时器格式
- swift - 如何让 Firestore 数据显示在标签中