this repo has no description
at develop 1.0 kB view raw
1/*** 2!Test 3expected: 4- !Result 5 solution: !Solution 6 among_avi1: [4, 5, 5, 6, 6, 6, 7, 7, 7, 7] 7 among_avi2: [4, 5, 5, 6, 6, 6, 7, 7, 8, 8] 8 among_vi: 7 9***/ 10 11include "among.mzn"; 12 13%-----------------------------------------------------------------------------% 14% among 15%-----------------------------------------------------------------------------% 16var -100..100: among_vi ::add_to_output; 17array[1..10] of var -100..100: among_avi1 ::add_to_output = 18 [4, 5, 5, 6, 6, 6, 7, 7, 7, 7]; 19array[1..10] of var -100..100: among_avi2 ::add_to_output = 20 [4, 5, 5, 6, 6, 6, _, _, 8, 8]; 21 22% Testing it three ways, with different args unfixed each time. 23constraint among(among_vi, among_avi1, {6,7}); % 1st arg unfixed -> 7 24constraint among(5, among_avi2, {6,7}); % 2nd arg unfixed -> [...] 25constraint forall(i in 7..10) ( among_avi2[i] != 6 ); 26 27solve satisfy; 28 29output [ 30 "among_avi1 = array1d(1..10, ", show(among_avi1), ");\n", 31 "among_avi2 = array1d(1..10, ", show(among_avi2), ");\n", 32 "among_vi = ", show(among_vi), ";\n" 33];