主要内容

调整整数线性编程

Change Options to Improve the Solution Process

笔记

Often, you can change the formulation of a MILP to make it more easily solvable. For suggestions on how to change your formulation, see Williams[1]

跑步之后intlinprog有一次,您可能需要更改一些选项并重新运行它。您可能想要看到的更改包括:

  • 降低运行时间

  • 较低的最终目标函数值(更好的解决方案)

  • 较小的最终差距

  • 或不同的可行点

以下是最有可能帮助解决方案过程的期权更改的一般建议。根据此顺序尝试建议:

  1. 对于更快,更准确的解决方案,请增加cutmaxitrations默认选项10较高的数字,例如25。这可以加快解决方案的速度,但也可以减慢溶液的速度。

  2. 更快和更准确的年代olution, change theCutGenerationoption to'中间的'or'先进的'。这可以加快解决方案的速度,但可以使用更多的内存,并可以减慢解决方案。

  3. 更快和更准确的年代olution, change theIntegerpreprocessoption to'先进的'。这可能会对解决方案过程产生很大的影响,无论是否有益。

  4. 更快和更准确的年代olution, change therootlpalgorithmoption to“原始简单”。通常,这种变化是没有好处的,但偶尔可能是有益的。

  5. 要尝试找到更多或更好的可行观点,请增加启示性maxnodes默认选项50较高的数字,例如100

  6. To try to find more or better feasible points, change the启发式方法选项'中间的'or'先进的'

  7. To try to find more or better feasible points, change the分支option to'strongpscost'或者,如果这种选择无法改善解决方案,“ maxpscost'

  8. 对于更快的解决方案,请增加客观iMprovementThreshold从零默认到正值的选项,例如1E-4。但是,这种变化可能导致intlinprog找到更少的整数可行点或较少准确的解决方案。

  9. 为了更快地阻止求解器,请更改RelativeGapTolerance比默认值更高的值1E-4。同样,要尝试获得更准确的答案,请更改RelativeGapTolerance较低值的选项。这些变化并不总是改善结果。

一些“整数”解决方案不是整数金宝搏官方网站

通常,某些据说是解决方案的整数值组件X(INTCON)不是精确的整数。intlinprog认为作为整数中的所有解决方案值IntegerTolerance整数。

要将所有假定的整数弄清是精确的整数,请使用round功能。

x(intcon)= round(x(intcon));

警告

Rounding can cause solutions to become infeasible. Check feasibility after rounding:

max(A*X -B)%查看条目是否不太积极,因此具有较小的不可行性max(ABS(AEQ*X -BEQ))%查看条目是否足够接近零max(x -ub)%积极的条目违反了界限最大(lb -x)%积极的条目违反了界限

大型组件不重价

intlinprogdoes not enforce that solution components be integer valued when their absolute values exceed2.1E9。当您的解决方案具有这样的组件时,intlinprog警告你。如果收到此警告,请检查解决方案,以查看解决方案的据称整数值组件是否接近整数。

不允许的大系数

intlinprog不允许问题的组成部分,例如系数F,,,,一种, 或者UB, 超过1E15绝对值。如果您尝试运行intlinprog有这样的问题intlinprog发出错误。

如果遇到此错误,有时您可以将问题扩展到具有较小系数的问题:

  • 用于系数F太大,尝试乘以Fby a small positive scaling factor.

  • For constraint coefficients that are too large, try multiplying all bounds and constraint matrices by the same small positive scaling factor.

References

[1]威廉姆斯,H。Paul。数学编程中的模型构建,第五版。威利,2013年。