首页 > 解决方案 > 如何在gurobi R中获得目标向量的上限和下限

问题描述

我试图获得目标向量的上限和下限向量,这将保持线性程序的相同最优解。我在 R 中使用 gurobi 来解决我的 LP。gurobi 参考手册说属性 SAObjLow 和 SAObjUP 会给你这些界限,但我在我的 gurobi 调用的输出中找不到它们。

有没有一种特殊的方法可以告诉求解器返回这些向量?

我在 gurobi 调用的输出中看到的唯一值是 status、runtime、itercount、baritercount、nodecount、objval、x、slack、rc、pi、vbasis、cbasis、objbound。对偶变量和降低的成本在 pi 和 rc 中返回,但不限制在目标向量上。

我尝试强制使用所有 6 种不同的“方法”,但它们都没有返回我正在寻找的东西。

我知道我可以使用 lpsolve R 包轻松获得这些,但我正在解决一个相对较大的问题,并且我比这个包更信任 gurobi。

这是一个可重现的例子......

library(gurobi)
model = list()
model$obj = c(500,450)
model$modelsense = 'max'
model$A = matrix(c(6,10,1,5,20,0),3,2)
model$rhs = c(60,150,8)
model$sense = '<'

sol = gurobi(model)
names(sol)

理想情况下,像 SAObjLow 这样的东西将是 sol.xml 中可能的条目之一。

标签: rlinear-programminggurobi

解决方案


并非所有属性都在 Gurobi R 界面中可用 - 这包括用于敏感性分析的属性。您可能会发现此示例很有帮助。

或者,您可以使用不同的 API(如 Python)来查询所有可用信息。


推荐阅读