Clear@"`*";
vars = Flatten@{x[1, #] & /@ Range@5, x[2, #] & /@ Range@4, x[3, 3],
x[4, 2]};
con0 = # >= 0 & /@ vars;
con1 = {x[2, #] <= 30 & /@ Range@4, x[3, 3] <= 80, x[4, 2] <= 100};
con2 = {
x[1, 1] + x[2, 1] <= 200,
x[1, 2] + x[2, 2] + x[4, 2] <= 200 + 0.1 x[1, 1] + 0.25 x[2, 1],
x[1, 3] + x[2, 3] + x[3, 3] <=
200 + 0.1 (x[1, 1] + x[1, 2]) + 0.25 (x[2, 1] + x[2, 2]),
x[1, 4] + x[2, 4] <=
200 + 0.1 (x[1, 1] + x[1, 2] + x[1, 3]) +
0.25 (x[2, 1] + x[2, 2] + x[2, 3]),
x[1, 5] <=
200 + 0.1 (x[1, 1] + x[1, 2] + x[1, 3] + x[1, 4]) +
0.25 (x[2, 1] + x[2, 2] + x[2, 3] + x[2, 4])};
cons = Flatten@{con0, con1, con2};
obj = 200 + 0.1 Total[x[1, #] & /@ Range@5] +
0.25 Total[x[2, #] & /@ Range@4] + 0.4 x[3, 3] + 0.55 x[2, 4];
Maximize[obj, cons, vars]
結果為:
{383.89495, {x[1, 1] -> 170., x[1, 2] -> 194.5, x[1, 3] -> 141.45,
x[1, 4] -> 243.095, x[1, 5] -> 304.9045, x[2, 1] -> 30.,
x[2, 2] -> 30., x[2, 3] -> 30., x[2, 4] -> 30., x[3, 3] -> 80.,
x[4, 2] -> 0.}}