2016-03-17 17 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()为模型创建基础,不适用于混合整数问题。选择这条线为我解决了这个问题。