笔记
通常,您可以更改摩洛尔的配方,使其更容易解决。有关如何改变制定的建议,请参阅Williams[1]。
你跑后intlinprog.
一旦,您可能希望更改一些选项并重新运行它。您可能想要查看的更改包括:
较低的运行时间
较低的最终目标函数值(更好的解决方案)
较小的最终差距
更多或不同的可行点
以下是最有可能帮助解决方案过程的选项变更的一般性建议。按此顺序尝试建议:
为了更快,更准确的解决方案,增加削减
选项从其默认值10.
到较高的数字,如25.
。这可以加快解决方案,但也可以慢速速度。
为了更快,更准确的解决方案,改变切割
选择'中间的'
或者'先进的'
。这可以加快解决方案,但可以使用更多的内存,并可以慢速度。
为了更快,更准确的解决方案,改变integerpreprocess.
选择'先进的'
。这可能对解决方案过程具有很大的影响,无论是有益的还是没有。
为了更快,更准确的解决方案,改变根本血管算法
选择'primal-simplex'
。通常这种变化不是有益的,但偶尔可以。
试图找到更多或更好的可行点,增加heuristicsmaxnodes.
选项从其默认值50.
到较高的数字,如100.
。
试图找到更多或更好的可行点,改变启发式
选项任职'中间的'
或者'先进的'
。
试图找到更多或更好的可行点,改变Branchrule.
选择'strondpscost'
或者,如果该选择无法改善解决方案,'maxpscost'
。
为了更快的解决方案,增加客导性管理资源管理技术
选项从其默认值为零到正值,例如1E-4
。但是,这种变化会导致intlinprog.
找到更少的整数可行点或更准确的解决方案。
要尝试更快地阻止求解器,改变一个相对的作用
选项比默认值更高的值1E-4
。同样,要尝试获得更准确的答案,请改变一个相对的作用
值较低的值。这些变化并不总是改善结果。
通常,解决方案的一些据说整数值x(intcon)
不是整数。intlinprog.
认为整数内部的全部解决方案值integertolerance.
整数。
要舍入所有保护的整数,恰好整数,使用圆形的
功能。
x(intcon)= round(x(intcon));
警告
舍入会导致解决方案变得不可行。金宝搏官方网站舍入后检查可行性:
最大(a * x - b)%看,如果参赛作品不是太阳,所以有很小的不可行性max(abs(aeq * x - beq))%看条目是否足够零max(x - ub)%阳性条目是违规的max(lb - x)%阳性条目是违规的
intlinprog.
在其绝对值超过时,不强制执行该解决方案组件是整数的整数2.1E9
。当您的解决方案有这样的组件时,intlinprog.
警告你。如果收到此警告,请检查解决方案以查看解决方案的备注整数值是否接近整数。
intlinprog.
不允许问题的组件,例如系数F
那一个
, 或者UB.
, 超过1E15
绝对值。如果你试着运行intlinprog.
有这样的问题,intlinprog.
发出错误。
如果您收到此错误,有时您可以扩展问题以具有较小的系数:
对于系数F
这太大了,尝试乘法F
通过一个小的正缩放因子。
对于太大的约束系数,尝试将所有界限和约束矩阵乘以相同的小正缩放因子。
[1]威廉姆斯,H.保罗。数学规划模型建设。Wiley,2013年。