有人可以指导如何解决以下问题。我不是在寻找答案,而是在 R 中解决此类问题的开始。我看过 lsolve 和 lsolveapi 之类的包,但所有示例都只有一个下标
最小化 132x11 + 12x12 + 97x21 + 103x22
受约束1:x11+ x12 + x21 ≤ 135
约束2:x11 + x21 + x22 ≤ 56
xij≥ 0, 所有 i, j
请帮助并为此类大型问题推荐合适的 R 包
有人可以指导如何解决以下问题。我不是在寻找答案,而是在 R 中解决此类问题的开始。我看过 lsolve 和 lsolveapi 之类的包,但所有示例都只有一个下标
最小化 132x11 + 12x12 + 97x21 + 103x22
受约束1:x11+ x12 + x21 ≤ 135
约束2:x11 + x21 + x22 ≤ 56
xij≥ 0, 所有 i, j
请帮助并为此类大型问题推荐合适的 R 包
根据评论,看起来您所写的问题与lp()
函数中给出的示例几乎完美匹配lpSolve
。看看这是否有效:
library(lpSolve)
f.obj <- c(132, 12, 97, 103)
f.con <- matrix(c(1, 1, 1, 0, 1, 0, 1, 1), ncol = 4, byrow = T)
f.dir <- c(">=", ">=")
f.rhs <- c(135, 56)
lp ("min", f.obj, f.con, f.dir, f.rhs)
#Success: the objective function is 6380
lp ("min", f.obj, f.con, f.dir, f.rhs)$solution
#0 79 56 0
因此,您的问题的完整答案是安装 package sos
,然后使用findFn("solve")
或类似的东西。事实上,如果你输入,findFn("transportation")
你会看到几个专门解决线性程序的包(如果你不能从基础的东西中得到你需要的东西,R
比如?solve
.