簡體   English   中英

在C#中從Cplex預先獲取結果

[英]Getting results from Cplex presolve in C#

當開始求解LP時,有沒有辦法獲得Cplex進行的預求解分析的結果? 特別是,我正在尋找有關冗余行的信息。 如果可能的話,僅運行預解決而不解決LP將很有用。 我正在從C#應用程序使用Cplex 12.5。

您可以在文件擴展名為“ .pre”的Cplex對象上使用ExportModel生成cplex預處理模型。 這將導致presolve運行,並使cplex將預解決的模型寫入文件。 輸出的格式是“ sav”格式,這是無損的,但不是人類可讀的。 您可以將其轉換為可讀的“ .lp”格式,但可以將其重新導入到另一個新的Cplex對象中,然后將該模型導出為.lp文件。

cplex.ExportModel("myModel.pre");

// convert to .lp file  
// Could also do this with interactive cplex
Cplex lp_converter = new Cplex();
lp_converter.ImportModel("myModel.pre");
lp_converter.ExportModel("myModelPresolved.lp");

然后,您可以閱讀預先解析的lp文件,並了解在那個階段cplex對您的模型有什么作用。 您可能會對cplex的作用范圍感到驚訝,甚至可能很難將預先解決的模型與原始模型進行協調。 您可以嘗試通過設置參數來更改預求解的程度。 例如,將參數PreLinear設置為1可能會使模型更易於識別。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM