43 lines
1.6 KiB
MiniZinc
43 lines
1.6 KiB
MiniZinc
array [1..28] of int: E = [1, 2, 1, 4, 2, 3, 2, 4, 3, 5, 3, 8, 4, 5, 5, 2, 5, 6, 5, 7, 6, 7, 6, 8, 7, 9, 8, 9];
|
|
array [1..14] of int: a = [14, 23, 10, 9, 12, 18, 26, 11, 25, 4, 7, 8, 15, 20];
|
|
var 0..100: flow :: output_var;
|
|
array [1..14] of var int: x :: output_array([1..14]);
|
|
constraint int_le(0, x[1]);
|
|
constraint int_le(0, x[2]);
|
|
constraint int_le(0, x[3]);
|
|
constraint int_le(0, x[4]);
|
|
constraint int_le(0, x[5]);
|
|
constraint int_le(0, x[6]);
|
|
constraint int_le(0, x[7]);
|
|
constraint int_le(0, x[8]);
|
|
constraint int_le(0, x[9]);
|
|
constraint int_le(0, x[10]);
|
|
constraint int_le(0, x[11]);
|
|
constraint int_le(0, x[12]);
|
|
constraint int_le(0, x[13]);
|
|
constraint int_le(0, x[14]);
|
|
constraint int_le(x[1], 14);
|
|
constraint int_le(x[2], 23);
|
|
constraint int_le(x[3], 10);
|
|
constraint int_le(x[4], 9);
|
|
constraint int_le(x[5], 12);
|
|
constraint int_le(x[6], 18);
|
|
constraint int_le(x[7], 26);
|
|
constraint int_le(x[8], 11);
|
|
constraint int_le(x[9], 25);
|
|
constraint int_le(x[10], 4);
|
|
constraint int_le(x[11], 7);
|
|
constraint int_le(x[12], 8);
|
|
constraint int_le(x[13], 15);
|
|
constraint int_le(x[14], 20);
|
|
constraint int_lin_eq([-1, 1, 1], [flow, x[13], x[14]], 0);
|
|
constraint int_lin_eq([1, -1, -1], [flow, x[1], x[2]], 0);
|
|
constraint int_lin_eq([1, -1, -1], [x[3], x[5], x[6]], 0);
|
|
constraint int_lin_eq([1, -1, -1], [x[9], x[11], x[12]], 0);
|
|
constraint int_lin_eq([1, 1, -1], [x[2], x[4], x[7]], 0);
|
|
constraint int_lin_eq([1, 1, -1], [x[6], x[12], x[14]], 0);
|
|
constraint int_lin_eq([1, 1, -1], [x[10], x[11], x[13]], 0);
|
|
constraint int_lin_eq([1, -1, -1, 1], [x[1], x[3], x[4], x[8]], 0);
|
|
constraint int_lin_eq([1, 1, -1, -1, -1], [x[5], x[7], x[8], x[9], x[10]], 0);
|
|
solve maximize flow;
|