如何禁用 SCIP 中的警告输出?

How can I disable warning output in SCIP?

如何修复警告:

WARNING: Original variable <x> not released when freeing SCIP problem <my_solver>.

每 x 发送一次垃圾邮件。

选项 1:禁用输出。

参考:https://www.scipopt.org/doc/html/PARAMETERS.php Verblevel=0 禁用标准输出,但不禁用错误/警告。我怎样才能让 SCIP 保持安静?

选项 2:修复所谓的内存泄漏。

即使我显然正确地释放了问题、变量、约束和表达式,也会发生这种情况。我可以通过再次尝试释放它们并观察程序爆炸来验证这一点。

这个答案:http://listserv.zib.de/pipermail/scip/2020-December/004161.html 暗示在使用转换操作时会发生这种情况,而我没有这样做。

我还使用 valgrind 验证了没有内存泄漏,虽然它声称有一些内存“仍然可以访问”,但无论我设置和解决多少问题,内存都不会增长。

根据@stefan 的建议,禁用警告输出的最简单方法是使用:

void SCIPsetMessagehdlrQuiet ( SCIP * scip, SCIP_Bool quiet )   

此处定义(针对 8.0):https://scipopt.org/doc/html/group__MessageOutputMethods.php#gadd04befbbea2ee42599ee26db33d52c9

通过 true 实际上禁用了这些警告。