OR-Tools求解器(CBC(Coin-or branch and cut))日志解度

2024-06-08 10:20

本文主要是介绍OR-Tools求解器(CBC(Coin-or branch and cut))日志解度,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

使用OR-Tools的CBC求解器,解决混合整数规划问题,solver.EnableOutput() 打印日志输出如下:

WARNING: All log messages before absl::InitializeLog() is called are written to STDERR
W0000 00:00:1717640012.742815   19876 linear_solver.cc:2128] SetSolverSpecificParametersAsString() not supported by Cbc 2.10.7
W0000 00:00:1717640012.743008   19876 linear_solver.cc:2128] SetSolverSpecificParametersAsString() not supported by Cbc 2.10.7
W0000 00:00:1717640012.743045   19876 linear_solver.cc:2128] SetSolverSpecificParametersAsString() not supported by Cbc 2.10.7
Welcome to the CBC MILP Solver 
Version: 2.10.7 
Build Date: May  6 2024 

第一部分报了警告:是应为我在程序中使用SetSolverSpecificParametersAsString()设施求解参数,而CBC求解器不支持此语法。

command line - cbc -solve -quit (default strategy 1)

这些信息是求解器在运行时输出的命令行参数和策略,具体解释如下:

  • command line:表示求解器正在解析命令行参数。
  • cbc:表示使用的是 CBC 求解器。CBC 是一个开源的混合整数线性规划(MILP)求解器。
  • solve:表示求解器将开始求解问题。
  • quit:表示求解器在完成求解后将退出。
  • (default strategy 1):表示求解器正在使用默认的策略 1 来求解问题。
Presolve 83 (-306) rows, 144 (-161) columns and 408 (-496) elements

求解器在预处理(presolve)阶段输出的:

  • 83 (-306) rows:表示预处理后问题中剩余的约束行数为 83 行,原始问题中有 83 + 306 = 389 行。括号中的数字表示预处理阶段减少的行数。
  • 144 (-161) columns:表示预处理后问题中剩余的变量列数为 144 列,原始问题中有 144 + 161 = 305 列。括号中的数字表示预处理阶段减少的列数。
  • 408 (-496) elements:表示预处理后问题中剩余的非零元素数为 408 个,原始问题中有 408 + 496 = 904 个非零元素。括号中的数字表示预处理阶段减少的非零元素数。

这些信息表明,预处理阶段成功地简化了问题,减少了约束行数、变量列数和非零元素数,从而可能加快求解速度。

Perturbing problem by 0.001% of 9826.062 - largest nonzero change 0.010255166 ( 0.00011093296%) - largest zero change 0.0096304316

Perturbing problem:表示求解器正在对问题进行扰动。扰动是求解器在处理数值稳定性问题时常用的一种技术,通过对问题的系数进行微小的调整来避免数值不稳定性。

  • 0.001% of 9826.062:表示扰动的幅度是原问题某个值(通常是目标函数值或某个约束的系数)的 0.001%。在这个例子中,原问题的某个值是 9826.062。
  • largest nonzero change 0.010255166 ( 0.00011093296%):表示在扰动过程中,非零系数的最大变化是 0.010255166,对应的百分比变化是 0.00011093296%。
  • largest zero change 0.0096304316:表示在扰动过程中,零系数的最大变化是 0.0096304316。
0  Obj 10803.123 Primal inf 205784.52 (24)
  • 0 和 37:这些数字表示迭代次数。0 表示初始迭代,37 表示第 37 次迭代。
  • Obj 10803.123 和 Obj 24135562:这些表示当前迭代的目标函数值。Obj 10803.123 表示在第 0 次迭代时的目标函数值为 10803.123,Obj 24135562 表示在第 37 次迭代时的目标函数值为 24135562。
  • Primal inf 205784.52 (24):这表示当前迭代的原始可行性(Primal Infeasibility)。Primal inf 205784.52 表示原始可行性为 205784.52,(24) 表示有 24 个约束不满足。
    37 Obj 24135562
    Optimal - objective value 24123912
After Postsolve, objective 24123912, infeasibilities - dual 0 (0), primal 0 (0)

表示在后处理阶段之后,目标函数值仍然是 24123912。双重可行性和原始可行性都没有不满足的约束。括号中的数字表示不满足的约束数量。

Optimal objective 24123912.4 - 37 iterations time 0.002, Presolve 0.00

表示最优目标函数值为 24123912.4。 37 次迭代。求解器花费了 0.002 秒来找到最优解。预处理阶段花费了 0.00 秒。

Continuous objective value is 2.41239e+07 - 0.00 seconds

表示连续优化问题的目标函数值为 2.41239e+07(即 24123900)。0.00 seconds:求解器花费了 0.00 秒来解决连续优化问题。

Optimal - objective value 24123912
Optimal - objective value 24123912

表示求解器找到了一个最优解,目标函数值为 24123912。

Presolve is modifying 112 integer bounds and re-presolving
Presolve 83 (-306) rows, 144 (-161) columns and 408 (-496) elements
Perturbing problem by 0.001% of 9490.9748 - largest nonzero change 0.092517803 ( 0.0013972213%) - largest zero change 0.0090802042
0 Obj 24123828 Primal inf 1650.3013 (8)
Optimal - objective value 24135729
Presolve 82 (-1) rows, 136 (-8) columns and 384 (-24) elements
0 Obj 24135729
Optimal - objective value 24135729

2 fixed, 22 tightened bounds, 15 strengthened rows, 0 substitutions
0 fixed, 0 tightened bounds, 11 strengthened rows, 0 substitutions

2 fixed:表示有 2 个变量的值被固定。22 tightened bounds:表示有 22 个变量的上下界被收紧。15 strengthened rows:表示有 15 个约束被加强。0 substitutions:表示没有进行变量替换。

Perturbing problem by 0.001% of 50200.744 - largest nonzero change 0.52348981 ( 0.0018249885%) - largest zero change 0
0  Obj 8.7999294e+08 Primal inf 0.94600478 (1)
Optimal - objective value 8.7998479e+08
Presolve 55 (-27) rows, 118 (-18) columns and 324 (-55) elements
0  Obj 8.7998479e+08 Dual inf 25838.845 (26)
End of values pass after 8 iterations
8  Obj 8.7998479e+08
Optimal - objective value 8.7998479e+08
0 fixed, 0 tightened bounds, 7 strengthened rows, 0 substitutions
Optimal - objective value 8.7998479e+08
Presolve 55 (0) rows, 118 (0) columns and 324 (0) elements
0  Obj 8.7998479e+08
Optimal - objective value 8.7998479e+08
Optimal - objective value 8.7998479e+08
processed model has 55 rows, 118 columns (103 integer (15 of which binary)) and 324 elements
0  Obj 8.7998479e+08
Optimal - objective value 8.7998479e+08
Optimal - objective value 8.7998479e+08
Optimal - objective value 8.7998479e+08
Perturbing problem by 0.001% of 45179.542 - largest nonzero change 0.4004851 ( 0.0014261159%) - largest zero change 0
0  Obj 8.7999298e+08 Primal inf 0.010064455 (1)
Optimal - objective value 8.8120111e+08
Perturbing problem by 0.001% of 16079.946 - largest nonzero change 0.1578917 ( 0.0057692749%) - largest zero change 0
0  Obj 8.8121544e+08 Primal inf 0.042442964 (1)
Optimal - objective value 8.8632631e+08
Perturbing problem by 0.001% of 14837.307 - largest nonzero change 0.14595076 ( 0.0042784222%) - largest zero change 0
0  Obj 8.8633695e+08 Primal inf 0.044032345 (1)
Optimal - objective value 8.9093847e+08
Perturbing problem by 0.001% of 2588.2686 - largest nonzero change 0.027219616 ( 0.0013344975%) - largest zero change 0
0  Obj 8.9094367e+08 Primal inf 0.056128932 (1)
Primal infeasible - objective value 8.9625252e+08
0  Obj 8.9093847e+08 Primal inf 0.056128932 (1)
Optimal - objective value 8.9577102e+08
Perturbing problem by 0.001% of 3943.0556 - largest nonzero change 0.023950599 ( 0.001923448%) - largest zero change 0
0  Obj 8.9577605e+08 Primal inf 0.08153115 (1)
Primal infeasible - objective value 9.0412493e+08
0  Obj 8.9577102e+08 Primal inf 0.08153115 (1)
Optimal - objective value 9.012743e+08
Perturbing problem by 0.001% of 3952.6997 - largest nonzero change 0.031573503 ( 0.0025204829%) - largest zero change 0
0  Obj 9.012794e+08 Primal inf 0.10634911 (1)
Primal infeasible - objective value 9.1199952e+08
0  Obj 9.012743e+08 Primal inf 0.10634911 (1)
10  Obj 9.0766207e+08 Primal inf 625.5749 (3)
Primal infeasible - objective value 9.0766207e+08
0  Obj 9.012743e+08 Primal inf 0.89365069 (1)
Optimal - objective value 9.063143e+08
Perturbing problem by 0.001% of 3952.6997 - largest nonzero change 0.031573503 ( 0.0022356794%) - largest zero change 0
0  Obj 9.0631798e+08 Primal inf 0.13491793 (1)
Primal infeasible - objective value 9.1948609e+08
0  Obj 9.063143e+08 Primal inf 0.13491793 (1)
8  Obj 9.1744844e+08 Primal inf 2375.7886 (2)
Primal infeasible - objective value 9.1744844e+08
0  Obj 9.063143e+08 Primal inf 0.86508187 (1)
Optimal - objective value 9.111943e+08
Perturbing problem by 0.001% of 3952.6997 - largest nonzero change 0.031573503 ( 0.0020079014%) - largest zero change 0
0  Obj 9.1119687e+08 Primal inf 0.52219779 (1)
Optimal - objective value 9.111943e+08
Perturbing problem by 0.001% of 3877.3191 - largest nonzero change 0.0016191669 ( 0.0019209201%) - largest zero change 0
0  Obj 9.1119677e+08 Primal inf 5.9666267 (1)
Optimal - objective value 9.1119527e+08
Perturbing problem by 0.001% of 1041.3649 - largest nonzero change 0.00072607783 ( 0.00086139208%) - largest zero change 0
0  Obj 9.1119637e+08 Primal inf 69.33954 (1)
Primal infeasible - objective value 9.1120174e+08
Perturbing problem by 0.001% of 3877.3191 - largest nonzero change 0.034124995 ( 0.0019209201%) - largest zero change 0
0  Obj 9.1119772e+08 Primal inf 19.032206 (1)
Primal infeasible - objective value 9.1120309e+08
Perturbing problem by 0.001% of 3877.3191 - largest nonzero change 0.034124995 ( 0.0019209201%) - largest zero change 0
0  Obj 9.1119772e+08 Primal inf 6.0976944 (1)
Optimal - objective value 9.112184e+08
Perturbing problem by 0.001% of 82.182157 - largest nonzero change 8.7260408e-05 ( 0.00037716099%) - largest zero change 0
0  Obj 9.1121888e+08 Primal inf 0.057053553 (1)
Optimal - objective value 9.112184e+08
Perturbing problem by 0.001% of 1963064.5 - largest nonzero change 0.015666646 ( 0.078219213%) - largest zero change 0
0  Obj 9.1126378e+08 Primal inf 0.018767964 (1)
Primal infeasible - objective value 9.1126378e+08
Perturbing problem by 0.001% of 82.182157 - largest nonzero change 8.7260408e-05 ( 0.00037716099%) - largest zero change 6.5628788e-05
0  Obj 9.1121917e+08 Primal inf 0.018767964 (1)
Primal infeasible - objective value 9.1121917e+08
Perturbing problem by 0.001% of 82.182157 - largest nonzero change 8.7260408e-05 ( 0.00037716099%) - largest zero change 6.5628788e-05
0  Obj 9.1121917e+08 Primal inf 0.020169728 (1)
Optimal - objective value 9.112184e+08
0  Obj 8.6103248e+08 Primal inf 16623810 (9)
Optimal - objective value 9.112184e+08

和上面的一样。

Integer solution of 9.112184e+08 found by DiveCoefficient after 0 iterations and 0 nodes (0.01 seconds)

表示求解器找到了一个整数解,目标函数值为 9.1208831e+08(即 912088310)。找到整数解的策略是 DiveCoefficient(种启发式方法,用于在分支定界算法中快速找到可行解)。0 iterations:表示求解器在找到整数解之前没有进行任何迭代。0 nodes:表示求解器在找到整数解之前没有探索任何节点。

Presolve 30 (-25) rows, 32 (-86) columns and 71 (-253) elements
Presolve 30 (-25) rows, 32 (-86) columns and 71 (-253) elements
Presolve 26 (-4) rows, 28 (-4) columns and 63 (-8) elements
processed model has 26 rows, 28 columns (18 integer (5 of which binary)) and 63 elements
Full problem 55 rows 118 columns, reduced to 26 rows 28 columns
Exiting on maximum solutions
Partial search - best objective 1e+50 (best possible 8.8990479e+08), took 0 iterations and 0 nodes (0.02 seconds)
Maximum depth 0, 0 variables fixed on reduced cost
Optimal - objective value 8.7998479e+08
Perturbing problem by 0.001% of 18299.794 - largest nonzero change 0.60002465 ( 0.021224685%) - largest zero change 0
0  Obj 8.8003794e+08 Primal inf 41723.835 (27)
42  Obj 8.9654007e+08 Primal inf 96.468602 (3)
Optimal - objective value 8.965096e+08
Optimal - objective value 8.965096e+08
Perturbing problem by 0.001% of 626813.98 - largest nonzero change 0.79621452 ( 0.0095952248%) - largest zero change 0
0  Obj 8.9650894e+08 Primal inf 147331.73 (36)
36  Obj 9.0916019e+08
Optimal - objective value 9.0916037e+08
Optimal - objective value 9.0916037e+08
Perturbing problem by 0.001% of 730088.61 - largest nonzero change 0.77766175 ( 0.0040636189%) - largest zero change 0
0  Obj 9.0916015e+08 Primal inf 17777.811 (19)
18  Obj 9.1058984e+08 Dual inf 0.080854872 (1)
19  Obj 9.1058984e+08
Optimal - objective value 9.1058984e+08
Optimal - objective value 9.1058984e+08
Perturbing problem by 0.001% of 248911.25 - largest nonzero change 0.75970928 ( 0.82579228%) - largest zero change 0
0  Obj 9.1057041e+08 Primal inf 0.99493945 (13)
Optimal - objective value 9.1058984e+08
Optimal - objective value 9.1058984e+08
Perturbing problem by 0.001% of 297548.55 - largest nonzero change 0.28994923 ( 0.82578863%) - largest zero change 0
0  Obj 9.1058031e+08 Primal inf 1.3621969 (5)
Optimal - objective value 9.1058984e+08
Optimal - objective value 9.1058984e+08
Perturbing problem by 0.001% of 280965.61 - largest nonzero change 0.36464889 ( 0.42667669%) - largest zero change 0
0  Obj 9.1057553e+08 Primal inf 0.0006394539 (2)
Optimal - objective value 9.1058984e+08
Optimal - objective value 9.1058984e+08
Perturbing problem by 0.001% of 280965.61 - largest nonzero change 0.36464889 ( 0.42667669%) - largest zero change 0
0  Obj 9.1057553e+08 Primal inf 0.0010588266 (1)
Optimal - objective value 9.1058984e+08
Optimal - objective value 9.1058984e+08
Perturbing problem by 0.001% of 286491.66 - largest nonzero change 0.61230549 ( 0.6445745%) - largest zero change 0
0  Obj 9.1057443e+08 Primal inf 7.4716279e-08 (1)
Optimal - objective value 9.1058984e+08
Perturbing problem by 0.001% of 283794.29 - largest nonzero change 0.62536667 ( 0.091800681%) - largest zero change 0
0  Obj 9.1058749e+08 Primal inf 2.2824658e-07 (1)
Optimal - objective value 9.1058988e+08
Perturbing problem by 0.001% of 211815.68 - largest nonzero change 0.30098052 ( 0.0896939%) - largest zero change 0
0  Obj 9.1058781e+08 Primal inf 2.6658051e-07 (1)
Optimal - objective value 9.1058988e+08
Perturbing problem by 0.001% of 207388.32 - largest nonzero change 0.090636653 ( 0.00013149838%) - largest zero change 0
0  Obj 9.1058988e+08 Primal inf 3.9552527e-07 (1)
Optimal - objective value 9.1058989e+08
Perturbing problem by 0.001% of 51812.943 - largest nonzero change 0.00053109911 ( 8.7888576e-05%) - largest zero change 0
0  Obj 9.1058989e+08 Primal inf 4.2547754e-07 (1)
Optimal - objective value 9.1058993e+08
0  Obj 9.1058993e+08 Primal inf 4.8127331e-07 (1)
Optimal - objective value 9.1058997e+08
0  Obj 9.1058997e+08 Primal inf 0.0082739516 (1)
Optimal - objective value 9.1058998e+08
0  Obj 9.1058998e+08 Primal inf 0.61623498 (1)
Primal infeasible - objective value 9.1058998e+08
0  Obj 9.1058998e+08 Primal inf 0.61623498 (1)
Primal infeasible - objective value 9.1058998e+08
0  Obj 9.1058998e+08 Primal inf 0.81197869 (1)
Optimal - objective value 9.1059336e+08
Perturbing problem by 0.001% of 5664520.9 - largest nonzero change 0.056310113 ( 0.011045629%) - largest zero change 0
0  Obj 9.1059336e+08 Primal inf 0.87522586 (1)
Primal infeasible - objective value 9.1059336e+08
Perturbing problem by 0.001% of 5152718.3 - largest nonzero change 0.051222373 ( 0.010048127%) - largest zero change 0
0  Obj 9.1059336e+08 Primal inf 0.87522586 (1)
Primal infeasible - objective value 9.1059336e+08
Perturbing problem by 0.001% of 5152718.3 - largest nonzero change 0.051222373 ( 0.010048127%) - largest zero change 0
0  Obj 9.1059336e+08 Primal inf 0.84804365 (1)
Optimal - objective value 9.1067422e+08
Perturbing problem by 0.001% of 5664520.9 - largest nonzero change 0.056310113 ( 0.011045629%) - largest zero change 0
0  Obj 9.1067422e+08 Primal inf 5.744537 (1)
Primal infeasible - objective value 9.1067422e+08
Perturbing problem by 0.001% of 5152718.3 - largest nonzero change 0.051222373 ( 0.010048127%) - largest zero change 0
0  Obj 9.1067422e+08 Primal inf 5.744537 (1)
Primal infeasible - objective value 9.1067422e+08
Perturbing problem by 0.001% of 5152718.3 - largest nonzero change 0.051222373 ( 0.010048127%) - largest zero change 0
0  Obj 9.1067422e+08 Primal inf 0.0026365485 (1)
Optimal - objective value 9.1067447e+08
0  Obj 8.6099296e+08 Primal inf 16659683 (10)
Optimal - objective value 9.1067447e+08
Integer solution of 9.1067447e+08 found by DiveCoefficient after 116 iterations and 0 nodes (0.04 seconds)
26 added rows had average density of 10.807692
At root node, 26 cuts changed objective from 8.7998479e+08 to 9.1058984e+08 in 8 passes
Cut generator 0 (Probing) - 32 row cuts average 7.3 elements, 2 column cuts (2 active)  in 0.006 seconds - new frequency is 1
Cut generator 1 (Gomory) - 33 row cuts average 15.3 elements, 0 column cuts (0 active)  in 0.000 seconds - new frequency is 1
Cut generator 2 (Knapsack) - 0 row cuts average 0.0 elements, 0 column cuts (0 active)  in 0.000 seconds - new frequency is -100
Cut generator 3 (Clique) - 0 row cuts average 0.0 elements, 0 column cuts (0 active)  in 0.000 seconds - new frequency is -100
Cut generator 4 (MixedIntegerRounding2) - 0 row cuts average 0.0 elements, 0 column cuts (0 active)  in 0.001 seconds - new frequency is -100
Cut generator 5 (FlowCover) - 0 row cuts average 0.0 elements, 0 column cuts (0 active)  in 0.002 seconds - new frequency is -100
Cut generator 6 (TwoMirCuts) - 33 row cuts average 19.2 elements, 0 column cuts (0 active)  in 0.000 seconds - new frequency is 1
Optimal - objective value 9.1058984e+08
Optimal - objective value 9.1058984e+08
Exiting as integer gap of 84629.782 less than 1e-10 or 0.01%

Exiting:表示求解器正在退出求解过程。
integer gap of 84629.782:表示整数间隙(integer gap)为 84629.782。整数间隙是当前最优整数解和当前最优松弛解(通常是线性松弛解)之间的差距。
less than 1e-10 or 0.01%:表示整数间隙小于 1e-10 或 0.01%(相对MIP间隙)。求解器通常会在整数间隙小于某个阈值时停止求解,因为此时认为已经找到了足够接近最优解的解。

Search completed - best objective 910674469.96, took 116 iterations and 0 nodes (0.04 seconds)
Maximum depth 0, 0 variables fixed on reduced cost
0  Obj 8.6099296e+08 Primal inf 16659683 (10)
Optimal - objective value 9.1067447e+08
Perturbing problem by 0.001% of 3828.9168 - largest nonzero change 5.0210043e-05 ( 2.0875811e-05%) - largest zero change 0
0  Obj 8.8639928e+08 Primal inf 35240.692 (12)
11  Obj 9.1067448e+08 Primal inf 0.090200173 (2)
Optimal - objective value 9.1067447e+08
Cuts at root node changed objective from 8.79985e+08 to 9.1059e+08
Probing was tried 8 times and created 34 cuts of which 0 were active after adding rounds of cuts (0.006 seconds)
Gomory was tried 8 times and created 33 cuts of which 0 were active after adding rounds of cuts (0.000 seconds)
Knapsack was tried 8 times and created 0 cuts of which 0 were active after adding rounds of cuts (0.000 seconds)
Clique was tried 8 times and created 0 cuts of which 0 were active after adding rounds of cuts (0.000 seconds)
MixedIntegerRounding2 was tried 8 times and created 0 cuts of which 0 were active after adding rounds of cuts (0.001 seconds)
FlowCover was tried 8 times and created 0 cuts of which 0 were active after adding rounds of cuts (0.002 seconds)
TwoMirCuts was tried 8 times and created 33 cuts of which 0 were active after adding rounds of cuts (0.000 seconds)
ZeroHalf was tried 1 times and created 0 cuts of which 0 were active after adding rounds of cuts (0.000 seconds)
Optimal - objective value 9.1067447e+08
Optimal - objective value 9.1067447e+08
Perturbing problem by 0.001% of 2462.7962 - largest nonzero change 0.019792733 ( 0.015754388%) - largest zero change 0
0  Obj 5.6154927e+08 Primal inf 74100000 (3) Dual inf 9.3399997 (3)
6  Obj 9.1071151e+08
Optimal - objective value 9.1067447e+08
Optimal - objective value 9.1067447e+08
Presolve 0 (-389) rows, 0 (-305) columns and 0 (-904) elements
Crash put 135 variables in basis, 0 dual infeasibilities
Optimal - objective value 9.1067447e+08
After Postsolve, objective 9.1067447e+08, infeasibilities - dual 0 (0), primal 0 (0)
Optimal - objective value 9.1067447e+08
Perturbing problem by 0.001% of 21924.896 - largest nonzero change 0.01840472 ( 0.079455288%) - largest zero change 0.017904698
0  Obj 1.04e+08 Primal inf 39014022 (51)
51  Obj 9.1070059e+08
Optimal - objective value 9.1067447e+08
Presolve determined that the problem was infeasible with tolerance of 1e-08
Optimal - objective value 9.1067447e+08Result - Optimal solution found (within gap tolerance)
Objective value:                910674469.96000004
Lower bound:                    910589840.178
Gap:                            0.00
Enumerated nodes:               0
Total iterations:               116
Time (CPU seconds):             0.05
Time (Wallclock seconds):       0.05Total time (CPU seconds):       0.05   (Wallclock seconds):       0.05
  • Objective value: 910674469.96000004,这是求解器找到的目标函数的值,也就是优化问题的解。这个值表示在当前解下,目标函数的值是 910674469.96000004。
  • Lower bound: 910589840.178,对于某些类型的优化问题(如整数规划),求解器会计算一个下界来帮助评估当前解的质量。
  • Gap: 0.00,间隙:这是目标值和下界之间的相对差距,通常表示为百分比。间隙为 0.00 表示求解器找到了一个最优解,或者当前解与下界之间的差距非常小,可以认为是最优解。
  • Enumerated nodes: 0,枚举的节点数:这是求解器在搜索过程中枚举的节点数。对于某些类型的优化问题(如分支定界法),求解器会枚举不同的节点来找到最优解。在这个例子中,枚举的节点数为 0,可能表示求解器在初始节点就找到了最优解。
  • Total iterations: 116,总迭代次数:这是求解器在求解过程中进行的迭代次数。迭代次数为 116 表示求解器在找到最优解之前进行了 116 次迭代。
  • Time (CPU seconds): 0.05,CPU 时间:这是求解器在求解过程中使用的 CPU 时间,单位是秒。在这个例子中,求解器使用了 0.05 秒的 CPU 时间。
  • Time (Wallclock seconds): 0.05,墙钟时间:这是求解器在求解过程中使用的实际时间,单位是秒。墙钟时间为 0.05 秒表示求解器在实际时间中用了 0.05 秒来找到解。

这篇关于OR-Tools求解器(CBC(Coin-or branch and cut))日志解度的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1041912

相关文章

Python绘制TSP、VRP问题求解结果图全过程

《Python绘制TSP、VRP问题求解结果图全过程》本文介绍用Python绘制TSP和VRP问题的静态与动态结果图,静态图展示路径,动态图通过matplotlib.animation模块实现动画效果... 目录一、静态图二、动态图总结【代码】python绘制TSP、VRP问题求解结果图(包含静态图与动态图

Java 日志中 Marker 的使用示例详解

《Java日志中Marker的使用示例详解》Marker是SLF4J(以及Logback、Log4j2)提供的一个接口,它本质上是一个命名对象,你可以把它想象成一个可以附加到日志语句上的标签或戳... 目录什么是Marker?为什么使用Markejavascriptr?1. 精细化的过滤2. 触发特定操作3

linux查找java项目日志查找报错信息方式

《linux查找java项目日志查找报错信息方式》日志查找定位步骤:进入项目,用tail-f实时跟踪日志,tail-n1000查看末尾1000行,grep搜索关键词或时间,vim内精准查找并高亮定位,... 目录日志查找定位在当前文件里找到报错消息总结日志查找定位1.cd 进入项目2.正常日志 和错误日

SpringBoot日志级别与日志分组详解

《SpringBoot日志级别与日志分组详解》文章介绍了日志级别(ALL至OFF)及其作用,说明SpringBoot默认日志级别为INFO,可通过application.properties调整全局或... 目录日志级别1、级别内容2、调整日志级别调整默认日志级别调整指定类的日志级别项目开发过程中,利用日志

深度剖析SpringBoot日志性能提升的原因与解决

《深度剖析SpringBoot日志性能提升的原因与解决》日志记录本该是辅助工具,却为何成了性能瓶颈,SpringBoot如何用代码彻底破解日志导致的高延迟问题,感兴趣的小伙伴可以跟随小编一起学习一下... 目录前言第一章:日志性能陷阱的底层原理1.1 日志级别的“双刃剑”效应1.2 同步日志的“吞吐量杀手”

java -jar example.jar 产生的日志输出到指定文件的方法

《java-jarexample.jar产生的日志输出到指定文件的方法》这篇文章给大家介绍java-jarexample.jar产生的日志输出到指定文件的方法,本文给大家介绍的非常详细,对大家的... 目录怎么让 Java -jar example.jar 产生的日志输出到指定文件一、方法1:使用重定向1、

c++日志库log4cplus快速入门小结

《c++日志库log4cplus快速入门小结》文章浏览阅读1.1w次,点赞9次,收藏44次。本文介绍Log4cplus,一种适用于C++的线程安全日志记录API,提供灵活的日志管理和配置控制。文章涵盖... 目录简介日志等级配置文件使用关于初始化使用示例总结参考资料简介log4j 用于Java,log4c

Android 缓存日志Logcat导出与分析最佳实践

《Android缓存日志Logcat导出与分析最佳实践》本文全面介绍AndroidLogcat缓存日志的导出与分析方法,涵盖按进程、缓冲区类型及日志级别过滤,自动化工具使用,常见问题解决方案和最佳实... 目录android 缓存日志(Logcat)导出与分析全攻略为什么要导出缓存日志?按需过滤导出1. 按

nginx配置错误日志的实现步骤

《nginx配置错误日志的实现步骤》配置nginx代理过程中,如果出现错误,需要看日志,可以把nginx日志配置出来,以便快速定位日志问题,下面就来介绍一下nginx配置错误日志的实现步骤,感兴趣的可... 目录前言nginx配置错误日志总结前言在配置nginx代理过程中,如果出现错误,需要看日志,可以把

Spring Boot集成/输出/日志级别控制/持久化开发实践

《SpringBoot集成/输出/日志级别控制/持久化开发实践》SpringBoot默认集成Logback,支持灵活日志级别配置(INFO/DEBUG等),输出包含时间戳、级别、类名等信息,并可通过... 目录一、日志概述1.1、Spring Boot日志简介1.2、日志框架与默认配置1.3、日志的核心作用