param n; param m; param is_element_of{i in 1..n, j in 1..m} := round(Uniform01()); var x{j in 1..m}, binary; minimize total: sum{j in 1..m} x[j]; s.t. coverage_constraints {i in 1..n}: sum{j in 1..m} is_element_of[i,j]*x[j] >= 1; s.t. nonnegative {j in 1..m}: x[j] >=0; data; param n:=200; param m:=200; end;