CPLEX决策变量,其中array [i]为值

时间:2014-12-06 15:39:05

标签: java cplex indices

我尝试创建一组决策变量,这些变量不使用for-Loop中的整数值,而是从数组中获取值。

原因是我希望 indices 与数组中的数字相同。 Array的编号可能如下:

int [] Array = {12,11,10,15,16,17};

运行时出现arrayoutofboundsexception错误。

这里是代码的一部分:

 x = new IloNumVar[inputData.Array().length][inputData.Array().length][inputData.Arraytwo().length];
    for (int i=0; i< inputData.Array().length;i++){
        this.x[inputData.Array()[i]]= new IloNumVar[inputData.Array().length][]; 
            for (int j=0; j< inputData.Array().length;j++){
            this.x[inputData.Array()[[i][j] = new IloNumVar[inputData.Arraytwo().length];
            for (int k=0; k<inputData.get_sub_K_set().length;k++){
                this.xx[inputData.Array()[i]][inputData.Array()[j]][inputData.Arraytwo()[k]]= this.boolVar("x:i_"+inputData.Array()[i]+"-j_"+inputData.Array()[j]+"-k_"+inputData.Arraytwo()[k]);
            }
        }
    }

我感谢任何帮助。 谢谢你们!

1 个答案:

答案 0 :(得分:0)

您将Array声明为:

int [] Array = {12,11,10,15,16,17};

然后迭代:

for (int i=0; i< inputData.Array().length;i++){

这意味着i的值为{0,1,2,3,4,5}

和x定义为IloNumVar[6][6][6]

当你这样做时:

this.x[inputData.Array()[i]]

是错误,因为你在x变量中没有索引{12,11,10,15,16,17}