【问题标题】:Does Integer Linear Programming give optimal solution?整数线性规划是否提供最佳解决方案?
【发布时间】:2013-02-24 12:28:17
【问题描述】:

我正在尝试使用整数线性规划 (ILP) 来解决问题。由于问题是 NP-hard ,我想知道 Simplex Method 提供的解决方案是否是最优的?任何人都可以评论使用单纯形法的 ILP 的最优性或指向某些来源。是否有任何其他算法可以为 ILP 问题提供最佳解决方案?

编辑:对于 ILP 的任何算法(单纯形法、分支定界和切割平面)获得的解决方案的最优性,我正在寻找是/否答案。

【问题讨论】:

  • 要具体。如果你问一个模糊的问题,你会得到一个模糊的答案。但是,如果您向我们提供详细信息和上下文,我们可以提供有用的答案。
  • 如果您的 ILP 是问题的正确表述,您将获得与优化约束相对应的解决方案。只要你有足够的耐心等待它,这可能需要很长时间。对于与图形布局有关的 np-hard 问题,我去年使用了基于一般约束的编程;对于一些不超过 50 个顶点和 250 条边的图,花了一天多的时间。
  • @RobertHarvey 恕我直言,这个问题并不含糊。哈罗德有正确的答案。对于 SO,这个问题可能有点高级,与数学算法有关,而不是编程;但不需要上下文来理解所询问的内容。
  • Harold 的回答既准确又正确——尽管它只回答了“Simplex 解决 ILP 问题吗?”的问题,而不是附加问题“do 解决了什么算法ILP 问题?”
  • @StackUnderflow 用于一般整数线性程序:单纯形法:否。分支定界:是的,在有限的时间和有限的内存中,但是对于典型的计算机来说,它很容易快速解决或者不会耗尽内存。切割平面:经典的 Gomory 切割最终将为您提供最佳解决方案。由于数值不稳定性,它们的实际实现非常重要(它们的开发和实际实现之间有 30 多年的时间)。

标签: algorithm optimization linear-programming np-hard


【解决方案1】:

单纯形法不处理您想要整数的约束。简单地对结果进行四舍五入并不能保证给出最佳解决方案。

如果约束矩阵为totally dual integral,则使用单纯形法解决 ILP 问题确实有效。

解决 ILP(不限于完全对偶积分约束矩阵)的一些算法是 Branch and Bound,它易于实现,并且在成本合理均匀的情况下通常运行良好(非常不均匀的成本使其尝试多次尝试起初看起来很有希望,但结果并非如此)和Cutting Plane,老实说我不太了解,但它可能很好,因为人们正在使用它。

【讨论】:

    【解决方案2】:

    根据定义,线性规划问题的解集是最优的。

    线性规划是一类称为“约束满足”的算法。一旦你满足了约束,你就解决了问题,并且没有“更好”的解决方案,因为根据定义,最好的结果就是满足约束。

    但是,如果您还没有完全建模问题,那么显然其他类型的解决方案可能会更好。


    澄清:当我在上面写“满足约束”时,我包括目标函数的最大化。切割平面算法本质上是单纯形算法的扩展。

    【讨论】:

    • 投反对票,因为这个答案是错误的。在线性程序中,您正在寻找既满足约束又优化(最小化或最大化)给定目标函数的解决方案。它也没有回答什么算法可以解决整数程序的问题。
    • 答案是“一旦你满足了约束,你就解决了问题,并且没有“更好”的解决方案,因为根据定义,最好的结果就是满足约束。”这不是真的。您不仅想满足约束,还想最小化(或最大化)目标函数。
    • OP 询问的是 Integer LP 方法,经验表明,与删除仅整数要求相比,这种方法会产生不太理想的解决方案。您的回答似乎忽略了这一点。此外,@raoulcousins 关于最大化或最小化受约束的目标函数的观点也很好。
    • 如果您使用单纯形法解决 ILP 问题,则 (1) 将满足约束条件,并且 (2) 将最大化目标函数。因此,答案将是最佳的。封箱。可能 OP 真的意味着要问,有没有比 ILP 的单纯形法更好的技术?并且答案不是真的(如果我们正在考虑将切割平面方法作为单纯形法的变体)。
    猜你喜欢
    • 2015-05-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-05
    • 2023-01-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多