Files
ortools-clone/examples/flatzinc/knapsack_rosetta_code_unbounded_int.fzn

20 lines
1.1 KiB
MiniZinc
Raw Permalink Normal View History

2012-09-03 18:26:36 +00:00
array [1..3] of int: value = [3000, 1800, 2500];
array [1..3] of int: volume = [25, 15, 2];
array [1..3] of int: weight = [3, 2, 20];
var int: INT____00001 :: is_defined_var :: var_is_introduced;
var int: INT____00002 :: is_defined_var :: var_is_introduced;
var int: INT____00003 :: is_defined_var :: var_is_introduced;
var int: total_value :: output_var = INT____00003;
var int: total_volume :: output_var = INT____00001;
var int: total_weight :: output_var = INT____00002;
array [1..3] of var int: x :: output_array([1..3]);
constraint int_le(0, x[1]);
constraint int_le(0, x[2]);
constraint int_le(0, x[3]);
constraint int_le(INT____00001, 250);
constraint int_le(INT____00002, 250);
constraint int_lin_eq([-1, 3, 2, 20], [INT____00002, x[1], x[2], x[3]], 0) :: defines_var(INT____00002);
constraint int_lin_eq([-1, 25, 15, 2], [INT____00001, x[1], x[2], x[3]], 0) :: defines_var(INT____00001);
constraint int_lin_eq([-1, 3000, 1800, 2500], [INT____00003, x[1], x[2], x[3]], 0) :: defines_var(INT____00003);
solve :: int_search(x, first_fail, indomain_max, complete) maximize INT____00003;