如何设置ClpSolver求解时不输出日志?能否通过求解器选项实现?
ClpSolver关闭运行日志解决方案
可以通过配置求解器内置参数直接关闭运行日志,无需修改源码,不同调用场景的实现方式如下:
- 原生C++接口调用
初始化求解器实例后,调用setLogLevel()方法将日志级别设为0即可,示例代码:
补充说明:Clp日志级别取值范围为0~4,级别越高输出信息越详细,默认级别为1,会输出迭代过程、求解结果等信息。ClpSolver solver; solver.setLogLevel(0); // 0为最低日志级别,关闭所有输出 // 配置模型参数 solver.Solve(); // 调用求解接口不会产生任何日志 - 通过Google OR-Tools封装接口调用
可直接调用通用开关关闭输出,或设置Clp专属参数:# Python示例,其他语言逻辑一致 from ortools.linear_solver import pywraplp solver = pywraplp.Solver.CreateSolver('CLP') # 通用关闭输出方法 solver.EnableOutput(False) # 或设置Clp专属日志级别 solver.SetSolverSpecificParametersAsString('log_level 0') - 其他语言封装(C#/Java等)调用
所有官方维护的Clp封装接口都暴露了日志级别配置项,直接查找接口中LogLevel/log_level相关参数,设置为0即可关闭所有日志输出。
内容的提问来源于stack exchange,提问作者Mark
相关产品推荐
相关产品推荐

