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

26 lines
2.8 KiB
MiniZinc

var bool: BOOL____00006 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00008 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00010 :: is_defined_var :: var_is_introduced;
var bool: BOOL____00012 :: is_defined_var :: var_is_introduced;
var 0..65535: INT____00003 :: is_defined_var :: var_is_introduced;
var 0..65535: INT____00004 :: is_defined_var :: var_is_introduced;
var 0..65535: num :: output_var = INT____00004;
var 0..131070: num2 :: output_var = INT____00003;
array [1..16] of var 0..1: num2_x :: output_array([1..16]);
var 0..65535: num3 :: output_var = INT____00004;
array [1..16] of var 0..1: num3_x :: output_array([1..16]);
array [1..16] of var 0..1: num_x :: output_array([1..16]);
constraint int_eq_reif(num2_x[13], 0, BOOL____00006) :: defines_var(BOOL____00006);
constraint int_eq_reif(num2_x[14], 0, BOOL____00008) :: defines_var(BOOL____00008);
constraint int_eq_reif(num2_x[15], 0, BOOL____00010) :: defines_var(BOOL____00010);
constraint int_eq_reif(num2_x[16], 0, BOOL____00012) :: defines_var(BOOL____00012);
constraint int_eq_reif(num3_x[13], 1, BOOL____00006);
constraint int_eq_reif(num3_x[14], 1, BOOL____00008);
constraint int_eq_reif(num3_x[15], 1, BOOL____00010);
constraint int_eq_reif(num3_x[16], 1, BOOL____00012);
constraint int_lin_eq([-1, 2], [INT____00003, INT____00004], 0);
constraint int_lin_eq([-1, 32768, 16384, 8192, 4096, 2048, 1024, 512, 256, 128, 64, 32, 16, 8, 4, 2, 1], [INT____00003, num2_x[1], num2_x[2], num2_x[3], num2_x[4], num2_x[5], num2_x[6], num2_x[7], num2_x[8], num2_x[9], num2_x[10], num2_x[11], num2_x[12], num2_x[13], num2_x[14], num2_x[15], num2_x[16]], 0) :: defines_var(INT____00003);
constraint int_lin_eq([-1, 32768, 16384, 8192, 4096, 2048, 1024, 512, 256, 128, 64, 32, 16, 8, 4, 2, 1], [INT____00004, num3_x[1], num3_x[2], num3_x[3], num3_x[4], num3_x[5], num3_x[6], num3_x[7], num3_x[8], num3_x[9], num3_x[10], num3_x[11], num3_x[12], num3_x[13], num3_x[14], num3_x[15], num3_x[16]], 0) :: defines_var(INT____00004);
constraint int_lin_eq([-1, 32768, 16384, 8192, 4096, 2048, 1024, 512, 256, 128, 64, 32, 16, 8, 4, 2, 1], [INT____00004, num_x[1], num_x[2], num_x[3], num_x[4], num_x[5], num_x[6], num_x[7], num_x[8], num_x[9], num_x[10], num_x[11], num_x[12], num_x[13], num_x[14], num_x[15], num_x[16]], 0);
solve :: int_search([num_x[1], num_x[2], num_x[3], num_x[4], num_x[5], num_x[6], num_x[7], num_x[8], num_x[9], num_x[10], num_x[11], num_x[12], num_x[13], num_x[14], num_x[15], num_x[16], num2_x[1], num2_x[2], num2_x[3], num2_x[4], num2_x[5], num2_x[6], num2_x[7], num2_x[8], num2_x[9], num2_x[10], num2_x[11], num2_x[12], num2_x[13], num2_x[14], num2_x[15], num2_x[16], num3_x[1], num3_x[2], num3_x[3], num3_x[4], num3_x[5], num3_x[6], num3_x[7], num3_x[8], num3_x[9], num3_x[10], num3_x[11], num3_x[12], num3_x[13], num3_x[14], num3_x[15], num3_x[16]], smallest, indomain_min, complete) satisfy;