set PRODUCTS; set RESOURCES; var x{p in PRODUCTS} >= 0; param price{p in PRODUCTS} >= 0; param avail{r in RESOURCES} >= 0; param use{r in RESOURCES, p in PRODUCTS} >= 0; maximize objective: sum{p in PRODUCTS} price[p] * x[p]; subject to resourcelimit{r in RESOURCES}: sum{p in PRODUCTS} use[r,p] * x[p] <= avail[r];