1
0
This repository has been archived on 2025-03-06. You can view files and clone it, but cannot push or open issues or pull requests.
Jip J. Dekker f2a1c4e389 Squashed 'software/mza/' content from commit f970a59b17
git-subtree-dir: software/mza
git-subtree-split: f970a59b177c13ca3dd8aaef8cc6681d83b7e813
2021-07-11 16:34:30 +10:00

19 lines
743 B
MiniZinc

%-----------------------------------------------------------------------------%
% A 'table' constraint table(x, T) represents the constraint x in T where we
% consider each row in T to be a tuple and T as a set of tuples.
%
% Linear version.
%
% See also the equality encoding of the 'element' constraint.
%-----------------------------------------------------------------------------%
predicate fzn_table_int(array[int] of var int: x, array[int, int] of int: t) =
let { set of int: it = index_set_1of2(t),
array[it] of var 0..1: lambda }
in
sum(lambda) = 1
/\
forall(j in index_set(x))( sum(i in it)( t[i,j]*lambda[i] ) = x[j] );
%-----------------------------------------------------------------------------%