簡體   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