【问题标题】:How many decision variables can be solved for Mixed Integer Programming?混合整数规划可以解决多少个决策变量?
【发布时间】:2016-03-16 05:18:46
【问题描述】:

我有一个混合整数规划问题(二进制整数变量),我可以解决多少个变量,即上限以及需要多少时间?

该问题将具有最大 5 个约束和最小化成本函数,但变量采用 m*n 矩阵的形式。那么,问题是 m 和 n 的最大值是多少,以及完成计算所需的时间?

使用标准软件/库,如 COIN CBC、GLPK、CPLEX、GUROBI。

【问题讨论】:

  • 如果您有最多 5 个约束,那么 mn 是什么?
  • m * n 是决策变量矩阵,而不是约束,我定义约束,求解器使用 mn 变量解决问题,并为我提供最佳变量作为解决方案。市场上的求解器可以求解的m的最大尺寸是多少?

标签: linear-programming cplex glpk integer-programming coin-or-cbc


【解决方案1】:

真的可以使用市场上可用的开源/商业求解器来解决它吗?

简短回答:是的,可以使用数百万个决策变量来解决 MIP。

理论

一般来说,MIP 是NP-hard problem,不能在多项式时间 O(n^k) 内求解。此外,确定 MIP 问题的输入“n”是什么不简单。是不是。行、列或它们的乘积,矩阵的性质A,决策变量的性质,MIP 和松弛 LP 之间的差距?

如果IP公式(Ax = b),矩阵A是totally unimodular,所有系数都是整数,那么LP松弛的解也是IP的解,因此你的问题的复杂度是多项式

如果不是,那么在一般情况下,您应该认为问题是 NP 难的。作为一个经验法则,变量越多,约束越多,问题就越难。

练习

MIP/LP 求解器可以使用各种技术/算法在合理的时间内(以小时为单位)解决任何问题,特别是如果您不是在寻找“最佳”整数解决方案并且愿意接受接近最优的解决方案。

没有固定的大小限制 - Gurobi 优化器通常会求解具有数百万个变量和约束的模型,即使在标准笔记本电脑和台式电脑上也是如此。更重要的是,您可以在 Gurobi 的性能中看到结果,尤其是在更大、更困难的模型上。事实上,Gurobi 最近求解了 MIPLIB2010 库中的 11 个模型,这些模型以前没有被任何其他求解器求解过。

来源:http://www.gurobi.com/products/gurobi-optimizer

特殊 MIP 问题

可以使用特殊技术来解决 MIP 的特殊实例。

我编写了简单的列生成算法来解决切割库存问题。见https://github.com/vcphub/cspsol

【讨论】:

  • 是的,确切地说,我想问的是,我有一个 MIP 问题,我尝试使用 Excel 解决它,它在 200 个变量(~50 分钟)后达到最大值,但我想扩展它到 1M+ 决策变量(大约 2-3 小时)。是否真的可以使用市场上可用的开源/商业求解器来解决它?
  • 是的,它可能是可能的。但是,如果您使用的是免费/开源求解器,您将不得不幸运地“开箱即用”地解决它。如果您的问题具有良好的结构和良好的数值特征,则可能没问题。但它可能不是 - 我目前有一个问题,它只有大约 27k 个整数变量,并且合理的服务器上的 CPLEX 在某些情况下无法在 8 小时内找到整数解。如果您可以使用求解器(如列生成、Benders 或 VLNS)实现一些巧妙的技术,您可能会获得更好的性能并解决更大的问题。顺便说一句:Excel 求解器非常弱。
  • 是的,excel 是其他商业求解器中较弱的选择,我的问题是复杂度较低的简单问题,但数据量很大。我有一个成本矩阵 (A) 并想生成一个二进制整数矩阵 (B)。所以,我想最小化 AxB 并且唯一的约束是变量矩阵中每一行的总和是 ,这意味着该行中只有一个值应该是 1 而其他应该是零。
  • 您是否正在处理装箱问题? en.wikipedia.org/wiki/Bin_packing_problem
  • 不。这是一个命令存储分配问题。但我也做过 bin 打包工作,它实际上使用二叉搜索树来进行高效的 2D 打包。它与用于 MIP 的分支和切割方法非常相似。
猜你喜欢
  • 2023-02-10
  • 2020-08-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-15
  • 2011-02-07
  • 2020-09-14
  • 2020-11-18
相关资源
最近更新 更多