【问题标题】:CPLEX decision variables with array[i] as values以数组 [i] 作为值的 CPLEX 决策变量
【发布时间】:2015-02-04 15:35:41
【问题描述】:

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

原因是我希望 indices 与数组中的 numbers 相同。 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]);
            }
        }
    }

感谢您的帮助。 谢谢各位!

【问题讨论】:

    标签: java cplex indices


    【解决方案1】:

    您将数组声明为:

    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}

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-03
      • 1970-01-01
      • 2021-10-17
      • 1970-01-01
      相关资源
      最近更新 更多