2014-12-05 5 views

ответ

1

Вы можете создать Dvar с 3-х измерениях, используя что-то вроде:

dvar int+ x[1..2][1..7][1..3]; 

и, для того, чтобы подвести с использованием диапазона вы можете сделать:

dexpr int obj = sum(i in 1..2, j in 1..7, z in 1..3) x[i][j][z]; 
0

Чтобы получить 3-мерный ввод, вы можете flatten ваш трехмерный входной массив в 1-й массив, затем назначьте значения вашему 3-мерному массиву с помощью простого кода сценария OPL, например:

int array[0..I-1][0..J-1][0..K-1];//3-d array 
int input[I*J*K]=...;//1-d array to be read as input 

execute assignArray{ 
var index=0; 
for(var i=0;i<I;i++){ 
    for(var j=0;j<J;j++){ 
    for(var k=0;k<K;k++){ 
     array[i][j][k]=input[index]; 
     index++; 
    } 
    }  
} 
} 
Смежные вопросы