28 lines
2.3 KiB
MiniZinc
28 lines
2.3 KiB
MiniZinc
array [1..15] of int: budgets = [35, 34, 26, 12, 10, 18, 32, 11, 10, 22, 27, 18, 16, 29, 22];
|
|
array [1..12] of int: not_with = [1, 10, 5, 6, 6, 5, 10, 1, 11, 15, 15, 11];
|
|
array [1..15] of int: personell = [5, 3, 4, 2, 2, 2, 4, 1, 1, 5, 3, 2, 2, 4, 3];
|
|
array [1..10] of int: requires = [3, 15, 4, 15, 8, 7, 13, 2, 14, 2];
|
|
array [1..15] of int: values = [600, 400, 100, 150, 80, 120, 200, 220, 90, 380, 290, 130, 80, 270, 280];
|
|
var 0..9: INT____00001 :: is_defined_var :: var_is_introduced;
|
|
var 0..28: INT____00002 :: is_defined_var :: var_is_introduced;
|
|
var 0..225: INT____00003 :: is_defined_var :: var_is_introduced;
|
|
var 0..3390: INT____00004 :: is_defined_var :: var_is_introduced;
|
|
var 0..322: total_budget :: output_var = INT____00003;
|
|
var 0..43: total_persons :: output_var = INT____00002;
|
|
var 0..15: total_projects :: output_var = INT____00001;
|
|
var 0..3390: total_values :: output_var = INT____00004;
|
|
array [1..15] of var 0..1: x :: output_array([1..15]);
|
|
constraint int_lin_eq([-1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [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], x[13], x[14], x[15]], 0) :: defines_var(INT____00001);
|
|
constraint int_lin_eq([-1, 5, 3, 4, 2, 2, 2, 4, 1, 1, 5, 3, 2, 2, 4, 3], [INT____00002, 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]], 0) :: defines_var(INT____00002);
|
|
constraint int_lin_eq([-1, 35, 34, 26, 12, 10, 18, 32, 11, 10, 22, 27, 18, 16, 29, 22], [INT____00003, 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]], 0) :: defines_var(INT____00003);
|
|
constraint int_lin_eq([-1, 600, 400, 100, 150, 80, 120, 200, 220, 90, 380, 290, 130, 80, 270, 280], [INT____00004, 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]], 0) :: defines_var(INT____00004);
|
|
constraint int_lin_le([-1, 1], [x[2], x[13]], 0);
|
|
constraint int_lin_le([-1, 1], [x[2], x[14]], 0);
|
|
constraint int_lin_le([-1, 1], [x[7], x[8]], 0);
|
|
constraint int_lin_le([1, -1], [x[3], x[15]], 0);
|
|
constraint int_lin_le([1, -1], [x[4], x[15]], 0);
|
|
constraint int_lin_le([1, 1], [x[1], x[10]], 1);
|
|
constraint int_lin_le([1, 1], [x[5], x[6]], 1);
|
|
constraint int_lin_le([1, 1], [x[11], x[15]], 1);
|
|
solve :: int_search(x, first_fail, indomain, complete) maximize INT____00004;
|