ice_cream.fzn 3.94 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
array [1..13] of int: d = [0, 340, 330, 450, 650, 650, 550, 700, 680, 350, 440, 400, 650];
var int: INT____00001 :: is_defined_var :: var_is_introduced;
var int: obj :: output_var = INT____00001;
array [1..13] of var int: s :: output_array([0..12]);
array [1..13] of var int: x :: output_array([0..12]);
array [1..13] of var int: y :: output_array([0..12]);
array [1..13] of var int: z :: output_array([0..12]);
constraint int_eq(s[1], 0);
constraint int_eq(s[13], 0);
constraint int_eq(x[1], 0);
constraint int_le(0, s[1]);
constraint int_le(0, s[2]);
constraint int_le(0, s[3]);
constraint int_le(0, s[4]);
constraint int_le(0, s[5]);
constraint int_le(0, s[6]);
constraint int_le(0, s[7]);
constraint int_le(0, s[8]);
constraint int_le(0, s[9]);
constraint int_le(0, s[10]);
constraint int_le(0, s[11]);
constraint int_le(0, s[12]);
constraint int_le(0, s[13]);
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, y[1]);
constraint int_le(0, y[2]);
constraint int_le(0, y[3]);
constraint int_le(0, y[4]);
constraint int_le(0, y[5]);
constraint int_le(0, y[6]);
constraint int_le(0, y[7]);
constraint int_le(0, y[8]);
constraint int_le(0, y[9]);
constraint int_le(0, y[10]);
constraint int_le(0, y[11]);
constraint int_le(0, y[12]);
constraint int_le(0, y[13]);
constraint int_le(0, z[1]);
constraint int_le(0, z[2]);
constraint int_le(0, z[3]);
constraint int_le(0, z[4]);
constraint int_le(0, z[5]);
constraint int_le(0, z[6]);
constraint int_le(0, z[7]);
constraint int_le(0, z[8]);
constraint int_le(0, z[9]);
constraint int_le(0, z[10]);
constraint int_le(0, z[11]);
constraint int_le(0, z[12]);
constraint int_le(0, z[13]);
constraint int_lin_eq([1, -1, 1], [s[1], s[2], x[2]], 340);
constraint int_lin_eq([1, -1, 1], [s[2], s[3], x[3]], 330);
constraint int_lin_eq([1, -1, 1], [s[3], s[4], x[4]], 450);
constraint int_lin_eq([1, -1, 1], [s[4], s[5], x[5]], 650);
constraint int_lin_eq([1, -1, 1], [s[5], s[6], x[6]], 650);
constraint int_lin_eq([1, -1, 1], [s[6], s[7], x[7]], 550);
constraint int_lin_eq([1, -1, 1], [s[7], s[8], x[8]], 700);
constraint int_lin_eq([1, -1, 1], [s[8], s[9], x[9]], 680);
constraint int_lin_eq([1, -1, 1], [s[9], s[10], x[10]], 350);
constraint int_lin_eq([1, -1, 1], [s[10], s[11], x[11]], 440);
constraint int_lin_eq([1, -1, 1], [s[11], s[12], x[12]], 400);
constraint int_lin_eq([1, -1, 1], [s[12], s[13], x[13]], 650);
constraint int_lin_eq([-1, 1, -1, 1], [x[1], x[2], y[2], z[2]], 0);
constraint int_lin_eq([-1, 1, -1, 1], [x[2], x[3], y[3], z[3]], 0);
constraint int_lin_eq([-1, 1, -1, 1], [x[3], x[4], y[4], z[4]], 0);
constraint int_lin_eq([-1, 1, -1, 1], [x[4], x[5], y[5], z[5]], 0);
constraint int_lin_eq([-1, 1, -1, 1], [x[5], x[6], y[6], z[6]], 0);
constraint int_lin_eq([-1, 1, -1, 1], [x[6], x[7], y[7], z[7]], 0);
constraint int_lin_eq([-1, 1, -1, 1], [x[7], x[8], y[8], z[8]], 0);
constraint int_lin_eq([-1, 1, -1, 1], [x[8], x[9], y[9], z[9]], 0);
constraint int_lin_eq([-1, 1, -1, 1], [x[9], x[10], y[10], z[10]], 0);
constraint int_lin_eq([-1, 1, -1, 1], [x[10], x[11], y[11], z[11]], 0);
constraint int_lin_eq([-1, 1, -1, 1], [x[11], x[12], y[12], z[12]], 0);
constraint int_lin_eq([-1, 1, -1, 1], [x[12], x[13], y[13], z[13]], 0);
constraint int_lin_eq([-1, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50], [INT____00001, s[1], s[2], s[3], s[4], s[5], s[6], s[7], s[8], s[9], s[10], s[11], s[12], s[13], y[1], y[2], y[3], y[4], y[5], y[6], y[7], y[8], y[9], y[10], y[11], y[12], y[13], z[1], z[2], z[3], z[4], z[5], z[6], z[7], z[8], z[9], z[10], z[11], z[12], z[13]], 0) :: defines_var(INT____00001);
solve minimize INT____00001;