72 lines
2.6 KiB
MiniZinc
72 lines
2.6 KiB
MiniZinc
array [1..25] of int: c = [0, 20, 30, 10, 0, 0, 0, 40, 0, 30, 0, 0, 0, 10, 20, 0, 0, 5, 0, 20, 0, 0, 0, 0, 0];
|
|
var int: INT____00001 :: is_defined_var :: var_is_introduced;
|
|
array [1..5] of var int: inFlow;
|
|
array [1..5] of var int: outFlow;
|
|
var int: total :: output_var = INT____00001;
|
|
array [1..25] of var int: x :: output_array([1..5, 1..5]);
|
|
constraint int_eq(inFlow[1], 0);
|
|
constraint int_eq(outFlow[5], 0);
|
|
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(0, x[15]);
|
|
constraint int_le(0, x[16]);
|
|
constraint int_le(0, x[17]);
|
|
constraint int_le(0, x[18]);
|
|
constraint int_le(0, x[19]);
|
|
constraint int_le(0, x[20]);
|
|
constraint int_le(0, x[21]);
|
|
constraint int_le(0, x[22]);
|
|
constraint int_le(0, x[23]);
|
|
constraint int_le(0, x[24]);
|
|
constraint int_le(0, x[25]);
|
|
constraint int_le(x[1], 0);
|
|
constraint int_le(x[2], 20);
|
|
constraint int_le(x[3], 30);
|
|
constraint int_le(x[4], 10);
|
|
constraint int_le(x[5], 0);
|
|
constraint int_le(x[6], 0);
|
|
constraint int_le(x[7], 0);
|
|
constraint int_le(x[8], 40);
|
|
constraint int_le(x[9], 0);
|
|
constraint int_le(x[10], 30);
|
|
constraint int_le(x[11], 0);
|
|
constraint int_le(x[12], 0);
|
|
constraint int_le(x[13], 0);
|
|
constraint int_le(x[14], 10);
|
|
constraint int_le(x[15], 20);
|
|
constraint int_le(x[16], 0);
|
|
constraint int_le(x[17], 0);
|
|
constraint int_le(x[18], 5);
|
|
constraint int_le(x[19], 0);
|
|
constraint int_le(x[20], 20);
|
|
constraint int_le(x[21], 0);
|
|
constraint int_le(x[22], 0);
|
|
constraint int_le(x[23], 0);
|
|
constraint int_le(x[24], 0);
|
|
constraint int_le(x[25], 0);
|
|
constraint int_lin_eq([-1, 1], [inFlow[2], outFlow[2]], 0);
|
|
constraint int_lin_eq([-1, 1], [inFlow[3], outFlow[3]], 0);
|
|
constraint int_lin_eq([-1, 1], [inFlow[4], outFlow[4]], 0);
|
|
constraint int_lin_eq([1, -1], [inFlow[2], x[2]], 0);
|
|
constraint int_lin_eq([1, -1, -1], [inFlow[4], x[4], x[14]], 0);
|
|
constraint int_lin_eq([1, -1, -1], [outFlow[2], x[8], x[10]], 0);
|
|
constraint int_lin_eq([1, -1, -1], [outFlow[3], x[14], x[15]], 0);
|
|
constraint int_lin_eq([1, -1, -1], [outFlow[4], x[18], x[20]], 0);
|
|
constraint int_lin_eq([-1, 1, 1, 1], [INT____00001, x[2], x[3], x[4]], 0) :: defines_var(INT____00001);
|
|
constraint int_lin_eq([1, -1, -1, -1], [inFlow[3], x[3], x[8], x[18]], 0);
|
|
constraint int_lin_eq([1, -1, -1, -1], [inFlow[5], x[10], x[15], x[20]], 0);
|
|
constraint int_lin_eq([1, -1, -1, -1], [outFlow[1], x[2], x[3], x[4]], 0);
|
|
solve maximize INT____00001;
|