Files
ortools-clone/examples/flatzinc/set_covering_deployment.fzn
2012-09-03 18:26:36 +00:00

24 lines
1.5 KiB
MiniZinc

array [1..64] of int: matrix = [0, 1, 0, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0];
var 0..16: INT____00001 :: is_defined_var :: var_is_introduced;
array [1..8] of var 0..1: X :: output_array([1..8]);
array [1..8] of var 0..1: Y :: output_array([1..8]);
var 0..16: c_armies :: output_var = INT____00001;
constraint int_le(Y[1], X[1]);
constraint int_le(Y[2], X[2]);
constraint int_le(Y[3], X[3]);
constraint int_le(Y[4], X[4]);
constraint int_le(Y[5], X[5]);
constraint int_le(Y[6], X[6]);
constraint int_le(Y[7], X[7]);
constraint int_le(Y[8], X[8]);
constraint int_lin_eq([-1, 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], Y[1], Y[2], Y[3], Y[4], Y[5], Y[6], Y[7], Y[8]], 0) :: defines_var(INT____00001);
constraint int_lin_le([-1, -1, -1], [X[2], Y[1], Y[4]], -1);
constraint int_lin_le([-1, -1, -1], [X[3], Y[5], Y[6]], -1);
constraint int_lin_le([-1, -1, -1, -1], [X[4], Y[1], Y[2], Y[7]], -1);
constraint int_lin_le([-1, -1, -1, -1], [X[5], Y[3], Y[6], Y[7]], -1);
constraint int_lin_le([-1, -1, -1, -1], [X[8], Y[1], Y[6], Y[7]], -1);
constraint int_lin_le([-1, -1, -1, -1, -1], [X[1], Y[2], Y[4], Y[7], Y[8]], -1);
constraint int_lin_le([-1, -1, -1, -1, -1], [X[6], Y[3], Y[5], Y[7], Y[8]], -1);
constraint int_lin_le([-1, -1, -1, -1, -1, -1], [X[7], Y[1], Y[4], Y[5], Y[6], Y[8]], -1);
solve minimize INT____00001;