2017-04-19 68 views
0

我使用CPLEX Python API構建了混合整數LP,並使用MATLAB構建了一個蠻力檢查程序(解決LP問題)。我發現,對於我創建的特定隨機示例,強力檢查發現2個最優解,即相同的客觀值。我們姑且稱之爲A和B.然而,僅CPLEX發現他們中的一個,例如A.如何爲CPLEX中的MIP獲取多個最佳解決方案?

於是,我就爲這些參數設置不同的值:

model.parameters.mip.pool.capacity 
model.parameters.mip.pool.intensity 
model.parameters.mip.limits.populate 
model.parameters.mip.pool.absgap 
model.parameters.mip.pool.replace 

,最後打電話model.populate_solution_pool()。這給了我解決方案B,但它沒有找到A.是否有其他方法可以找到超過1個最佳解決方案?

+0

此[技術說明](http://www-01.ibm.com/support/docview.wss?uid=swg21399929)可能會有幫助。 – rkersh

回答

0

或許你可以:

  • 找到一個最佳的解決方案
  • 一個術語添加到懲罰該解決方案
  • 檢查,看是否有匹配的值(公差另一個可行的方案你的目標函數)以前找到的最佳解決方案。如果是這樣,重複。