以数组 [i] 作为值的 CPLEX 决策变量



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

原因是我希望索引与数组中的数字相同。数组的编号可能如下所示:

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]);
            }
        }
    }

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

您将数组声明为:

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}索引。

最新更新