139 lines
7.9 KiB
MiniZinc
139 lines
7.9 KiB
MiniZinc
array [1..8] of int: alpha = [0, 0, 0, 1, 1, 0, 1, 1];
|
|
var 0..7: INT____00001 :: is_defined_var :: var_is_introduced;
|
|
array [1..14] of var 0..1: in1 :: output_array([1..7, 1..2]);
|
|
array [1..7] of var 0..1: nor :: output_array([1..7]);
|
|
var 0..7: number :: output_var = INT____00001;
|
|
array [1..28] of var 0..1: out :: output_array([1..7, 1..4]);
|
|
constraint int_eq(out[1], 0);
|
|
constraint int_eq(out[2], 1);
|
|
constraint int_eq(out[3], 1);
|
|
constraint int_eq(out[4], 0);
|
|
constraint int_le(1, nor[1]);
|
|
constraint int_lin_eq([-1, 1, 1, 1, 1, 1, 1, 1], [INT____00001, nor[1], nor[2], nor[3], nor[4], nor[5], nor[6], nor[7]], 0) :: defines_var(INT____00001);
|
|
constraint int_lin_le([-1, 1], [nor[1], out[1]], 0);
|
|
constraint int_lin_le([-1, 1], [nor[1], out[2]], 0);
|
|
constraint int_lin_le([-1, 1], [nor[1], out[3]], 0);
|
|
constraint int_lin_le([-1, 1], [nor[1], out[4]], 0);
|
|
constraint int_lin_le([-1, 1], [nor[2], out[5]], 0);
|
|
constraint int_lin_le([-1, 1], [nor[2], out[6]], 0);
|
|
constraint int_lin_le([-1, 1], [nor[2], out[7]], 0);
|
|
constraint int_lin_le([-1, 1], [nor[2], out[8]], 0);
|
|
constraint int_lin_le([-1, 1], [nor[3], out[9]], 0);
|
|
constraint int_lin_le([-1, 1], [nor[3], out[10]], 0);
|
|
constraint int_lin_le([-1, 1], [nor[3], out[11]], 0);
|
|
constraint int_lin_le([-1, 1], [nor[3], out[12]], 0);
|
|
constraint int_lin_le([-1, 1], [nor[4], out[13]], 0);
|
|
constraint int_lin_le([-1, 1], [nor[4], out[14]], 0);
|
|
constraint int_lin_le([-1, 1], [nor[4], out[15]], 0);
|
|
constraint int_lin_le([-1, 1], [nor[4], out[16]], 0);
|
|
constraint int_lin_le([-1, 1], [nor[5], out[17]], 0);
|
|
constraint int_lin_le([-1, 1], [nor[5], out[18]], 0);
|
|
constraint int_lin_le([-1, 1], [nor[5], out[19]], 0);
|
|
constraint int_lin_le([-1, 1], [nor[5], out[20]], 0);
|
|
constraint int_lin_le([-1, 1], [nor[6], out[21]], 0);
|
|
constraint int_lin_le([-1, 1], [nor[6], out[22]], 0);
|
|
constraint int_lin_le([-1, 1], [nor[6], out[23]], 0);
|
|
constraint int_lin_le([-1, 1], [nor[6], out[24]], 0);
|
|
constraint int_lin_le([-1, 1], [nor[7], out[25]], 0);
|
|
constraint int_lin_le([-1, 1], [nor[7], out[26]], 0);
|
|
constraint int_lin_le([-1, 1], [nor[7], out[27]], 0);
|
|
constraint int_lin_le([-1, 1], [nor[7], out[28]], 0);
|
|
constraint int_lin_le([1, -1], [in1[1], nor[1]], 0);
|
|
constraint int_lin_le([1, -1], [in1[2], nor[1]], 0);
|
|
constraint int_lin_le([1, -1], [in1[3], nor[2]], 0);
|
|
constraint int_lin_le([1, -1], [in1[4], nor[2]], 0);
|
|
constraint int_lin_le([1, -1], [in1[5], nor[3]], 0);
|
|
constraint int_lin_le([1, -1], [in1[6], nor[3]], 0);
|
|
constraint int_lin_le([1, -1], [in1[7], nor[4]], 0);
|
|
constraint int_lin_le([1, -1], [in1[8], nor[4]], 0);
|
|
constraint int_lin_le([1, -1], [in1[9], nor[5]], 0);
|
|
constraint int_lin_le([1, -1], [in1[10], nor[5]], 0);
|
|
constraint int_lin_le([1, -1], [in1[11], nor[6]], 0);
|
|
constraint int_lin_le([1, -1], [in1[12], nor[6]], 0);
|
|
constraint int_lin_le([1, -1], [in1[13], nor[7]], 0);
|
|
constraint int_lin_le([1, -1], [in1[14], nor[7]], 0);
|
|
constraint int_lin_le([1, -1], [nor[4], out[13]], 0);
|
|
constraint int_lin_le([1, -1], [nor[5], out[17]], 0);
|
|
constraint int_lin_le([1, -1], [nor[6], out[21]], 0);
|
|
constraint int_lin_le([1, -1], [nor[7], out[25]], 0);
|
|
constraint int_lin_le([1, 1], [in1[1], out[3]], 1);
|
|
constraint int_lin_le([1, 1], [in1[1], out[4]], 1);
|
|
constraint int_lin_le([1, 1], [in1[2], out[2]], 1);
|
|
constraint int_lin_le([1, 1], [in1[2], out[4]], 1);
|
|
constraint int_lin_le([1, 1], [in1[3], out[7]], 1);
|
|
constraint int_lin_le([1, 1], [in1[3], out[8]], 1);
|
|
constraint int_lin_le([1, 1], [in1[4], out[6]], 1);
|
|
constraint int_lin_le([1, 1], [in1[4], out[8]], 1);
|
|
constraint int_lin_le([1, 1], [in1[5], out[11]], 1);
|
|
constraint int_lin_le([1, 1], [in1[5], out[12]], 1);
|
|
constraint int_lin_le([1, 1], [in1[6], out[10]], 1);
|
|
constraint int_lin_le([1, 1], [in1[6], out[12]], 1);
|
|
constraint int_lin_le([1, 1], [in1[7], out[15]], 1);
|
|
constraint int_lin_le([1, 1], [in1[7], out[16]], 1);
|
|
constraint int_lin_le([1, 1], [in1[8], out[14]], 1);
|
|
constraint int_lin_le([1, 1], [in1[8], out[16]], 1);
|
|
constraint int_lin_le([1, 1], [in1[9], out[19]], 1);
|
|
constraint int_lin_le([1, 1], [in1[9], out[20]], 1);
|
|
constraint int_lin_le([1, 1], [in1[10], out[18]], 1);
|
|
constraint int_lin_le([1, 1], [in1[10], out[20]], 1);
|
|
constraint int_lin_le([1, 1], [in1[11], out[23]], 1);
|
|
constraint int_lin_le([1, 1], [in1[11], out[24]], 1);
|
|
constraint int_lin_le([1, 1], [in1[12], out[22]], 1);
|
|
constraint int_lin_le([1, 1], [in1[12], out[24]], 1);
|
|
constraint int_lin_le([1, 1], [in1[13], out[27]], 1);
|
|
constraint int_lin_le([1, 1], [in1[13], out[28]], 1);
|
|
constraint int_lin_le([1, 1], [in1[14], out[26]], 1);
|
|
constraint int_lin_le([1, 1], [in1[14], out[28]], 1);
|
|
constraint int_lin_le([1, 1], [out[1], out[5]], 1);
|
|
constraint int_lin_le([1, 1], [out[1], out[9]], 1);
|
|
constraint int_lin_le([1, 1], [out[2], out[6]], 1);
|
|
constraint int_lin_le([1, 1], [out[2], out[10]], 1);
|
|
constraint int_lin_le([1, 1], [out[3], out[7]], 1);
|
|
constraint int_lin_le([1, 1], [out[3], out[11]], 1);
|
|
constraint int_lin_le([1, 1], [out[4], out[8]], 1);
|
|
constraint int_lin_le([1, 1], [out[4], out[12]], 1);
|
|
constraint int_lin_le([1, 1], [out[5], out[13]], 1);
|
|
constraint int_lin_le([1, 1], [out[5], out[17]], 1);
|
|
constraint int_lin_le([1, 1], [out[6], out[14]], 1);
|
|
constraint int_lin_le([1, 1], [out[6], out[18]], 1);
|
|
constraint int_lin_le([1, 1], [out[7], out[15]], 1);
|
|
constraint int_lin_le([1, 1], [out[7], out[19]], 1);
|
|
constraint int_lin_le([1, 1], [out[8], out[16]], 1);
|
|
constraint int_lin_le([1, 1], [out[8], out[20]], 1);
|
|
constraint int_lin_le([1, 1], [out[9], out[21]], 1);
|
|
constraint int_lin_le([1, 1], [out[9], out[25]], 1);
|
|
constraint int_lin_le([1, 1], [out[10], out[22]], 1);
|
|
constraint int_lin_le([1, 1], [out[10], out[26]], 1);
|
|
constraint int_lin_le([1, 1], [out[11], out[23]], 1);
|
|
constraint int_lin_le([1, 1], [out[11], out[27]], 1);
|
|
constraint int_lin_le([1, 1], [out[12], out[24]], 1);
|
|
constraint int_lin_le([1, 1], [out[12], out[28]], 1);
|
|
constraint int_lin_le([-1, 1, -1], [in1[7], nor[4], out[15]], 0);
|
|
constraint int_lin_le([-1, 1, -1], [in1[8], nor[4], out[14]], 0);
|
|
constraint int_lin_le([-1, 1, -1], [in1[9], nor[5], out[19]], 0);
|
|
constraint int_lin_le([-1, 1, -1], [in1[10], nor[5], out[18]], 0);
|
|
constraint int_lin_le([-1, 1, -1], [in1[11], nor[6], out[23]], 0);
|
|
constraint int_lin_le([-1, 1, -1], [in1[12], nor[6], out[22]], 0);
|
|
constraint int_lin_le([-1, 1, -1], [in1[13], nor[7], out[27]], 0);
|
|
constraint int_lin_le([-1, 1, -1], [in1[14], nor[7], out[26]], 0);
|
|
constraint int_lin_le([-1, -1, 1, -1], [in1[7], in1[8], nor[4], out[16]], 0);
|
|
constraint int_lin_le([-1, -1, 1, -1], [in1[9], in1[10], nor[5], out[20]], 0);
|
|
constraint int_lin_le([-1, -1, 1, -1], [in1[11], in1[12], nor[6], out[24]], 0);
|
|
constraint int_lin_le([-1, -1, 1, -1], [in1[13], in1[14], nor[7], out[28]], 0);
|
|
constraint int_lin_le([1, -1, -1, -1], [nor[1], out[1], out[5], out[9]], 0);
|
|
constraint int_lin_le([1, -1, -1, -1], [nor[2], out[5], out[13], out[17]], 0);
|
|
constraint int_lin_le([1, -1, -1, -1], [nor[3], out[9], out[21], out[25]], 0);
|
|
constraint int_lin_le([1, 1, 1, 1], [in1[1], in1[2], nor[2], nor[3]], 2);
|
|
constraint int_lin_le([1, 1, 1, 1], [in1[3], in1[4], nor[4], nor[5]], 2);
|
|
constraint int_lin_le([1, 1, 1, 1], [in1[5], in1[6], nor[6], nor[7]], 2);
|
|
constraint int_lin_le([-1, 1, -1, -1, -1], [in1[1], nor[1], out[3], out[7], out[11]], 0);
|
|
constraint int_lin_le([-1, 1, -1, -1, -1], [in1[2], nor[1], out[2], out[6], out[10]], 0);
|
|
constraint int_lin_le([-1, 1, -1, -1, -1], [in1[3], nor[2], out[7], out[15], out[19]], 0);
|
|
constraint int_lin_le([-1, 1, -1, -1, -1], [in1[4], nor[2], out[6], out[14], out[18]], 0);
|
|
constraint int_lin_le([-1, 1, -1, -1, -1], [in1[5], nor[3], out[11], out[23], out[27]], 0);
|
|
constraint int_lin_le([-1, 1, -1, -1, -1], [in1[6], nor[3], out[10], out[22], out[26]], 0);
|
|
constraint int_lin_le([-1, -1, 1, -1, -1, -1], [in1[1], in1[2], nor[1], out[4], out[8], out[12]], 0);
|
|
constraint int_lin_le([-1, -1, 1, -1, -1, -1], [in1[3], in1[4], nor[2], out[8], out[16], out[20]], 0);
|
|
constraint int_lin_le([-1, -1, 1, -1, -1, -1], [in1[5], in1[6], nor[3], out[12], out[24], out[28]], 0);
|
|
solve minimize INT____00001;
|