代码之家  ›  专栏  ›  技术社区  ›  haz

如何量化MiniZinc中的所有子集

  •  1
  • haz  · 技术社区  · 8 年前

    我想为MiniZinc中一组整数的每个子集创建一个约束,沿着这条线。。。

    constraint forall (S subset C, k in M) (
        % Some constraint over the set S, and integer k
    );
    

    我还想使用基数 S 在约束中,以及 C 只是一组整数。我可以使用子集的语法吗?(上述模型不起作用)。

    1 回复  |  直到 8 年前
        1
  •  2
  •   Dekker1    8 年前

    在大多数情况下,可以重新制定模型,以便不需要这些发电机。例如,考虑使用变量集:

    var set of C: S;
    % or if you want to declare S in a different way:
    % var set of 0..100: S; % Different declaration
    % constraint S subset C;
    forall (k in M) {
      % some cool constraints
    }
    

    这将使您能够创建包含约束的模型,说明“存在这样的集合 S ,以便所有约束都成立。”