28 lines
1.4 KiB
MiniZinc
28 lines
1.4 KiB
MiniZinc
array [1..3] of int: capacity = [500, 300, 400];
|
|
array [1..12] of int: cost = [10, 8, 5, 9, 7, 5, 5, 3, 11, 10, 8, 7];
|
|
array [1..4] of int: demand = [200, 400, 300, 100];
|
|
var int: INT____00001 :: is_defined_var :: var_is_introduced;
|
|
array [1..12] of var int: x :: output_array([1..3, 1..4]);
|
|
var int: z :: output_var = INT____00001;
|
|
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_lin_eq([1, 1, 1], [x[1], x[5], x[9]], 200);
|
|
constraint int_lin_eq([1, 1, 1], [x[2], x[6], x[10]], 400);
|
|
constraint int_lin_eq([1, 1, 1], [x[3], x[7], x[11]], 300);
|
|
constraint int_lin_eq([1, 1, 1], [x[4], x[8], x[12]], 100);
|
|
constraint int_lin_eq([-1, 10, 8, 5, 9, 7, 5, 5, 3, 11, 10, 8, 7], [INT____00001, x[1], x[2], x[3], x[4], x[5], x[6], x[7], x[8], x[9], x[10], x[11], x[12]], 0) :: defines_var(INT____00001);
|
|
constraint int_lin_le([1, 1, 1, 1], [x[1], x[2], x[3], x[4]], 500);
|
|
constraint int_lin_le([1, 1, 1, 1], [x[5], x[6], x[7], x[8]], 300);
|
|
constraint int_lin_le([1, 1, 1, 1], [x[9], x[10], x[11], x[12]], 400);
|
|
solve :: int_search([x[1], x[2], x[3], x[4], x[5], x[6], x[7], x[8], x[9], x[10], x[11], x[12]], first_fail, indomain, complete) minimize INT____00001;
|