1

我無法找到有效使用MIP在CPLEX java API中啓動的方法。使用MIP從ILOG CPLEX Optimizer開始java API

我有一個線性問題,我需要通過改變一個約束或改變目標來解決很多次,所以我認爲從解決方案開始(使用MIP開始)可能是加速計算的好方法。

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

問題是,它並不會加快東西它使速度較慢,給了我這個消息:

警告:無解,從1點開始MIP發現。

所以也許我不應該給MIP啓動所有的變量,但我怎麼知道給它什麼變量?

我也試圖改變MIP開始努力,但它似乎沒有任何區別...

爲什麼它不進行計算更快?是否有更好的方法來解決只有少數差異的許多問題?

+0

你應該注意到你已經交叉發佈這個或交換。 – raoulcousins 2013-03-18 20:04:45

回答

2

此消息通常意味着您未在模型中爲足夠的決策變量指定值,或者您給予cplex的值不可行。您可以通過對變量使用IloNumVar.setBounds來檢查可行性,然後嘗試解決模型。如果出現不可行的情況,那麼你可以寫一個iis文件。 CPLEX嘗試,但無法使用您的mipstart,因此運行速度較慢。一個好的MIP開始可以大大提高解決方案的時間,尤其是如果cplex很難找到第一個可行的解決方案,並且您的MIP start具有接近最優的目標函數值,但是對於許多情況,它不會產生任何區別。熱啓動MIP比熱啓動LP要困難得多。