早上好,我有一个优化问题的问题,我无法在 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 中的解决方案(来自包“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) : NAs nicht zugelassen in Teilbereichszuweisungen
Excels Solver 为我提供了精确的解决方案:x1 = 2.4 和 x2 = 5.2
我在 R 中的错误在哪里?我必须使用参数 A2 和 b2 因为 >= ...感谢您的帮助!
只是一个简短的扩展:我使用以下语法使用包“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 会给我这个错误?