繁体   English   中英

Cplex Python如何避免打印输出

[英]Cplex Python how to avoid printing the output

设置目标函数和约束后,我使用

prob.solve()
print prob.solution.get_objective_value()

实际上,我只想打印目标值,然而,它显示了很多cplex的信息,

Tried aggregator 1 time.
LP Presolve eliminated 5 rows and 1 columns.
All rows and columns eliminated.
Presolve time = -0.00 sec. (0.00 ticks)
0.5

我只想显示最后一行0.5,如何避免Cplex打印其他信息? 先感谢您。

cplex指定3个输出流:日志,错误,警告和结果。 您可以使用命令禁用输出。 set_xxx_stream(无)。 在你的例子中,

prob.set_log_stream(None)
prob.set_error_stream(None)
prob.set_warning_stream(None)
prob.set_results_stream(None)

将禁用所有输出。 您也可以指定输出文件,而不是None。 您还可以设置几个参数来控制cplex输出的详细程度,但这是防止cplex打印任何内容的最佳方法。

您可以使用mip.display参数调整详细级别:

# where c is a Cplex object
c.parameters.mip.display.set(0)

有关详细信息,请参见此处

试试这个:

 ans = prob.solution.get_objective_value()
 print ans.split('\n')[-1]

由于Cplex是商业广告,我无法测试我的解决方案是否有效。 但是你明白了:拆分字符串,只得到你想要的东西。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM