早上好, 我对R无法解决的优化问题有疑问,但在Excel中:
我想优化以下情况(材料和人员的运输):
航空公司x1可以运输50吨材料和500人
航空公司x2可以运输150吨材料和250人左右
50x1 + 150x2> = 900 - >运输材料最小。 900个
500x1 + 250x2> = 2500 - >人民交通最少2500
x1是一家航空公司,每次航班的飞行费用为2500 x2是一家航空公司,每次航班的飞行费用为3500 成本应尽量减少!
X1> = 0
X2> = 0
这是我在R中的解决方案(函数simplex来自包“boot”):
library("boot")
a <- c(2500, 3500)
A2 <- matrix(c(50, 150, 500, 250), ncol=2, nrow=2, byrow=TRUE)
b2 <- c(900, 2500)
simplex(a, A2 = A2, b2 = b2, maxi=FALSE)
我收到以下错误:
Fehler in pivot(tableau,prow,pcol):
在Teilbereichszuweisungen的NAs nicht zugelassen
Excels Solver为我提供了确切的解决方案: x1 = 2.4且x2 = 5.2
我在R中的错误在哪里?我必须使用参数A2和b2因为&gt; = ... 感谢您的帮助!
短暂延伸: 我使用以下语法使用“linprog”包中的函数“solveLP”解决了给定的问题:
solveLP(cvec = a, bvec = b, Amat = A,
maximum=FALSE, const.dir=c(">=",">="))
和
A <- matrix(c(-50,-150,-500,-250),nrow=2,ncol=2,byrow=TRUE)
a <- c(2500, 3500)
b <- c(-900, -2500)
solveLP(a,b,A,maximum=FALSE)
仍然想知道为什么函数simplex会给我这个错误?
答案 0 :(得分:3)
我不知道确切的原因(所以这不是一个必不可少的解决方案)。但我知道,当您设置exception in initAndListen: 98 Unable to create/open lock file:
/data/db/mongod.lock errno:13 Permission denied
和A1
的上限时,错误就会解决,即使b1
是一个巨大的值。
b1