Minizinc - 如何限制数组的每一列只包含给定整数中的一个?

Minizinc - How can I constrain each column of an array to contain only one of a given integer?

我正在尝试填充一个 10 行数组,以便每列包含一个“1”、一个“2”、一个“3”和七个“0”。有谁知道如何做到这一点?我尝试将列总数限制为 6,但返回的列有 6 个 1、2 个 3 等。是否有我不知道的 'count' 函数?谢谢!

至少可以使用三个约束条件:

  • global_cardinality
  • 计数
  • 也许 all_different_except_0

https://www.minizinc.org/2.0/doc-lib/doc-globals.html for a list of the global constraints supported in MiniZinc 2. The counting constraints are here: https://www.minizinc.org/2.0/doc-lib/doc-globals-counting.html

这里有一个如何使用 global_cardinality 的例子:http://hakank.org/minizinc/sudoku_pi.mzn