线性规划凸壳的完整性

时间:2014-02-24 16:51:46

标签: linear-programming convex-hull integral integer-programming

如何将线性规划(LP)问题的凸包表示为积分?有没有通用的技术来执行此操作?

2 个答案:

答案 0 :(得分:3)

在公式的意义上,线性程序产生具有(通常)分数极值点的多面体。如果你想要解决这个问题,那么在多面体上没有任何改变/操纵的东西。

如果你有一个(混合)整数线性程序(MIP),你可能会对它的整数点的凸包的描述感兴趣。通常,这可以用于快速求解过程,因为您可以在不执行分支定界过程的情况下解决其线性松弛问题。

这意味着,MIP的线性松弛给出了包含这个凸包的多面体 - 它本身不需要整数极值点。在许多情况下,你想要将这个公式收紧到整数点的凸包,这是由通常的求解器完成的(例如通过添加不等式)。 目的是始终获得所述凸包的配方。然而,发现这种配方通常是NP难的(因此没有已知的通用技术来容易地获得它)。特别是这意味着,这种公式的大小(即不等式的数量)可以是指数级的。

用于计算整数点(或一般多面体)的凸包的算法,但它们并不简单且不“快”。可以帮助您的软件可能是PortaPolymake

有些属性描述多面体/公式何时为整数。例如。其中一个名称为total (dual) unimodularity。以这种方式制定您的问题或识别这个属性并不容易,我不知道这样做的任何结构方法。

我希望这会有所帮助:)

亲切的问候,

马丁

答案 1 :(得分:1)

为上面的Martin回答添加一点(我认为评论太长了):

  1. 我所知道的一般程序称为Chvátal-Gomorry程序,它允许通过添加Gomorry切割来最终描述凸包。这在理论上非常有趣;然而,有一个众所周知的例子,这个过程需要n步骤(LP中的参数)来解决具有两个变量和两个约束的问题,即添加的切割数量不能受到大小的限制。问题

  2. 完全单模矩阵在图论中出现的问题很常见,但它肯定不是一种“通用”方法:你可以通过A矩阵的系数必须是定义来说服自己TU矩阵中的0,1或-1,当然在ILP中通常不是这种情况。

  3. 当然,由于求解LP是多项式并且求解ILP是NP完全的,人们不能指望有一种通用的有效方法来做你期望的事情,因为这几乎会将ILP减少到LP!

    但是如果你特别研究一个问题,特别是如果它有一个简单的结构,它可能是上述两种方法之一有效的“特殊情况”之一。

    如果您有兴趣,我可以在本周末提供进一步的参考资料。