Java getIIS和DefinerConflict的区别

Java getIIS和DefinerConflict的区别,java,linear-programming,cplex,Java,Linear Programming,Cplex,我用cplex来解决一个线性规划问题。由于当问题规模很大时调用getIIS的时间很长,所以我尝试使用refineConflict方法 而是找到最小的冲突。但是调用getIIS和refineConflict的结果是非常不同的。下面是一个不可满足线性规划问题的结果 调用getIIS的结果: IloRange 3_4 : 0.0 <= (-1.0*water_t_4 + 1.0*water_v_1_4) <= infinity IloRange 3_4 : 5.0 <= (2.0*w

我用cplex来解决一个线性规划问题。由于当问题规模很大时调用getIIS的时间很长,所以我尝试使用refineConflict方法 而是找到最小的冲突。但是调用getIIS和refineConflict的结果是非常不同的。下面是一个不可满足线性规划问题的结果

调用getIIS的结果:

IloRange 3_4 : 0.0 <= (-1.0*water_t_4 + 1.0*water_v_1_4) <= infinity
IloRange 3_4 : 5.0 <= (2.0*water_t_4 + 1.0*water_v_2_4) <= infinity
IloRange 4_5 : 0.0 <= (-1.0*water_v_2_4 - 1.0*water_t_5 + 1.0*water_v_2_5) <= infinity
IloRange 4_5 : 2.0 <= (1.0*water_v_1_4) <= 2.0
IloRange 5_6 : 0.0 <= (1.0*water_v_2_5) <= 0.0

IloRange 3_4:0.0请发布一个最简单的工作示例,说明您为获得这些结果所做的一切。另外,您使用什么版本的cplex?自版本10以来,getIIS似乎不受支持。我的cplex的版本是cplex_studio125.win-x86-64。
Possible : IloRange 4_5 : 2.0 <= (1.0*water_v_1_4) <= 2.0
Possible : IloRange 5_6 : 0.0 <= (1.0*water_v_2_5) <= 0.0
cplex=new IloCplex();
cplex.setParam(IloCplex.IntParam.Threads,1);
cplex.setParam(IloCplex.IntParam.RootAlg, IloCplex.Algorithm.Concurrent);
cplex.addRangel()...
if(!cplex.solve){
   IloConstraint[] arr is the whole linear constraints 
    double prefs[] = new double[arr.length];
    Arrays.fill(prefs, 1);
    if(cplex.refineConflict(arr, prefs)){               
      ConflictStatus[] conflicts = cplex.getConflict(arr);
      for (int i1 = 0; i1 < conflicts.length;i1++ ){                 
        if(conflicts[i1]== ConflictStatus.Member)
           System.out.println(" Proved : " + arr[i1]);
        else if (conflicts[i1]==ConflictStatus.PossibleMember)
           System.out.println(" Possible : " + arr[i1]);
      }
    }
 }