所以我试着用R中的pso库最小化一个函数。这是代码:
library(pso)
library(readxl)
ee <- 0.95
td <- 480
tt <- c(60,10,14,143,60)
tt <- as.data.frame(tt)
# d is a dataframe of 224 obs. of 1 variable
d <- read_excel("C:/Users/manue/Desktop/d.xlsx")
View(d)
d <- as.data.frame(d)
r <- vector()
m <- function(d) {
res <- list() # store all the vectors here
# each vector should be a solution to the problem considered by the algorithm
n <- length(tt)
c <- nrow(d)
for (j in 1:c) {
for (i in 1:n) {
r[i] <- tt[i] / (td * ee / d[j,])
}
res[j] <- r
}
return(res)
}
set.seed(1)
pso1 <- psoptim(par=d, fn = m, lower = -1, upper = 1,control =
list(abstol=1e-8))
我收到错误
Error in d[j, ] : incorrect number of dimensions
我是R和PSO的新手,我不知道我给psoptim的输入是否真的是正确的。例如,下限和上限是变量,在这种情况下,这意味着ee和td?任何具有此库经验的人都可以指导我如何在这种情况下正确使用psoptim并克服此错误。
谢谢你, 曼努埃尔