Добавление массивов в OPL-Cplex - PullRequest
0 голосов
/ 06 мая 2020

Представьте, что у меня есть массивы, как показано ниже.

int a[1..4]=[1,2,3,4];
int b[1..2]=[5,6]

1) Если мне нужно создать массив c, как показано ниже, (1 строка и 6 столбцов)

int c[1..6]=[1,2,3,4,5,6] 

2) ЕСЛИ мне нужно создать 2D-массив, используя 2 вышеупомянутых массива. Например: объединить более 2, 1D массивов и создать массив (2 строки x 3 столбца)

int d [1..2] [1..3] = [[1,2,3], [ 4,5,6]]

Не могли бы вы посоветовать, как я могу получить выходные данные от Cplex.

1 Ответ

3 голосов
/ 06 мая 2020

Прямой ответ на ваш вопрос:

int a[1..4]=[1,2,3,4];
int b[1..2]=[5,6];

int c[i in 1..6] = (i <= 4) ? a[i] : b[i - 4];
int d[i in 1..2][j in 1..3] = c[(i - 1) * 3 + j];

main {
  writeln(thisOplModel.c);
  writeln(thisOplModel.d);
}

Однако для c вам может быть лучше использовать наборы. Они обеспечивают операцию объединения.

...