MIP模型

MIP模型

虽然默认设置通常工作得很好,但MIP模型通常会从参数调优中受益。我们提供以下指导方针,但我们也鼓励您进行试验。

最重要的参数

在解决MIP模型时,两个最重要的Gurobi设置可能是线程MIPFocus参数。这个线程参数控制并行MIP解算器用于求解模型的线程数。默认情况下,将使用计算机中的所有内核。如果希望保留一些内核用于其他活动,请相应调整此参手机万博登录数。

MIPFocus参数允许您根据您的目标修改高级解决方案策略。默认情况下,Gurobi MIP解算器在寻找新的可行解手机万博登录和证明当前解是最优解之间取得平衡。如果您对质量好的可行的解决方案更感兴趣,您可以选择MIPFocus=1. 如果您认为解算器在找到最优解方面没有困手机万博登录难,并且希望将更多注意力集中在证明最优性上,请选择MIPFocus=2. 如果最好的目标边界移动非常缓慢(或者根本不移动),您可能想尝试一下MIPFocus=3把注意力放在束缚上。

解决方案改进

ImproveStartTime即兴演出间隙参数也可用于修改高级解决方案策略,但方式不同。这些参数允许您放弃在搜索的某个点上证明最优性,而是将所有注意力集中在从该点开始寻找更好的可行解决方案上。这个ImproveStartTime参数允许您在指定时间过后进行此转换,而即兴演出间隙参数在达到指定的最优差距时进行转换。

结束

另一组重要的Gurobi参数会影响求解器的终止。手机万博登录如果求解器不能手机万博登录在期望的时间内找到一个经过验证的最优解,您将需要指示如何限制搜索。最简单的选择是使用期限参数MIP模型的另一个常见终止选择是设置米普盖普参数米普盖普参数允许您指示,当解决方案目标上的最佳已知解决方案和最佳已知界限之间的相对差距小于指定值时,应停止优化。当绝对间隙低于所需阈值时,可以使用MIPGapAbs参数。其他终止选择包括NodeLimitIterationLimit溶解极限截止. 前三种情况表明,当分支和绑定节点的数量、单纯形迭代的总数或发现的可行整数解的数量分别超过指定值时,优化应终止。这个截止参数表示求解器应只考虑其客观值优于指定值的解,如果未找到该手机万博登录解则终止求解。

减少内存使用

如果在解决MIP时发现Gurobi优化器耗尽了内存,则应修改诺德菲尔斯特参数当用于存储节点的内存量(以GB为单位)超过指定的参数值时,节点将写入磁盘。我们建议设置为0.5,但您可能希望选择不同的值,具体取决于计算机中可用的内存。默认情况下,节点会写入当前工作目录。这个NodefileDir参数可用于选择不同的位置。

如果在设置诺德菲尔斯特参数设置为较小的值时,应尝试限制线程数。并行MIP中的每个线程都需要一个模型副本,以及其他几个大型数据结构。减少线程参数有时可以显著减少内存使用。

加速根部放松

MIP模型中的根松弛有时求解起来相当昂贵。如果你发现这里花了很多时间,请考虑使用方法参数为根选择不同的连续算法。例如,方法=2将在根位置选择并行屏障算法方法=3将选择并发解算器。请注意,您可以使用手机万博登录节点法参数,但将其更改为默认值(双单纯形)很少有好处。

启发式

一些Gurobi参数控制内部MIP策略。这个启发式参数控制在可行性启发式上花费的运行时的比例。增大参数可以得到更多更好的可行解,但也会降低最优界的进展速度。的亚极参数控制在Gurobi求解器中一些更复杂的局部搜索启发式算法中探索的节点数量。手机万博登录如果你很难找到好的可行的解决方案,你可以增加这个。的MinRelNodesPumpPasses零菱形参数控制一组昂贵的启发式算法,其目标是找到可行的解决方案。在MIP根节点的末尾调用All,但前提是尚未找到可行的解决方案。如果你找不到任何可行的解决方案,试试这些方法。

减少飞机

Gurobi MIP解算器采用手机万博登录多种切割平面策略。这些策略的攻击性可以通过削减参数,并通过另一组切割参数(例如。,FlowCoverCuts米尔库茨等)。每个切割参数可以设置为Aggressive(2)、Conservative(1)、Automatic(-1)或None(0)。越具体的参数会覆盖越一般的参数,例如setting米尔库茨设置为“无”(0),同时设置削减to Aggressive(2)将积极生成所有切割类型,但不会生成的MIR切割除外。非常简单的模型有时可以从关闭开关中获益,而非常困难的模型可以从将开关切换到其积极的设置中获益。

Presolve

可以用一组参数修改预解行为。的Presolve参数设置resolve的攻击级别。选项有Aggressive(2)、Conservative(1)、Automatic(-1)或None(0)。更激进的pre - olve应用需要更多时间,但有时会导致模型非常紧凑。的PrePasses提供更精细的预溶颗粒控制。它限制presolve执行的过程数。将其设置为较小的值(例如3)可以减少预解算运行时间。这个参数控制是否执行约束聚合。聚合通常会导致更小的公式,但在极少数情况下,它会引入数值问题。的AggFill参数控制在更细的晶粒上的聚集。它控制从单个变量聚合的约束矩阵中可以容忍多少填充。的PreSparsify参数启用了一种算法,该算法有时可以显著减少约束矩阵中的非零值的数量。

额外的参数

对称性参数控制对称检测。默认值通常可以很好地工作。的瓦尔布兰奇参数控制分支约束过程中的分支变量选择策略。变量选择可能对解决方案的总体时间有重大影响,但默认策略通常是最佳选择。

公差

Gurobi求解器包括手机万博登录一组数值公差参数。这些模型很少需要调整,而且适用于那些在模型的数值属性方面遇到困难的高级用户。的FeasibilityTolIntFeasTolMarkowitzTol最佳乙醇参数允许您分别调整原始可行性容差、整数可行性容差、单纯形基因式分解的Markowitz容差和双重可行性容差。