R中单纯形函数的基本示例,错误为

时间:2016-11-05 11:36:42

标签: r optimization simplex-algorithm

早上好, 我对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会给我这个错误?

1 个答案:

答案 0 :(得分:3)

我不知道确切的原因(所以这不是一个必不可少的解决方案)。但我知道,当您设置exception in initAndListen: 98 Unable to create/open lock file: /data/db/mongod.lock errno:13 Permission denied A1的上限时,错误就会解决,即使b1是一个巨大的值。

例如;
b1