135 lines
13 KiB
MiniZinc
135 lines
13 KiB
MiniZinc
var 0..64: INT____00001 :: is_defined_var :: var_is_introduced;
|
|
array [1..64] of var 0..1: a :: output_array([1..8, 1..8]);
|
|
var 0..64: sumx :: output_var = INT____00001;
|
|
array [1..64] of var 0..1: x :: output_array([1..8, 1..8]);
|
|
constraint int_lin_eq([1, 1], [a[1], x[1]], 1);
|
|
constraint int_lin_eq([1, 1], [a[2], x[2]], 1);
|
|
constraint int_lin_eq([1, 1], [a[3], x[3]], 1);
|
|
constraint int_lin_eq([1, 1], [a[4], x[4]], 1);
|
|
constraint int_lin_eq([1, 1], [a[5], x[5]], 1);
|
|
constraint int_lin_eq([1, 1], [a[6], x[6]], 1);
|
|
constraint int_lin_eq([1, 1], [a[7], x[7]], 1);
|
|
constraint int_lin_eq([1, 1], [a[8], x[8]], 1);
|
|
constraint int_lin_eq([1, 1], [a[9], x[9]], 1);
|
|
constraint int_lin_eq([1, 1], [a[10], x[10]], 1);
|
|
constraint int_lin_eq([1, 1], [a[11], x[11]], 1);
|
|
constraint int_lin_eq([1, 1], [a[12], x[12]], 1);
|
|
constraint int_lin_eq([1, 1], [a[13], x[13]], 1);
|
|
constraint int_lin_eq([1, 1], [a[14], x[14]], 1);
|
|
constraint int_lin_eq([1, 1], [a[15], x[15]], 1);
|
|
constraint int_lin_eq([1, 1], [a[16], x[16]], 1);
|
|
constraint int_lin_eq([1, 1], [a[17], x[17]], 1);
|
|
constraint int_lin_eq([1, 1], [a[18], x[18]], 1);
|
|
constraint int_lin_eq([1, 1], [a[19], x[19]], 1);
|
|
constraint int_lin_eq([1, 1], [a[20], x[20]], 1);
|
|
constraint int_lin_eq([1, 1], [a[21], x[21]], 1);
|
|
constraint int_lin_eq([1, 1], [a[22], x[22]], 1);
|
|
constraint int_lin_eq([1, 1], [a[23], x[23]], 1);
|
|
constraint int_lin_eq([1, 1], [a[24], x[24]], 1);
|
|
constraint int_lin_eq([1, 1], [a[25], x[25]], 1);
|
|
constraint int_lin_eq([1, 1], [a[26], x[26]], 1);
|
|
constraint int_lin_eq([1, 1], [a[27], x[27]], 1);
|
|
constraint int_lin_eq([1, 1], [a[28], x[28]], 1);
|
|
constraint int_lin_eq([1, 1], [a[29], x[29]], 1);
|
|
constraint int_lin_eq([1, 1], [a[30], x[30]], 1);
|
|
constraint int_lin_eq([1, 1], [a[31], x[31]], 1);
|
|
constraint int_lin_eq([1, 1], [a[32], x[32]], 1);
|
|
constraint int_lin_eq([1, 1], [a[33], x[33]], 1);
|
|
constraint int_lin_eq([1, 1], [a[34], x[34]], 1);
|
|
constraint int_lin_eq([1, 1], [a[35], x[35]], 1);
|
|
constraint int_lin_eq([1, 1], [a[36], x[36]], 1);
|
|
constraint int_lin_eq([1, 1], [a[37], x[37]], 1);
|
|
constraint int_lin_eq([1, 1], [a[38], x[38]], 1);
|
|
constraint int_lin_eq([1, 1], [a[39], x[39]], 1);
|
|
constraint int_lin_eq([1, 1], [a[40], x[40]], 1);
|
|
constraint int_lin_eq([1, 1], [a[41], x[41]], 1);
|
|
constraint int_lin_eq([1, 1], [a[42], x[42]], 1);
|
|
constraint int_lin_eq([1, 1], [a[43], x[43]], 1);
|
|
constraint int_lin_eq([1, 1], [a[44], x[44]], 1);
|
|
constraint int_lin_eq([1, 1], [a[45], x[45]], 1);
|
|
constraint int_lin_eq([1, 1], [a[46], x[46]], 1);
|
|
constraint int_lin_eq([1, 1], [a[47], x[47]], 1);
|
|
constraint int_lin_eq([1, 1], [a[48], x[48]], 1);
|
|
constraint int_lin_eq([1, 1], [a[49], x[49]], 1);
|
|
constraint int_lin_eq([1, 1], [a[50], x[50]], 1);
|
|
constraint int_lin_eq([1, 1], [a[51], x[51]], 1);
|
|
constraint int_lin_eq([1, 1], [a[52], x[52]], 1);
|
|
constraint int_lin_eq([1, 1], [a[53], x[53]], 1);
|
|
constraint int_lin_eq([1, 1], [a[54], x[54]], 1);
|
|
constraint int_lin_eq([1, 1], [a[55], x[55]], 1);
|
|
constraint int_lin_eq([1, 1], [a[56], x[56]], 1);
|
|
constraint int_lin_eq([1, 1], [a[57], x[57]], 1);
|
|
constraint int_lin_eq([1, 1], [a[58], x[58]], 1);
|
|
constraint int_lin_eq([1, 1], [a[59], x[59]], 1);
|
|
constraint int_lin_eq([1, 1], [a[60], x[60]], 1);
|
|
constraint int_lin_eq([1, 1], [a[61], x[61]], 1);
|
|
constraint int_lin_eq([1, 1], [a[62], x[62]], 1);
|
|
constraint int_lin_eq([1, 1], [a[63], x[63]], 1);
|
|
constraint int_lin_eq([1, 1], [a[64], x[64]], 1);
|
|
constraint int_lin_eq([-1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 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], x[9], x[10], x[11], x[12], x[13], x[14], x[15], x[16], x[17], x[18], x[19], x[20], x[21], x[22], x[23], x[24], x[25], x[26], x[27], x[28], x[29], x[30], x[31], x[32], x[33], x[34], x[35], x[36], x[37], x[38], x[39], x[40], x[41], x[42], x[43], x[44], x[45], x[46], x[47], x[48], x[49], x[50], x[51], x[52], x[53], x[54], x[55], x[56], x[57], x[58], x[59], x[60], x[61], x[62], x[63], x[64]], 0) :: defines_var(INT____00001);
|
|
constraint int_lin_le([-99, 1, 1, 1, 1, 1, 1, 1], [a[1], x[10], x[19], x[28], x[37], x[46], x[55], x[64]], 0);
|
|
constraint int_lin_le([-99, 1, 1, 1, 1, 1, 1, 1], [a[2], x[9], x[11], x[20], x[29], x[38], x[47], x[56]], 0);
|
|
constraint int_lin_le([-99, 1, 1, 1, 1, 1, 1, 1], [a[3], x[10], x[12], x[17], x[21], x[30], x[39], x[48]], 0);
|
|
constraint int_lin_le([-99, 1, 1, 1, 1, 1, 1, 1], [a[4], x[11], x[13], x[18], x[22], x[25], x[31], x[40]], 0);
|
|
constraint int_lin_le([-99, 1, 1, 1, 1, 1, 1, 1], [a[5], x[12], x[14], x[19], x[23], x[26], x[32], x[33]], 0);
|
|
constraint int_lin_le([-99, 1, 1, 1, 1, 1, 1, 1], [a[6], x[13], x[15], x[20], x[24], x[27], x[34], x[41]], 0);
|
|
constraint int_lin_le([-99, 1, 1, 1, 1, 1, 1, 1], [a[7], x[14], x[16], x[21], x[28], x[35], x[42], x[49]], 0);
|
|
constraint int_lin_le([-99, 1, 1, 1, 1, 1, 1, 1], [a[8], x[15], x[22], x[29], x[36], x[43], x[50], x[57]], 0);
|
|
constraint int_lin_le([-99, 1, 1, 1, 1, 1, 1, 1], [a[9], x[2], x[18], x[27], x[36], x[45], x[54], x[63]], 0);
|
|
constraint int_lin_le([-99, 1, 1, 1, 1, 1, 1, 1], [a[16], x[7], x[23], x[30], x[37], x[44], x[51], x[58]], 0);
|
|
constraint int_lin_le([-99, 1, 1, 1, 1, 1, 1, 1], [a[17], x[3], x[10], x[26], x[35], x[44], x[53], x[62]], 0);
|
|
constraint int_lin_le([-99, 1, 1, 1, 1, 1, 1, 1], [a[24], x[6], x[15], x[31], x[38], x[45], x[52], x[59]], 0);
|
|
constraint int_lin_le([-99, 1, 1, 1, 1, 1, 1, 1], [a[25], x[4], x[11], x[18], x[34], x[43], x[52], x[61]], 0);
|
|
constraint int_lin_le([-99, 1, 1, 1, 1, 1, 1, 1], [a[32], x[5], x[14], x[23], x[39], x[46], x[53], x[60]], 0);
|
|
constraint int_lin_le([-99, 1, 1, 1, 1, 1, 1, 1], [a[33], x[5], x[12], x[19], x[26], x[42], x[51], x[60]], 0);
|
|
constraint int_lin_le([-99, 1, 1, 1, 1, 1, 1, 1], [a[40], x[4], x[13], x[22], x[31], x[47], x[54], x[61]], 0);
|
|
constraint int_lin_le([-99, 1, 1, 1, 1, 1, 1, 1], [a[41], x[6], x[13], x[20], x[27], x[34], x[50], x[59]], 0);
|
|
constraint int_lin_le([-99, 1, 1, 1, 1, 1, 1, 1], [a[48], x[3], x[12], x[21], x[30], x[39], x[55], x[62]], 0);
|
|
constraint int_lin_le([-99, 1, 1, 1, 1, 1, 1, 1], [a[49], x[7], x[14], x[21], x[28], x[35], x[42], x[58]], 0);
|
|
constraint int_lin_le([-99, 1, 1, 1, 1, 1, 1, 1], [a[56], x[2], x[11], x[20], x[29], x[38], x[47], x[63]], 0);
|
|
constraint int_lin_le([-99, 1, 1, 1, 1, 1, 1, 1], [a[57], x[8], x[15], x[22], x[29], x[36], x[43], x[50]], 0);
|
|
constraint int_lin_le([-99, 1, 1, 1, 1, 1, 1, 1], [a[58], x[16], x[23], x[30], x[37], x[44], x[49], x[51]], 0);
|
|
constraint int_lin_le([-99, 1, 1, 1, 1, 1, 1, 1], [a[59], x[24], x[31], x[38], x[41], x[45], x[50], x[52]], 0);
|
|
constraint int_lin_le([-99, 1, 1, 1, 1, 1, 1, 1], [a[60], x[32], x[33], x[39], x[42], x[46], x[51], x[53]], 0);
|
|
constraint int_lin_le([-99, 1, 1, 1, 1, 1, 1, 1], [a[61], x[25], x[34], x[40], x[43], x[47], x[52], x[54]], 0);
|
|
constraint int_lin_le([-99, 1, 1, 1, 1, 1, 1, 1], [a[62], x[17], x[26], x[35], x[44], x[48], x[53], x[55]], 0);
|
|
constraint int_lin_le([-99, 1, 1, 1, 1, 1, 1, 1], [a[63], x[9], x[18], x[27], x[36], x[45], x[54], x[56]], 0);
|
|
constraint int_lin_le([-99, 1, 1, 1, 1, 1, 1, 1], [a[64], x[1], x[10], x[19], x[28], x[37], x[46], x[55]], 0);
|
|
constraint int_lin_le([-99, 1, 1, 1, 1, 1, 1, 1, 1, 1], [a[10], x[1], x[3], x[17], x[19], x[28], x[37], x[46], x[55], x[64]], 0);
|
|
constraint int_lin_le([-99, 1, 1, 1, 1, 1, 1, 1, 1, 1], [a[11], x[2], x[4], x[18], x[20], x[25], x[29], x[38], x[47], x[56]], 0);
|
|
constraint int_lin_le([-99, 1, 1, 1, 1, 1, 1, 1, 1, 1], [a[12], x[3], x[5], x[19], x[21], x[26], x[30], x[33], x[39], x[48]], 0);
|
|
constraint int_lin_le([-99, 1, 1, 1, 1, 1, 1, 1, 1, 1], [a[13], x[4], x[6], x[20], x[22], x[27], x[31], x[34], x[40], x[41]], 0);
|
|
constraint int_lin_le([-99, 1, 1, 1, 1, 1, 1, 1, 1, 1], [a[14], x[5], x[7], x[21], x[23], x[28], x[32], x[35], x[42], x[49]], 0);
|
|
constraint int_lin_le([-99, 1, 1, 1, 1, 1, 1, 1, 1, 1], [a[15], x[6], x[8], x[22], x[24], x[29], x[36], x[43], x[50], x[57]], 0);
|
|
constraint int_lin_le([-99, 1, 1, 1, 1, 1, 1, 1, 1, 1], [a[18], x[4], x[9], x[11], x[25], x[27], x[36], x[45], x[54], x[63]], 0);
|
|
constraint int_lin_le([-99, 1, 1, 1, 1, 1, 1, 1, 1, 1], [a[23], x[5], x[14], x[16], x[30], x[32], x[37], x[44], x[51], x[58]], 0);
|
|
constraint int_lin_le([-99, 1, 1, 1, 1, 1, 1, 1, 1, 1], [a[26], x[5], x[12], x[17], x[19], x[33], x[35], x[44], x[53], x[62]], 0);
|
|
constraint int_lin_le([-99, 1, 1, 1, 1, 1, 1, 1, 1, 1], [a[31], x[4], x[13], x[22], x[24], x[38], x[40], x[45], x[52], x[59]], 0);
|
|
constraint int_lin_le([-99, 1, 1, 1, 1, 1, 1, 1, 1, 1], [a[34], x[6], x[13], x[20], x[25], x[27], x[41], x[43], x[52], x[61]], 0);
|
|
constraint int_lin_le([-99, 1, 1, 1, 1, 1, 1, 1, 1, 1], [a[39], x[3], x[12], x[21], x[30], x[32], x[46], x[48], x[53], x[60]], 0);
|
|
constraint int_lin_le([-99, 1, 1, 1, 1, 1, 1, 1, 1, 1], [a[42], x[7], x[14], x[21], x[28], x[33], x[35], x[49], x[51], x[60]], 0);
|
|
constraint int_lin_le([-99, 1, 1, 1, 1, 1, 1, 1, 1, 1], [a[47], x[2], x[11], x[20], x[29], x[38], x[40], x[54], x[56], x[61]], 0);
|
|
constraint int_lin_le([-99, 1, 1, 1, 1, 1, 1, 1, 1, 1], [a[50], x[8], x[15], x[22], x[29], x[36], x[41], x[43], x[57], x[59]], 0);
|
|
constraint int_lin_le([-99, 1, 1, 1, 1, 1, 1, 1, 1, 1], [a[51], x[16], x[23], x[30], x[33], x[37], x[42], x[44], x[58], x[60]], 0);
|
|
constraint int_lin_le([-99, 1, 1, 1, 1, 1, 1, 1, 1, 1], [a[52], x[24], x[25], x[31], x[34], x[38], x[43], x[45], x[59], x[61]], 0);
|
|
constraint int_lin_le([-99, 1, 1, 1, 1, 1, 1, 1, 1, 1], [a[53], x[17], x[26], x[32], x[35], x[39], x[44], x[46], x[60], x[62]], 0);
|
|
constraint int_lin_le([-99, 1, 1, 1, 1, 1, 1, 1, 1, 1], [a[54], x[9], x[18], x[27], x[36], x[40], x[45], x[47], x[61], x[63]], 0);
|
|
constraint int_lin_le([-99, 1, 1, 1, 1, 1, 1, 1, 1, 1], [a[55], x[1], x[10], x[19], x[28], x[37], x[46], x[48], x[62], x[64]], 0);
|
|
constraint int_lin_le([-99, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [a[19], x[1], x[5], x[10], x[12], x[26], x[28], x[33], x[37], x[46], x[55], x[64]], 0);
|
|
constraint int_lin_le([-99, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [a[20], x[2], x[6], x[11], x[13], x[27], x[29], x[34], x[38], x[41], x[47], x[56]], 0);
|
|
constraint int_lin_le([-99, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [a[21], x[3], x[7], x[12], x[14], x[28], x[30], x[35], x[39], x[42], x[48], x[49]], 0);
|
|
constraint int_lin_le([-99, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [a[22], x[4], x[8], x[13], x[15], x[29], x[31], x[36], x[40], x[43], x[50], x[57]], 0);
|
|
constraint int_lin_le([-99, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [a[27], x[6], x[9], x[13], x[18], x[20], x[34], x[36], x[41], x[45], x[54], x[63]], 0);
|
|
constraint int_lin_le([-99, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [a[30], x[3], x[12], x[16], x[21], x[23], x[37], x[39], x[44], x[48], x[51], x[58]], 0);
|
|
constraint int_lin_le([-99, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [a[35], x[7], x[14], x[17], x[21], x[26], x[28], x[42], x[44], x[49], x[53], x[62]], 0);
|
|
constraint int_lin_le([-99, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [a[38], x[2], x[11], x[20], x[24], x[29], x[31], x[45], x[47], x[52], x[56], x[59]], 0);
|
|
constraint int_lin_le([-99, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [a[43], x[8], x[15], x[22], x[25], x[29], x[34], x[36], x[50], x[52], x[57], x[61]], 0);
|
|
constraint int_lin_le([-99, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [a[44], x[16], x[17], x[23], x[26], x[30], x[35], x[37], x[51], x[53], x[58], x[62]], 0);
|
|
constraint int_lin_le([-99, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [a[45], x[9], x[18], x[24], x[27], x[31], x[36], x[38], x[52], x[54], x[59], x[63]], 0);
|
|
constraint int_lin_le([-99, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [a[46], x[1], x[10], x[19], x[28], x[32], x[37], x[39], x[53], x[55], x[60], x[64]], 0);
|
|
constraint int_lin_le([-99, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [a[28], x[1], x[7], x[10], x[14], x[19], x[21], x[35], x[37], x[42], x[46], x[49], x[55], x[64]], 0);
|
|
constraint int_lin_le([-99, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [a[29], x[2], x[8], x[11], x[15], x[20], x[22], x[36], x[38], x[43], x[47], x[50], x[56], x[57]], 0);
|
|
constraint int_lin_le([-99, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [a[36], x[8], x[9], x[15], x[18], x[22], x[27], x[29], x[43], x[45], x[50], x[54], x[57], x[63]], 0);
|
|
constraint int_lin_le([-99, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [a[37], x[1], x[10], x[16], x[19], x[23], x[28], x[30], x[44], x[46], x[51], x[55], x[58], x[64]], 0);
|
|
solve :: int_search([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], x[16], x[17], x[18], x[19], x[20], x[21], x[22], x[23], x[24], x[25], x[26], x[27], x[28], x[29], x[30], x[31], x[32], x[33], x[34], x[35], x[36], x[37], x[38], x[39], x[40], x[41], x[42], x[43], x[44], x[45], x[46], x[47], x[48], x[49], x[50], x[51], x[52], x[53], x[54], x[55], x[56], x[57], x[58], x[59], x[60], x[61], x[62], x[63], x[64]], first_fail, indomain, complete) maximize INT____00001;
|