2016-03-17 19 views
0

我嘗試多次運行模型,同時在CPLEX中的每次迭代中增加某個變量的某個係數。爲此,我查看了名爲「mulprod」的CPLEX安裝目錄中的示例文件。我使用的是與我的模型中的示例相同的代碼,但是我已對其進行了一些更改,以便將示例適用於我自己的模型。熱啓動準備失敗:CPLEX中的1262錯誤在迭代多個方案時

更具體而言,到目前爲止我也做了變化包括:

  • 改變變量「capFlour」到「係數_」,這是我爲了使用整數變量,以指示該變量的係數我我願意在每一次迭代中增加。
  • 改變我們使用客觀的價值爲我的問題,自己的目標價值,這是51

我將演示的變化我在下面做了部分代碼:

//The original code (from the example "mulprod"): 

main { 
... 
var capFlour = produce.Capacity["flour"]; 
... 
data.Capacity["flour"] = capFlour; 
... 
if (Math.abs(cplex.getObjValue() - 393.5)>=0.01) { //Objective value of the example model 
    status = -1; 
} 
... 
} 

//My code 

main { 
... 
var capFlour = produce.coeff; 
... 
data.coeff = capFlour; 
... 
if (Math.abs(cplex.getObjValue() - 51)>=0.01) { //Objective value of my model 
    status = -1; 
} 
... 
} 

運行該模型給我的腳本日誌中的以下信息:

Solve with capFlour = 1 

OBJECTIVE: 51 
warm start preparation failed: 1262 

值1是「_係數」的初始值和解決的W型沒有主要方法(使用coeff = 1)給我的客觀價值51.

什麼可能導致我得到這個錯誤,我該如何解決它?

回答

0

我得到錯誤消息的原因是因爲我的模型是混合整數問題而不是LP模型。顯然,爲了使用thisOplModel.generate()爲模型創建基礎,不適用於混合整數問題。選擇這條線爲我解決了這個問題。