障碍伐木

障碍伐木

屏障日志可分为五个部分:预定部分,屏障预处理部分,屏障进度部分,交叉进度部分和摘要部分。

预定部分

如前所述,Gurobi Optimizer在优化模型时的第一件事是应用a寄生算法为了简化模型。Gurobi Log的第一部分提供了关于预计在此努力中成功的程度的信息。考虑以下示例从netlib型号输出dfl001.

预定删除2381行和3347列预定时间:0.12秒。预计:3690行,8883列,31075套管
示例输出显示预计能够删除2381行和3347列,并且需要0.12秒。预计部分中的最终行显示了预升降机后模型的大小。这是将屏障优化器传递给屏障优化器的模型的大小。请注意,为此模型计算的解决方案会自动转换为原始问题的解决方案,一旦屏障完成(通常调用的过程中uncrushing.),但这种堵塞步骤是透明的,不会产生日志输出。

屏障预处理部分

The factor matrix for the linear system solved in each iteration of the barrier method can be quite large and quite expensive to compute. In order to reduce the cost of this computation, the first step of the barrier algorithm is to compute a fill-reducing reordering of the rows and columns of this matrix. This step can be quite expensive, but the cost is recouped in the reduced cost of the subsequent barrier iterations.

一旦计算了这种填充重新排序,Gurobi优化器输出与屏障因子矩阵相关的信息:

屏障统计:密集COLS:10个免费var:3 AA'NZ:9.353E + 04因子NZ:1.139E + 06(大约14 MB的内存)因子OPS:7.388E + 08(每次迭代约2秒)
第一行指示来自约束矩阵的列被致密。第二行表示模型中有多少变量是自由的。密集的柱和自由变量有时会导致屏障求解器中的数值困难,因此知道它们存在有时是有用的。手机万博登录请注意,只有当模型包含密集列或自由变量时才会打印这些行。

下一行显示下三角形中的偏斜条目的数量<span> $ </ span> aa ^ t <span> $ </ span>。在屏障算法的每次迭代中,对该矩阵的缩放版本进行了考虑,因此凿台因子的结构取决于结构<span> $ </ span> aa ^ t <span> $ </ span>

最终两行表示因子矩阵中的非零值的数量,以及所需的浮点操作的数量。请注意,日志还提供了屏障算法需要多少内存的估计,以及每个障碍迭代需要多长时间:这些是粗略的估计,这意味着提供模型将如何解决模型的困难程度。如果您想获取对整体解决方案时间的估计,请注意,大多数模型在大约50个迭代中实现了融合,但有许多例外情况。交叉运行时通常与几个障碍迭代的成本相当,但是这一时间可以随着模型特征而显着变化。

Progress Section

Gurobi屏障输出的第三部分提供有关屏障方法进展的信息:

客观剩余磨机原始双原始双重套件0 1.11502515CE + 13 -3.03102251E + 08 7.65E + 05 9.29E + 07 2.68E + 09 2S 1 4.40523949C + 12 -8.22101865E + 09 3.192 + 05 4.82E + 071.15E + 09 3S 2 1.18016996E + 12 -2.25095257E + 10 7.39E + 04 1.15E + 07 3.37E + 08 4S 3 2.24969338E + 11 -2.09167762E + 10 1.01E + 04 2.16E + 06 5.51E + 075s 4 4.63336675C + 10 -1.443087552 + 10 8.13E + 02 4.30 + 05 9.09E + 06 6S 5 1.25266057E + 10 -4.06364070E + 09 1.5220 + 02 8.13E + 04 2.21E + 06 7S 6 1.53128732E+09 -1.27023188E + 09 9.52E + 00 1.61E + 04 3.23E + 05 9S 7 5.7.70973983S 7 5.23E + 05 9S 7 5.209739832 + 08 -8.11694302C + 08 2.10E + 00 5.99 + 03 1.53E + 05 10s 8 2.91659869C + 08 -4.77256823E + 08 5.89E-01 5.96E-08 8.36E + 04 11S 9 1.22358325E + 08 -1.30263121C + 08 6.09E-02 7.36E-07 2.73E + 04 12S 10 6.47115867E + 07 -4.50505785E + 07 1.96E-02 1.43E-06 1.18E + 04 13s
每个输出行中的七列显示对该点执行的障碍迭代的数量,当前屏障迭代的原始和双目标值,当前迭代的原始屏障的大小和双重递卖(计算为无穷大学原始和双重载体分别),互补性违反电流原始和双迭代的幅度(原始溶液的点乘积和双重减少的成本向量),以及所花费的时间量(测量使用挂钟时间)。当原始的不可行性,双重缺失和互补性满足障碍收敛公差(使用)Barconvtol.参数),解决方案被声明为最佳,优化完成。

Unlike the simplex and MIP optimizers, the barrier optimizer produces a log line for each iterate, independent of the value of thedisplayinterval.范围。

您有时会在屏障进度日志中迭代计数后看到一颗星星:

15 2.42800468E + 04 8.54543324E + 04 1.68E + 02 1.02E-09 8.30E + 04 0s 16 4.05292006E + 03 4.65997441C + 04 4.65997441C + 04 1.82C + 02 2.50-01 4.25E + 04 0s 17 * 4.88742259E + 084.30781025E + 10 5.17E + 00 1.31E-01 2.52E-02 0S 18 * 1.21709951C + 06 3.3909951C + 06 3.39471138C + 13 8.55E-06 3.14E-06 3.14E-06 3.14E-05 0S 19 * -1.38021972E + 06 3.31580578E +16 3.42E-08 8.20E-09 3.22E-08 0s 20 * 1.25182178C + 06 3.31575855C + 19 6.54E-12 7.34E-09 3.222E-11 0
这表明该模型可能是原始的或双重不可行的。请注意,这些中间指示不一定不一定会变成一种不可行的证明,因此星星可能会在以后的迭代中消失。

交叉部分

屏障日志的第四部分提供了关于交叉步骤的信息。此部分仅在选择交叉时存在(通过通过)交叉范围。交叉将由屏障算法产生的内部点解决方案转换为基本解决方案。

交叉的第一阶段是界限变量以获取有效的基本解决方案。默认情况下,这是为双变量完成的,然后用于原始变量。通过交叉日志的这部分跟踪此阶段的进度...

Crossover Log ... 1592剩余DINF 0.000000000E + 00 2S 0 DPushes剩余DINF 2.8167333E-06 2S 180 PPUSHE剩余PINF 0.000000000E + 00 2S 0 PPUSHES剩余PINF 0.000000000E + 00 2S PUPE阶段完成:PINF0.000000000 + 00,DINF 2.8167333E-06 2S
每一行显示多少仍然推进步骤,the amount of infeasibility in the current solution, and the elapsed barrier time.

在完成推送阶段后,交叉具有不一定最佳的基本解决方案。由此产生的基础传递给Simplex,Simplex完成了优化......

迭代客观原始INF。双伊米。Time 1776 1.1266396E + 07 0.000000E + 00 0.000000E + 00 2S
The five columns in each output row of the simplex log show the number of simplex iterations performed to that point in the crossover algorithm (including the push steps), the objective value for the current basis, the magnitude of the primal infeasibility for the current basis (computed as the sum of the absolute values of all constraint and bound violations), the magnitude of the dual infeasibility (computed as the sum of the absolute values of all dual constraint violations), and the amount of time expended by the crossover algorithm to that point (measured using wall clock time). When the primal and dual infeasibilities both reach zero, the basis is optimal and optimization is complete.

摘要部分

屏障日志的最终部分提供了摘要信息。它提供了所执行的屏障算法的工作摘要,包括迭代计数和运行时,并提供有关优化结果的信息。解决了最优性的模型的摘要看起来像这样:

在7212次迭代中解决了48.38秒最优目标1.126639605E + 07
其他终止状态产生不同的摘要。例如,用户中断将产生如下所示的摘要:
停在7482次迭代中,3.41秒解决中断
击中时间限制将产生如下所示:
在9221次迭代中停止,超过5.00秒的时间限制超过