pilgrim.fzn 4.51 KB
Newer Older
Valentin Platzgummer's avatar
Valentin Platzgummer committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117
array [1..36] of var int: x :: output_array([1..2, 1..2, 1..3, 1..3]);
constraint int_eq(x[5], 0);
constraint int_eq(x[14], 0);
constraint int_eq(x[23], 0);
constraint int_eq(x[32], 0);
constraint int_le(0, x[1]);
constraint int_le(0, x[2]);
constraint int_le(0, x[3]);
constraint int_le(0, x[4]);
constraint int_le(0, x[5]);
constraint int_le(0, x[6]);
constraint int_le(0, x[7]);
constraint int_le(0, x[8]);
constraint int_le(0, x[9]);
constraint int_le(0, x[10]);
constraint int_le(0, x[11]);
constraint int_le(0, x[12]);
constraint int_le(0, x[13]);
constraint int_le(0, x[14]);
constraint int_le(0, x[15]);
constraint int_le(0, x[16]);
constraint int_le(0, x[17]);
constraint int_le(0, x[18]);
constraint int_le(0, x[19]);
constraint int_le(0, x[20]);
constraint int_le(0, x[21]);
constraint int_le(0, x[22]);
constraint int_le(0, x[23]);
constraint int_le(0, x[24]);
constraint int_le(0, x[25]);
constraint int_le(0, x[26]);
constraint int_le(0, x[27]);
constraint int_le(0, x[28]);
constraint int_le(0, x[29]);
constraint int_le(0, x[30]);
constraint int_le(0, x[31]);
constraint int_le(0, x[32]);
constraint int_le(0, x[33]);
constraint int_le(0, x[34]);
constraint int_le(0, x[35]);
constraint int_le(0, x[36]);
constraint int_le(1, x[1]);
constraint int_le(1, x[2]);
constraint int_le(1, x[3]);
constraint int_le(1, x[4]);
constraint int_le(1, x[6]);
constraint int_le(1, x[7]);
constraint int_le(1, x[8]);
constraint int_le(1, x[9]);
constraint int_le(1, x[10]);
constraint int_le(1, x[11]);
constraint int_le(1, x[12]);
constraint int_le(1, x[13]);
constraint int_le(1, x[15]);
constraint int_le(1, x[16]);
constraint int_le(1, x[17]);
constraint int_le(1, x[18]);
constraint int_le(1, x[19]);
constraint int_le(1, x[20]);
constraint int_le(1, x[21]);
constraint int_le(1, x[22]);
constraint int_le(1, x[24]);
constraint int_le(1, x[25]);
constraint int_le(1, x[26]);
constraint int_le(1, x[27]);
constraint int_le(1, x[28]);
constraint int_le(1, x[29]);
constraint int_le(1, x[30]);
constraint int_le(1, x[31]);
constraint int_le(1, x[33]);
constraint int_le(1, x[34]);
constraint int_le(1, x[35]);
constraint int_le(1, x[36]);
constraint int_le(x[1], 3);
constraint int_le(x[2], 3);
constraint int_le(x[3], 3);
constraint int_le(x[4], 3);
constraint int_le(x[6], 3);
constraint int_le(x[7], 3);
constraint int_le(x[8], 3);
constraint int_le(x[9], 3);
constraint int_le(x[10], 3);
constraint int_le(x[11], 3);
constraint int_le(x[12], 3);
constraint int_le(x[13], 3);
constraint int_le(x[15], 3);
constraint int_le(x[16], 3);
constraint int_le(x[17], 3);
constraint int_le(x[18], 3);
constraint int_le(x[19], 3);
constraint int_le(x[20], 3);
constraint int_le(x[21], 3);
constraint int_le(x[22], 3);
constraint int_le(x[24], 3);
constraint int_le(x[25], 3);
constraint int_le(x[26], 3);
constraint int_le(x[27], 3);
constraint int_le(x[28], 3);
constraint int_le(x[29], 3);
constraint int_le(x[30], 3);
constraint int_le(x[31], 3);
constraint int_le(x[33], 3);
constraint int_le(x[34], 3);
constraint int_le(x[35], 3);
constraint int_le(x[36], 3);
constraint int_lin_eq([1, 1, 1, 1, 1, 1], [x[1], x[2], x[3], x[10], x[11], x[12]], 11);
constraint int_lin_eq([1, 1, 1, 1, 1, 1], [x[1], x[4], x[7], x[10], x[13], x[16]], 11);
constraint int_lin_eq([1, 1, 1, 1, 1, 1], [x[3], x[6], x[9], x[12], x[15], x[18]], 11);
constraint int_lin_eq([1, 1, 1, 1, 1, 1], [x[7], x[8], x[9], x[16], x[17], x[18]], 11);
constraint int_lin_eq([1, 1, 1, 1, 1, 1], [x[19], x[20], x[21], x[28], x[29], x[30]], 11);
constraint int_lin_eq([1, 1, 1, 1, 1, 1], [x[19], x[22], x[25], x[28], x[31], x[34]], 11);
constraint int_lin_eq([1, 1, 1, 1, 1, 1], [x[21], x[24], x[27], x[30], x[33], x[36]], 11);
constraint int_lin_eq([1, 1, 1, 1, 1, 1], [x[25], x[26], x[27], x[34], x[35], x[36]], 11);
constraint int_lin_eq([2, 2, 2, 2, 2, 2, 2, 2, 2, -1, -1, -1, -1, -1, -1, -1, -1, -1], [x[1], x[2], x[3], x[4], x[5], x[6], x[7], x[8], x[9], x[10], x[11], x[12], x[13], x[14], x[15], x[16], x[17], x[18]], 0);
constraint int_lin_eq([2, 2, 2, 2, 2, 2, 2, 2, 2, -1, -1, -1, -1, -1, -1, -1, -1, -1], [x[19], x[20], x[21], x[22], x[23], x[24], x[25], x[26], x[27], x[28], x[29], x[30], x[31], x[32], x[33], x[34], x[35], x[36]], 0);
constraint int_lin_eq([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1], [x[1], x[2], x[3], x[4], x[5], x[6], x[7], x[8], x[9], x[10], x[11], x[12], x[13], x[14], x[15], x[16], x[17], x[18], x[19], x[20], x[21], x[22], x[23], x[24], x[25], x[26], x[27], x[28], x[29], x[30], x[31], x[32], x[33], x[34], x[35], x[36]], -3);
solve satisfy;