2014-12-06 5 views
0

Я пытаюсь создать набор переменных решения, которые не используют целочисленные значения из цикла for-Loop, а вместо этого получают значение из массива.Переменные решения CPLEX с массивом [i] as values ​​

Причина заключается в том, что я хочу, чтобы индексы быть такой же, как и числа в массивах. Нумерация массива может выглядеть следующим образом:

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

Я признателен за любую помощь. Спасибо, ребята!

ответ

0

Вы объявляете массив, как:

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

и затем итерация в:

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

это означает, что значения г являются {0,1,2,3,4,5}

и х определяется как IloNumVar[6][6][6]

если сделаете:

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

есть и ошибка, потому что у вас нет индексов {12,11,10,15,16,17} в переменной x.

Смежные вопросы