如何增加 SCIP 求解器日志的详细级别

How to increase the verbosity level of SCIP solver log

我有以下 SCIP 求解器日志

 time | node  | left  |LP iter|LP it/n| mem |mdpt |frac |vars |cons |cols |rows |
  0.0s|     1 |     0 |     4 |     - | 6k|   0 |   0 |   6 |  200 |   6 |  200 |
  0.0s|     1 |     0 |     7 |     - | 6k|   0 |   0 |   8 |  200 |   8 |  200 |
  0.0s|     1 |     0 |    10 |     - | 6k|   0 |   0 |   9 |  200 |   9 |  200 |
  0.0s|     1 |     0 |    10 |     - | 6k|   0 |   0 |   9 |  200 |   9 |  200 |
  0.0s|     1 |     0 |    10 |     - | 6k|   0 |   0 |   9 |  200 |   9 |  200 |
  0.0s|     1 |     0 |    10 |     - | 6k|   0 |   0 |   9 |  200 |   9 |  200 |

我希望日志更详细,因为在每次 LP 迭代时显示一个新行。到目前为止我只遇到

SCIP_CALL( SCIPsetIntParam(scip, "display/verblevel", 5));

这是在增加,但没有我想要的那么多,也没有达到我想要的程度。本质上,我也想在 LP iter 4、5、6、7、8、9 和 10 处设置行。

您不能在每次 LP 迭代时打印一行 SCIP 输出。可以设置display/freq为1,SCIP会在每个节点显示一行。

此外,您可以将 display/lpinfo 设置为 true,然后 LP 求解器将打印其他信息。 尽管 ,但我认为任何 LP 求解器都不会为每次 LP 迭代打印一行。您将 SCIP 与 SoPlex 一起使用吗?

编辑:查看后,您可以使用参数“--int:displayfreq”将 SoPlex 频率设置为 1。我不认为你可以通过 SCIP api 来设置它。如果您只想求解 LP,您可以在 SoPlex 中完成,否则您将不得不编辑 lpi_spx2 源代码。