43 lines
1.6 KiB
MiniZinc
43 lines
1.6 KiB
MiniZinc
array [1..14] of int: arcs = [1, 2, 1, 3, 2, 3, 2, 4, 3, 5, 4, 5, 5, 1];
|
|
array [1..7] of int: cap = [2, 3, 3, 4, 2, 1, 100];
|
|
array [1..25] of var int: flow :: output_array([1..5, 1..5]);
|
|
var int: z :: output_var = flow[21];
|
|
constraint int_le(0, flow[1]);
|
|
constraint int_le(0, flow[2]);
|
|
constraint int_le(0, flow[3]);
|
|
constraint int_le(0, flow[4]);
|
|
constraint int_le(0, flow[5]);
|
|
constraint int_le(0, flow[6]);
|
|
constraint int_le(0, flow[7]);
|
|
constraint int_le(0, flow[8]);
|
|
constraint int_le(0, flow[9]);
|
|
constraint int_le(0, flow[10]);
|
|
constraint int_le(0, flow[11]);
|
|
constraint int_le(0, flow[12]);
|
|
constraint int_le(0, flow[13]);
|
|
constraint int_le(0, flow[14]);
|
|
constraint int_le(0, flow[15]);
|
|
constraint int_le(0, flow[16]);
|
|
constraint int_le(0, flow[17]);
|
|
constraint int_le(0, flow[18]);
|
|
constraint int_le(0, flow[19]);
|
|
constraint int_le(0, flow[20]);
|
|
constraint int_le(0, flow[21]);
|
|
constraint int_le(0, flow[22]);
|
|
constraint int_le(0, flow[23]);
|
|
constraint int_le(0, flow[24]);
|
|
constraint int_le(0, flow[25]);
|
|
constraint int_le(flow[2], 2);
|
|
constraint int_le(flow[3], 3);
|
|
constraint int_le(flow[8], 3);
|
|
constraint int_le(flow[9], 4);
|
|
constraint int_le(flow[15], 2);
|
|
constraint int_le(flow[20], 1);
|
|
constraint int_le(flow[21], 100);
|
|
constraint int_lin_eq([1, -1], [flow[9], flow[20]], 0);
|
|
constraint int_lin_eq([-1, -1, 1], [flow[2], flow[3], flow[21]], 0);
|
|
constraint int_lin_eq([1, -1, -1], [flow[2], flow[8], flow[9]], 0);
|
|
constraint int_lin_eq([1, 1, -1], [flow[3], flow[8], flow[15]], 0);
|
|
constraint int_lin_eq([1, 1, -1], [flow[15], flow[20], flow[21]], 0);
|
|
solve maximize flow[21];
|