【问题标题】:solving 2 subscripts optimisation transportation probs using R使用 R 求解 2 个下标优化运输问题
【发布时间】:2013-07-25 06:08:09
【问题描述】:

有人可以指导如何解决以下问题。我不是在寻找答案,而是开始在 R 中解决此类问题。我看过 lsolve 和 lsolveapi 之类的包,但所有示例都只有一个下标

最小化 132x11 + 12x12 + 97x21 + 103x22

受制于 约束1:x11+ x12 + x21 ≤ 135
约束2:x11 + x21 + x22 ≤ 56

xij≥0,所有i,j

请帮助并推荐合适的 R 包以解决此类大型问题

【问题讨论】:

  • 变量的名称无关紧要:如果双索引给您带来麻烦,您可以随时将变量从x11x12x21x22 重命名为y1y2y3y4。所有的线性规划包(lpSolve等)都可以解决这个小问题(4个变量不会使问题“大规模”)。
  • Vincent : 这是客户和供应商的问题:x11 用于代表客户 1 和供应商 1,类似 x12 代表客户1 和供应商2......请注意我刚刚复制了 2-3实际问题的行和 4 个变量.. 希望这会有所帮助..

标签: r optimization


【解决方案1】:

对于每个 cmets,看起来您编写的问题与 lpSolvelp() 函数中给出的示例几乎完美匹配。看看这是否有效:

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

因此,您的问题的完整答案是安装包sos,然后使用findFn("solve") 或类似的东西。事实上,如果你输入findFn("transportation"),你会看到几个专门解决线性程序的包(如果你不能从基础R 中的东西得到你需要的东西,比如?solve

【讨论】:

  • 杰克感谢您提供链接并开始......我将探索 findFn("transportation") 选项.... f.con
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-30
  • 2012-04-18
  • 1970-01-01
  • 1970-01-01
  • 2011-05-30
  • 1970-01-01
相关资源
最近更新 更多