从矩阵中提取列
Extract column as set from a matrix
在 MiniZinc 中,我需要从矩阵中提取一列,以便得到一个由该列的值组成的集合。
例如,如果我有这样的 table:
1 0 0
6 4 6
3 5 8
我想提取int的集合1 6 3
,以便有一个可以在这个集合中流动的索引。有执行此操作的命令吗?
您可以将 col() 函数与 array2set() 结合使用。这是一个使用固定矩阵 "a":
的简单模型
int n: 3;
array[int,int] of int: a =
array2d(1..n,1..n,
[
1, 0, 0,
6, 4, 6,
3, 5, 8,
]);
set of int: s1 = array2set(col(a,1));
solve satisfy;
constraint true;
output [
"col(a,1): \(col(a,1))\n",
"s1: \(s1)\n"
];
那么输出就是集合“{1,3,6}”。
在 MiniZinc 中,我需要从矩阵中提取一列,以便得到一个由该列的值组成的集合。 例如,如果我有这样的 table:
1 0 0
6 4 6
3 5 8
我想提取int的集合1 6 3
,以便有一个可以在这个集合中流动的索引。有执行此操作的命令吗?
您可以将 col() 函数与 array2set() 结合使用。这是一个使用固定矩阵 "a":
的简单模型int n: 3;
array[int,int] of int: a =
array2d(1..n,1..n,
[
1, 0, 0,
6, 4, 6,
3, 5, 8,
]);
set of int: s1 = array2set(col(a,1));
solve satisfy;
constraint true;
output [
"col(a,1): \(col(a,1))\n",
"s1: \(s1)\n"
];
那么输出就是集合“{1,3,6}”。