# model file for Momiss river MIP - problem 2 from page 502 param n_Sites; param n_Polut; param Cost_Treat {j in 1..n_Sites}; param Cost_Build {j in 1..n_Sites}; param Polut_Removed {i in 1..n_Polut, j in 1..n_Sites}; param Min_Polut {i in 1..n_Polut}; var x {j in 1..n_Sites} >= 0; var y {j in 1..n_Sites} binary; param M; minimize total_cost: sum {j in 1..n_Sites} Cost_Treat[j]*x[j] + sum {j in 1..n_Sites} Cost_Build[j]*y[j]; subject to min_polut_removed {i in 1..n_Polut}: sum {j in 1..n_Sites} Polut_Removed[i,j]*x[j] >= Min_Polut[i]; subject to forcing_cons {j in 1..n_Sites}: x[j] <= M*y[j];