Files
ortools-clone/examples/flatzinc/max_flow_winston1.fzn
2012-09-03 18:26:36 +00:00

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];