В CPLEX OPL, как написать суммирование i (от 1 до i-1) в ограничениях?Суммирование в ограничениях Cplex
другой вопрос: как я могу ввести 3-мерную матрицу?
Большое спасибо заранее,
В CPLEX OPL, как написать суммирование i (от 1 до i-1) в ограничениях?Суммирование в ограничениях Cplex
другой вопрос: как я могу ввести 3-мерную матрицу?
Большое спасибо заранее,
Вы можете создать 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];
Чтобы получить 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++;
}
}
}
}