git-subtree-dir: software/mza git-subtree-split: f970a59b177c13ca3dd8aaef8cc6681d83b7e813
26 lines
867 B
MiniZinc
26 lines
867 B
MiniZinc
% RUNS ON mzn20_fd
|
|
% RUNS ON mzn-fzn_fd
|
|
include "among.mzn";
|
|
|
|
%-----------------------------------------------------------------------------%
|
|
% among
|
|
%-----------------------------------------------------------------------------%
|
|
var -100..100: among_vi;
|
|
array[1..10] of var -100..100: among_avi1 =
|
|
[4, 5, 5, 6, 6, 6, 7, 7, 7, 7];
|
|
array[1..10] of var -100..100: among_avi2 =
|
|
[4, 5, 5, 6, 6, 6, _, _, 8, 8];
|
|
|
|
% Testing it three ways, with different args unfixed each time.
|
|
constraint among(among_vi, among_avi1, {6,7}); % 1st arg unfixed -> 7
|
|
constraint among(5, among_avi2, {6,7}); % 2nd arg unfixed -> [...]
|
|
constraint forall(i in 7..10) ( among_avi2[i] != 6 );
|
|
|
|
solve satisfy;
|
|
|
|
output [
|
|
"among_avi1 = array1d(1..10, ", show(among_avi1), ");\n",
|
|
"among_avi2 = array1d(1..10, ", show(among_avi2), ");\n",
|
|
"among_vi = ", show(among_vi), ";\n"
|
|
];
|