## Diet Problem (lpsole01)

```/***************************************************************/
/*                                                             */
/*            S A S   S A M P L E   L I B R A R Y              */
/*                                                             */
/*    NAME: lpsole01                                             */
/*   TITLE: Diet Problem (lpsole01)                              */
/* PRODUCT: OR                                                 */
/*  SYSTEM: ALL                                                */
/*    KEYS: OR                                                 */
/*   PROCS: OPTMODEL                                           */
/*    DATA:                                                    */
/*                                                             */
/* SUPPORT:                             UPDATE:                */
/*     REF:                                                    */
/*    MISC: Example 1 from the Linear Programming Solver       */
/*          chapter of Mathematical Programming.               */
/*                                                             */
/***************************************************************/

data fooddata;
infile datalines;
input name \$  cost  prot  fat  carb  cal;
datalines;
Bread   2     4     1    15    90
Milk    3.5   8     5    11.7  120
Cheese  8     7     9    0.4   106
Potato  1.5   1.3   0.1  22.6  97
Fish    11    8     7    0     130
Yogurt  1     9.2   1    17    180
;

proc optmodel;
/* declare index set */
set<str> FOOD;

/* declare variables */
var diet{FOOD} >= 0;

/* objective function */
num cost{FOOD};
min f=sum{i in FOOD}cost[i]*diet[i];

/* constraints */
num prot{FOOD};
num fat{FOOD};
num carb{FOOD};
num cal{FOOD};
num min_cal, max_prot, min_carb, min_fat;
con cal_con: sum{i in FOOD}cal[i]*diet[i] >= 300;
con prot_con: sum{i in FOOD}prot[i]*diet[i] <= 10;
con carb_con: sum{i in FOOD}carb[i]*diet[i] >= 10;
con fat_con: sum{i in FOOD}fat[i]*diet[i] >= 8;