set NUTR; set FOOD; param cost {FOOD} > 0; param f_min {FOOD} >= 0; param f_max {i in FOOD} >= f_min[i]; param n_min {NUTR} >= 0; param n_max {j in NUTR} >= n_min[j]; param amt {FOOD, NUTR} >= 0; var Buy {i in FOOD} >= f_min[i], <= f_max[i]; minimize total_cost: sum {i in FOOD} cost[i] * Buy[i]; subject to diet {j in NUTR}: n_min[j] <= sum {i in FOOD} amt[i,j] * Buy[i] <= n_max[j]; data; ############ DATA STARTS HERE ############ set NUTR := A B1 B2 C ; set FOOD := BEEF CHK FISH HAM MCH MTL SPG TUR ; param: cost f_min f_max := BEEF 3.19 0 100 CHK 2.59 0 100 FISH 2.29 0 100 HAM 2.89 0 100 MCH 1.89 0 100 MTL 1.99 0 100 SPG 1.99 0 100 TUR 2.49 0 100 ; param: n_min n_max := A 700 10000 C 700 10000 B1 700 10000 B2 700 10000 ; param amt (tr): BEEF CHK FISH HAM MCH MTL SPG TUR:= A 60 8 8 40 15 70 25 60 C 20 0 10 40 35 30 50 20 B1 10 20 15 35 15 15 25 15 B2 15 20 10 10 15 15 15 10;