线性计划中的基本变量

时间:2018-01-07 16:55:34

标签: python mathematical-optimization linear-programming

我有一个小尺寸线性程序,限制Ax< = b和x> = 0。为了解决这个问题,我一直在使用Python库scipy.optimize.linprog。 从我的n个变量中,我需要知道哪些是基础。

我经常搜索,无法找到解决方法。我也尝试了Pulp库但没有成功。 我对退化实例感兴趣,所以寻找正变量是不够的;有些零变量很可能是基本的。

您知道获取此信息的方法吗?我可以使用任何库,但必须使用Python。

谢谢!

1 个答案:

答案 0 :(得分:1)

几乎没有LP解算器不返回包含每个变量和每行(或松弛)的基础状态的数组/向量。不幸的是scipy.optimize.linprog是个例外。我相信如果您查看源代码,您可以找到基础状态数组。纸浆不是解决者,而是建模工具。我不确定Pulp提供的解决方案信息。但您始终可以使用PULP生成MPS文件,并在任何LP解算器中提供该文件。

如果解决方案是非退化的,您可以执行类似

的操作
   x(j)>0  => basic
   x(j)=0  => non-basic
   s(i)>0  => slack is basic
   s(i)=0  => slack is non-basic

但是如果解决方案是退化的,我们有一些基本的变量/松弛值为零。