如何解决不平等制度?

时间:2009-09-16 12:10:41

标签: algorithm system solver linear-programming inequality

我已将问题(表格布局算法)减少到以下问题:

想象一下,我有N个变量X 1 ,X 2 ,...,X N 。我也有一些(未确定的)不等式,例如:

X 1 > = 2
x 2 + X 3 > = 13

每个不等式是一个或多个变量的总和,并且始终使用> =运算符将其与常量进行比较。我不能事先说出每次会有多少不等式,但所有变量都必须是非负的,所以每个变量已经是一个。

如何以这种方式解决这个系统,变量的值尽可能小?

已添加:阅读维基百科文章并意识到我忘了提及变量必须是整数。猜猜这让NP很难,是吗?

4 个答案:

答案 0 :(得分:7)

最小化x1 + x2 + ...其中xi满足线性约束称为线性编程。在Wikipedia

中详细介绍了这一点

答案 1 :(得分:6)

你所拥有的是一个非常基本的Linear Programming问题。您希望最大化等式为X_1 + ... + X_n的等式

X_1 >= 2
X_2 + X_3 >= 13
etc.

有许多算法可以解决这类问题。最常见的是Simplex algorithm,它会在平均情况下非常有效地解决你的等式(有一些警告),尽管存在LP问题,Simplex算法需要指数级的许多步骤才能解决(问题大小) )。

存在LP解算器的各种实现。例如,LP_Solve应满足您的大部分要求

答案 2 :(得分:2)

您也可以直接将线性模型发布到NEOS平台(http://neos.mcs.anl.gov/neos/solvers/index.html)。您首先要做的就是用AMPL等代数语言编写模型。然后NEOS将解决模型并通过电子邮件返回结果。

答案 3 :(得分:1)