maxflow.fzn 1.63 KB
Newer Older
Valentin Platzgummer's avatar
Valentin Platzgummer committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
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;