簡體   English   中英

在ILOG CPLEX Optimizer Java API中開始使用MIP

[英]Using MIP starts in ILOG CPLEX Optimizer java API

我找不到在CPLEX Java API中有效使用MIP啟動的方法。

我有一個線性問題,我需要通過僅更改一個約束或更改目標來解決許多問題,因此我認為從解決方案開始(從MIP開始)可能是加快計算速度的好方法。

因此,為了做到這一點,在我第一次解決問題后,我將所有變量保存在IloNumVar數組中,並使用cplex.addMIPStart將其加倍傳遞給其他cplex對象。

問題是它並沒有加快任何速度,使其變慢,並顯示以下消息:

警告:從1個MIP開始找不到解決方案。

所以也許我不應該讓MIP開始所有變量,但是我怎么知道要給它什么變量呢?

我還嘗試更改了MIP的啟動工作,但似乎沒有任何區別...

為什么不使計算更快? 有沒有更好的方法來解決只有幾個差異的許多問題?

該消息通常意味着您或者沒有為模型中的足夠決策變量指定值,或者為cplex提供的值不可行。 您可以通過對變量使用IloNumVar.setBounds然后嘗試求解模型來檢查可行性。 如果發現這不可行,則可以編寫iis文件。 CPLEX嘗試,但是無法利用您的mipstart,因此它運行速度較慢。 良好的MIP啟動可以極大地縮短解決方案時間,尤其是在cplex很難找到第一個可行的解決方案並且您的MIP啟動具有接近最佳值的目標函數值的情況下,但是在許多情況下,它並沒有任何作用區別。 熱啟動MIP比熱啟動LP難得多。

暫無
暫無

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

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