274 lines
11 KiB
MiniZinc
274 lines
11 KiB
MiniZinc
array [1..225] of int: d = [999, 1, 999, 999, 999, 999, 999, 999, 1, 999, 999, 999, 999, 999, 999, 999, 999, 1, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 1, 999, 999, 999, 999, 1, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 1, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 1, 999, 999, 1, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 1, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 1, 1, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 1, 999, 999, 999, 999, 999, 999, 999, 999, 999, 1, 999, 999, 999, 999, 999, 999, 1, 999, 999, 999, 999, 999, 999, 999, 999, 1, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 1, 999, 999, 999, 999, 1, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 1, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 1, 999, 999, 1, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 1, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999];
|
|
var 0..21: INT____00001 :: is_defined_var :: var_is_introduced;
|
|
array [1..15] of var 0..1: inFlow :: output_array([1..15]);
|
|
array [1..15] of var 0..1: outFlow :: output_array([1..15]);
|
|
array [1..15] of var -1..1: rhs;
|
|
var 0..21: total_cost :: output_var = INT____00001;
|
|
array [1..225] of var 0..1: x :: output_array([1..15, 1..15]);
|
|
constraint int_eq(inFlow[1], 0);
|
|
constraint int_eq(outFlow[15], 0);
|
|
constraint int_eq(rhs[1], 1);
|
|
constraint int_eq(rhs[2], 0);
|
|
constraint int_eq(rhs[3], 0);
|
|
constraint int_eq(rhs[4], 0);
|
|
constraint int_eq(rhs[5], 0);
|
|
constraint int_eq(rhs[6], 0);
|
|
constraint int_eq(rhs[7], 0);
|
|
constraint int_eq(rhs[8], 0);
|
|
constraint int_eq(rhs[9], 0);
|
|
constraint int_eq(rhs[10], 0);
|
|
constraint int_eq(rhs[11], 0);
|
|
constraint int_eq(rhs[12], 0);
|
|
constraint int_eq(rhs[13], 0);
|
|
constraint int_eq(rhs[14], 0);
|
|
constraint int_eq(rhs[15], -1);
|
|
constraint int_eq(x[1], 0);
|
|
constraint int_eq(x[3], 0);
|
|
constraint int_eq(x[4], 0);
|
|
constraint int_eq(x[5], 0);
|
|
constraint int_eq(x[6], 0);
|
|
constraint int_eq(x[7], 0);
|
|
constraint int_eq(x[8], 0);
|
|
constraint int_eq(x[10], 0);
|
|
constraint int_eq(x[11], 0);
|
|
constraint int_eq(x[12], 0);
|
|
constraint int_eq(x[13], 0);
|
|
constraint int_eq(x[14], 0);
|
|
constraint int_eq(x[15], 0);
|
|
constraint int_eq(x[16], 0);
|
|
constraint int_eq(x[17], 0);
|
|
constraint int_eq(x[19], 0);
|
|
constraint int_eq(x[20], 0);
|
|
constraint int_eq(x[21], 0);
|
|
constraint int_eq(x[22], 0);
|
|
constraint int_eq(x[23], 0);
|
|
constraint int_eq(x[24], 0);
|
|
constraint int_eq(x[25], 0);
|
|
constraint int_eq(x[26], 0);
|
|
constraint int_eq(x[27], 0);
|
|
constraint int_eq(x[28], 0);
|
|
constraint int_eq(x[29], 0);
|
|
constraint int_eq(x[30], 0);
|
|
constraint int_eq(x[31], 0);
|
|
constraint int_eq(x[32], 0);
|
|
constraint int_eq(x[33], 0);
|
|
constraint int_eq(x[35], 0);
|
|
constraint int_eq(x[36], 0);
|
|
constraint int_eq(x[37], 0);
|
|
constraint int_eq(x[38], 0);
|
|
constraint int_eq(x[40], 0);
|
|
constraint int_eq(x[41], 0);
|
|
constraint int_eq(x[42], 0);
|
|
constraint int_eq(x[43], 0);
|
|
constraint int_eq(x[44], 0);
|
|
constraint int_eq(x[45], 0);
|
|
constraint int_eq(x[46], 0);
|
|
constraint int_eq(x[47], 0);
|
|
constraint int_eq(x[48], 0);
|
|
constraint int_eq(x[49], 0);
|
|
constraint int_eq(x[51], 0);
|
|
constraint int_eq(x[52], 0);
|
|
constraint int_eq(x[53], 0);
|
|
constraint int_eq(x[54], 0);
|
|
constraint int_eq(x[55], 0);
|
|
constraint int_eq(x[56], 0);
|
|
constraint int_eq(x[57], 0);
|
|
constraint int_eq(x[58], 0);
|
|
constraint int_eq(x[59], 0);
|
|
constraint int_eq(x[60], 0);
|
|
constraint int_eq(x[61], 0);
|
|
constraint int_eq(x[62], 0);
|
|
constraint int_eq(x[63], 0);
|
|
constraint int_eq(x[64], 0);
|
|
constraint int_eq(x[65], 0);
|
|
constraint int_eq(x[67], 0);
|
|
constraint int_eq(x[68], 0);
|
|
constraint int_eq(x[70], 0);
|
|
constraint int_eq(x[71], 0);
|
|
constraint int_eq(x[72], 0);
|
|
constraint int_eq(x[73], 0);
|
|
constraint int_eq(x[74], 0);
|
|
constraint int_eq(x[75], 0);
|
|
constraint int_eq(x[76], 0);
|
|
constraint int_eq(x[77], 0);
|
|
constraint int_eq(x[78], 0);
|
|
constraint int_eq(x[79], 0);
|
|
constraint int_eq(x[80], 0);
|
|
constraint int_eq(x[81], 0);
|
|
constraint int_eq(x[83], 0);
|
|
constraint int_eq(x[84], 0);
|
|
constraint int_eq(x[85], 0);
|
|
constraint int_eq(x[86], 0);
|
|
constraint int_eq(x[87], 0);
|
|
constraint int_eq(x[88], 0);
|
|
constraint int_eq(x[89], 0);
|
|
constraint int_eq(x[90], 0);
|
|
constraint int_eq(x[91], 0);
|
|
constraint int_eq(x[92], 0);
|
|
constraint int_eq(x[93], 0);
|
|
constraint int_eq(x[94], 0);
|
|
constraint int_eq(x[95], 0);
|
|
constraint int_eq(x[96], 0);
|
|
constraint int_eq(x[97], 0);
|
|
constraint int_eq(x[100], 0);
|
|
constraint int_eq(x[101], 0);
|
|
constraint int_eq(x[102], 0);
|
|
constraint int_eq(x[103], 0);
|
|
constraint int_eq(x[104], 0);
|
|
constraint int_eq(x[105], 0);
|
|
constraint int_eq(x[106], 0);
|
|
constraint int_eq(x[107], 0);
|
|
constraint int_eq(x[108], 0);
|
|
constraint int_eq(x[109], 0);
|
|
constraint int_eq(x[110], 0);
|
|
constraint int_eq(x[111], 0);
|
|
constraint int_eq(x[112], 0);
|
|
constraint int_eq(x[113], 0);
|
|
constraint int_eq(x[114], 0);
|
|
constraint int_eq(x[115], 0);
|
|
constraint int_eq(x[116], 0);
|
|
constraint int_eq(x[117], 0);
|
|
constraint int_eq(x[118], 0);
|
|
constraint int_eq(x[119], 0);
|
|
constraint int_eq(x[121], 0);
|
|
constraint int_eq(x[122], 0);
|
|
constraint int_eq(x[123], 0);
|
|
constraint int_eq(x[124], 0);
|
|
constraint int_eq(x[125], 0);
|
|
constraint int_eq(x[126], 0);
|
|
constraint int_eq(x[127], 0);
|
|
constraint int_eq(x[128], 0);
|
|
constraint int_eq(x[129], 0);
|
|
constraint int_eq(x[131], 0);
|
|
constraint int_eq(x[132], 0);
|
|
constraint int_eq(x[133], 0);
|
|
constraint int_eq(x[134], 0);
|
|
constraint int_eq(x[135], 0);
|
|
constraint int_eq(x[136], 0);
|
|
constraint int_eq(x[138], 0);
|
|
constraint int_eq(x[139], 0);
|
|
constraint int_eq(x[140], 0);
|
|
constraint int_eq(x[141], 0);
|
|
constraint int_eq(x[142], 0);
|
|
constraint int_eq(x[143], 0);
|
|
constraint int_eq(x[144], 0);
|
|
constraint int_eq(x[145], 0);
|
|
constraint int_eq(x[147], 0);
|
|
constraint int_eq(x[148], 0);
|
|
constraint int_eq(x[149], 0);
|
|
constraint int_eq(x[150], 0);
|
|
constraint int_eq(x[151], 0);
|
|
constraint int_eq(x[152], 0);
|
|
constraint int_eq(x[153], 0);
|
|
constraint int_eq(x[154], 0);
|
|
constraint int_eq(x[155], 0);
|
|
constraint int_eq(x[156], 0);
|
|
constraint int_eq(x[157], 0);
|
|
constraint int_eq(x[158], 0);
|
|
constraint int_eq(x[159], 0);
|
|
constraint int_eq(x[160], 0);
|
|
constraint int_eq(x[161], 0);
|
|
constraint int_eq(x[163], 0);
|
|
constraint int_eq(x[164], 0);
|
|
constraint int_eq(x[165], 0);
|
|
constraint int_eq(x[166], 0);
|
|
constraint int_eq(x[168], 0);
|
|
constraint int_eq(x[169], 0);
|
|
constraint int_eq(x[170], 0);
|
|
constraint int_eq(x[171], 0);
|
|
constraint int_eq(x[172], 0);
|
|
constraint int_eq(x[173], 0);
|
|
constraint int_eq(x[174], 0);
|
|
constraint int_eq(x[175], 0);
|
|
constraint int_eq(x[176], 0);
|
|
constraint int_eq(x[177], 0);
|
|
constraint int_eq(x[179], 0);
|
|
constraint int_eq(x[180], 0);
|
|
constraint int_eq(x[181], 0);
|
|
constraint int_eq(x[182], 0);
|
|
constraint int_eq(x[183], 0);
|
|
constraint int_eq(x[184], 0);
|
|
constraint int_eq(x[185], 0);
|
|
constraint int_eq(x[186], 0);
|
|
constraint int_eq(x[187], 0);
|
|
constraint int_eq(x[188], 0);
|
|
constraint int_eq(x[189], 0);
|
|
constraint int_eq(x[190], 0);
|
|
constraint int_eq(x[191], 0);
|
|
constraint int_eq(x[192], 0);
|
|
constraint int_eq(x[193], 0);
|
|
constraint int_eq(x[195], 0);
|
|
constraint int_eq(x[196], 0);
|
|
constraint int_eq(x[198], 0);
|
|
constraint int_eq(x[199], 0);
|
|
constraint int_eq(x[200], 0);
|
|
constraint int_eq(x[201], 0);
|
|
constraint int_eq(x[202], 0);
|
|
constraint int_eq(x[203], 0);
|
|
constraint int_eq(x[204], 0);
|
|
constraint int_eq(x[205], 0);
|
|
constraint int_eq(x[206], 0);
|
|
constraint int_eq(x[207], 0);
|
|
constraint int_eq(x[208], 0);
|
|
constraint int_eq(x[209], 0);
|
|
constraint int_eq(x[211], 0);
|
|
constraint int_eq(x[212], 0);
|
|
constraint int_eq(x[213], 0);
|
|
constraint int_eq(x[214], 0);
|
|
constraint int_eq(x[215], 0);
|
|
constraint int_eq(x[216], 0);
|
|
constraint int_eq(x[217], 0);
|
|
constraint int_eq(x[218], 0);
|
|
constraint int_eq(x[219], 0);
|
|
constraint int_eq(x[220], 0);
|
|
constraint int_eq(x[221], 0);
|
|
constraint int_eq(x[222], 0);
|
|
constraint int_eq(x[223], 0);
|
|
constraint int_eq(x[224], 0);
|
|
constraint int_eq(x[225], 0);
|
|
constraint int_lin_eq([1, -1], [inFlow[3], x[18]], 0);
|
|
constraint int_lin_eq([1, -1], [inFlow[4], x[34]], 0);
|
|
constraint int_lin_eq([1, -1], [inFlow[5], x[50]], 0);
|
|
constraint int_lin_eq([1, -1], [inFlow[6], x[66]], 0);
|
|
constraint int_lin_eq([1, -1], [inFlow[7], x[82]], 0);
|
|
constraint int_lin_eq([1, -1], [inFlow[8], x[98]], 0);
|
|
constraint int_lin_eq([1, -1], [inFlow[10], x[130]], 0);
|
|
constraint int_lin_eq([1, -1], [inFlow[11], x[146]], 0);
|
|
constraint int_lin_eq([1, -1], [inFlow[12], x[162]], 0);
|
|
constraint int_lin_eq([1, -1], [inFlow[13], x[178]], 0);
|
|
constraint int_lin_eq([1, -1], [inFlow[14], x[194]], 0);
|
|
constraint int_lin_eq([1, -1], [outFlow[2], x[18]], 0);
|
|
constraint int_lin_eq([1, -1], [outFlow[4], x[50]], 0);
|
|
constraint int_lin_eq([1, -1], [outFlow[6], x[82]], 0);
|
|
constraint int_lin_eq([1, -1], [outFlow[8], x[120]], 0);
|
|
constraint int_lin_eq([1, -1], [outFlow[9], x[130]], 0);
|
|
constraint int_lin_eq([1, -1], [outFlow[11], x[162]], 0);
|
|
constraint int_lin_eq([1, -1], [outFlow[13], x[194]], 0);
|
|
constraint int_lin_eq([-1, 1, -1], [inFlow[1], outFlow[1], rhs[1]], 0);
|
|
constraint int_lin_eq([-1, 1, -1], [inFlow[2], outFlow[2], rhs[2]], 0);
|
|
constraint int_lin_eq([-1, 1, -1], [inFlow[3], outFlow[3], rhs[3]], 0);
|
|
constraint int_lin_eq([-1, 1, -1], [inFlow[4], outFlow[4], rhs[4]], 0);
|
|
constraint int_lin_eq([-1, 1, -1], [inFlow[5], outFlow[5], rhs[5]], 0);
|
|
constraint int_lin_eq([-1, 1, -1], [inFlow[6], outFlow[6], rhs[6]], 0);
|
|
constraint int_lin_eq([-1, 1, -1], [inFlow[7], outFlow[7], rhs[7]], 0);
|
|
constraint int_lin_eq([-1, 1, -1], [inFlow[8], outFlow[8], rhs[8]], 0);
|
|
constraint int_lin_eq([-1, 1, -1], [inFlow[9], outFlow[9], rhs[9]], 0);
|
|
constraint int_lin_eq([-1, 1, -1], [inFlow[10], outFlow[10], rhs[10]], 0);
|
|
constraint int_lin_eq([-1, 1, -1], [inFlow[11], outFlow[11], rhs[11]], 0);
|
|
constraint int_lin_eq([-1, 1, -1], [inFlow[12], outFlow[12], rhs[12]], 0);
|
|
constraint int_lin_eq([-1, 1, -1], [inFlow[13], outFlow[13], rhs[13]], 0);
|
|
constraint int_lin_eq([-1, 1, -1], [inFlow[14], outFlow[14], rhs[14]], 0);
|
|
constraint int_lin_eq([-1, 1, -1], [inFlow[15], outFlow[15], rhs[15]], 0);
|
|
constraint int_lin_eq([1, -1, -1], [inFlow[15], x[120], x[210]], 0);
|
|
constraint int_lin_eq([1, -1, -1], [outFlow[1], x[2], x[9]], 0);
|
|
constraint int_lin_eq([1, -1, -1], [outFlow[3], x[34], x[39]], 0);
|
|
constraint int_lin_eq([1, -1, -1], [outFlow[5], x[66], x[69]], 0);
|
|
constraint int_lin_eq([1, -1, -1], [outFlow[7], x[98], x[99]], 0);
|
|
constraint int_lin_eq([1, -1, -1], [outFlow[10], x[137], x[146]], 0);
|
|
constraint int_lin_eq([1, -1, -1], [outFlow[12], x[167], x[178]], 0);
|
|
constraint int_lin_eq([1, -1, -1], [outFlow[14], x[197], x[210]], 0);
|
|
constraint int_lin_eq([1, -1, -1, -1, -1], [inFlow[2], x[2], x[137], x[167], x[197]], 0);
|
|
constraint int_lin_eq([1, -1, -1, -1, -1], [inFlow[9], x[9], x[39], x[69], x[99]], 0);
|
|
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], [INT____00001, x[2], x[9], x[18], x[34], x[39], x[50], x[66], x[69], x[82], x[98], x[99], x[120], x[130], x[137], x[146], x[162], x[167], x[178], x[194], x[197], x[210]], 0) :: defines_var(INT____00001);
|
|
solve minimize INT____00001;
|