param n; param m; param is_element_of{i in 1..n, j in 1..m}; 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:=6; param m:=6; param is_element_of: 1 2 3 4 5 6 := 1 1 0 1 0 0 1 2 1 0 0 1 0 0 3 0 1 1 1 0 1 4 1 1 0 0 1 0 5 0 1 0 1 1 0 6 0 0 1 0 1 0; end;