检查不平等制度的可行性

计算科学 约束优化 线性规划
2021-12-17 09:51:27

我有m不平等涉及n变量如下

a1,jx1+a2,jx2++an,jxn>0for1jm

如何检查是否存在解决方案(在计算机的可能帮助下)?

3个回答

您可以通过构建具有“虚拟”目标的线性规划 (LP) 问题来检查一组线性不等式的可行性,例如,

max{xi}i=1n0subject to i=1nai,jxi0 for all 1jm.

任何合理的 LP 求解器都将返回“最优”{xi}(暗示不等式的可行性)或将返回不可行的证明(通过 Farkas 引理)。

我同意 Stelios 的回答,但它可能需要一些充实。这个问题被称为“第一阶段”问题。

首先,将您的问题转换为“标准形式”。

minx0s.t.Ax=bx0
这总是可以针对您的类型的问题完成,尽管它可能需要引入新变量。接下来,解决新问题的第一阶段问题。您可以通过解决以下 LP 来解决它:

miniziAx+z=bz0x0

这个新问题的一个可行的初始点是x=0,z=b(假设b0. 如果没有,只需翻转正确的登录A做到这一点)。一旦你达到这个线性程序的最小值,你将处于你真正关心的多面体的一个角落。如果最小值不为零,则您知道不存在这样的点。

一般来说,找到一个可行点——更具体地说是可行区域的一个顶点——是一项不平凡的任务。这是解决线性问题的任何顶点算法实现的第一步,通常通过解决对问题来完成。在这个对偶问题中,我们知道原点是一个可行顶点,并且对偶问题的(我们可以再次通过顶点算法找到)是原问题的一个可行顶点。

就您而言,这意味着您可以通过写下“假”线性问题(如@Stellos 在他/她的帖子中所建议的那样)、构建对偶问题并解决它来测试可行性。如果它成功了,那么你就有了原始约束集的一个可行顶点;那么就没有必要解决假货问题了,当然。任何商业 LP 求解器也可以为您解决此问题,尽管它可能仍会尝试解决虚假问题。